(__attribute_format_strfmon__): Define.
[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_ENABLE(libio, dnl
86 [  --enable-libio          build in GNU libio instead of GNU stdio],
87               [if test $enableval = yes; then
88                  stdio=libio
89                else
90                  stdio=stdio
91                fi],
92               stdio=default)
93
94 AC_ARG_ENABLE(sanity-checks, dnl
95 [  --disable-sanity-checks really do not use threads (should not be used
96                           except in special situations) [default=yes]],
97               enable_sanity=$enableval, enable_sanity=yes)
98
99 dnl Arguments to enable or disable building the static, shared, profiled,
100 dnl and -fomit-frame-pointer libraries.
101 dnl I've disabled this for now since we cannot build glibc without static
102 dnl libraries built in the moment.
103 dnl AC_ARG_ENABLE(static, dnl
104 dnl [  --enable-static         build static library [default=yes]],
105 dnl           static=$enableval, static=yes)
106 static=yes
107 AC_ARG_ENABLE(shared, dnl
108 [  --enable-shared         build shared library [default=yes if GNU ld & ELF]],
109               shared=$enableval, shared=default)
110 AC_ARG_ENABLE(profile, dnl
111 [  --enable-profile        build profiled library [default=yes]],
112               profile=$enableval, profile=yes)
113 AC_ARG_ENABLE(omitfp, dnl
114 [  --enable-omitfp         build undebuggable optimized library [default=no]],
115               omitfp=$enableval, omitfp=no)
116 AC_ARG_ENABLE(bounded, dnl
117 [  --enable-bounded        build with runtime bounds checking [default=no]],
118               bounded=$enableval, bounded=no)
119 AC_ARG_ENABLE(versioning, dnl
120 [  --disable-versioning    do not include versioning information in the
121                           library objects [default=yes if supported]],
122              enable_versioning=$enableval, enable_versioning=yes)
123
124 AC_ARG_ENABLE(oldest-abi, dnl
125 [  --enable-oldest-abi=ABI configure the oldest ABI supported [e.g. 2.2]
126                           [default=glibc default]],
127             oldest_abi=$enableval, oldest_abi=no)
128 if test "$oldest_abi" = yes || test "$oldest_abi" = no; then
129   oldest_abi=default
130 else
131   AC_DEFINE_UNQUOTED(GLIBC_OLDEST_ABI, "$oldest_abi")
132 fi
133 AC_SUBST(oldest_abi)
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 # The Aix ld uses global .symbol_names instead of symbol_names.
811 case "$os" in
812 aix4.3*)
813   AC_DEFINE(HAVE_ASM_GLOBAL_DOT_NAME)
814 esac
815
816 AC_CACHE_CHECK(for .symver assembler directive, libc_cv_asm_symver_directive,
817 [cat > conftest.s <<EOF
818 ${libc_cv_dot_text}
819 _sym:
820 .symver _sym,sym@VERS
821 EOF
822 if ${CC-cc} -c $CFLAGS $CPPFLAGS conftest.s 1>&AC_FD_CC 2>&AC_FD_CC; then
823   libc_cv_asm_symver_directive=yes
824 else
825   libc_cv_asm_symver_directive=no
826 fi
827 rm -f conftest*])
828 AC_CACHE_CHECK(for ld --version-script, libc_cv_ld_version_script_option, [dnl
829 if test $libc_cv_asm_symver_directive = yes; then
830   cat > conftest.s <<EOF
831 ${libc_cv_dot_text}
832 _sym:
833 .symver _sym,sym@VERS
834 EOF
835   cat > conftest.map <<EOF
836 VERS_1 {
837         global: sym;
838 };
839
840 VERS_2 {
841         global: sym;
842 } VERS_1;
843 EOF
844   if ${CC-cc} -c $CFLAGS $CPPFLAGS conftest.s 1>&AC_FD_CC 2>&AC_FD_CC; then
845     if AC_TRY_COMMAND([${CC-cc} $CFLAGS -shared -o conftest.so conftest.o
846                                         -nostartfiles -nostdlib
847                                         -Wl,--version-script,conftest.map
848                        1>&AC_FD_CC]);
849     then
850       libc_cv_ld_version_script_option=yes
851     else
852       libc_cv_ld_version_script_option=no
853     fi
854   else
855     libc_cv_ld_version_script_option=no
856   fi
857 else
858   libc_cv_ld_version_script_option=no
859 fi
860 rm -f conftest*])
861 if test $shared != no &&
862    test $libc_cv_asm_symver_directive = yes &&
863    test $libc_cv_ld_version_script_option = yes &&
864    test $enable_versioning = yes; then
865   VERSIONING=yes
866   AC_DEFINE(DO_VERSIONING)
867 else
868   VERSIONING=no
869 fi
870 AC_SUBST(VERSIONING)
871
872 if test $shared != no && test $VERSIONING = no; then
873   echo "\
874 *** WARNING: You should not compile GNU libc without versioning. Not using
875 *** versioning will introduce incompatibilities so that old binaries
876 *** will not run anymore.
877 *** For versioning you need recent binutils (binutils-2.8.1.0.23 or newer)."
878 fi
879 if test $elf = yes; then
880   AC_CACHE_CHECK(for .previous assembler directive,
881                  libc_cv_asm_previous_directive, [dnl
882   cat > conftest.s <<EOF
883 .section foo_section
884 .previous
885 EOF
886   if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AC_FD_CC); then
887     libc_cv_asm_previous_directive=yes
888   else
889     libc_cv_asm_previous_directive=no
890   fi
891   rm -f conftest*])
892   if test $libc_cv_asm_previous_directive = yes; then
893     AC_DEFINE(HAVE_ASM_PREVIOUS_DIRECTIVE)
894   else
895     AC_CACHE_CHECK(for .popsection assembler directive,
896                    libc_cv_asm_popsection_directive, [dnl
897     cat > conftest.s <<EOF
898 .pushsection foo_section
899 .popsection
900 EOF
901     if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AC_FD_CC); then
902       libc_cv_asm_popsection_directive=yes
903     else
904       libc_cv_asm_popsection_directive=no
905     fi
906     rm -f conftest*])
907     if test $libc_cv_asm_popsection_directive = yes; then
908       AC_DEFINE(HAVE_ASM_POPSECTION_DIRECTIVE)
909     fi
910   fi
911   AC_CACHE_CHECK(for .protected and .hidden assembler directive,
912                  libc_cv_asm_protected_directive, [dnl
913   cat > conftest.s <<EOF
914 .protected foo
915 foo:
916 .hidden bar
917 bar:
918 EOF
919   if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AC_FD_CC); then
920     libc_cv_asm_protected_directive=yes
921   else
922     libc_cv_asm_protected_directive=no
923   fi
924   rm -f conftest*])
925   AC_SUBST(libc_cv_asm_protected_directive)
926
927   AC_CACHE_CHECK(for -z nodelete option,
928                  libc_cv_z_nodelete, [dnl
929   cat > conftest.c <<EOF
930 int _start (void) { return 42; }
931 EOF
932   if AC_TRY_COMMAND([${CC-cc} -shared -o conftest.so conftest.c -Wl,--enable-new-dtags,-z,nodelete 1>&AC_FD_CC])
933   then
934     libc_cv_z_nodelete=yes
935   else
936     libc_cv_z_nodelete=no
937   fi
938   rm -f conftest*])
939   AC_SUBST(libc_cv_z_nodelete)
940
941   AC_CACHE_CHECK(for -z nodlopen option,
942                  libc_cv_z_nodlopen, [dnl
943   cat > conftest.c <<EOF
944 int _start (void) { return 42; }
945 EOF
946   if AC_TRY_COMMAND([${CC-cc} -shared -o conftest.so conftest.c -Wl,--enable-new-dtags,-z,nodlopen 1>&AC_FD_CC])
947   then
948     libc_cv_z_nodlopen=yes
949   else
950     libc_cv_z_nodlopen=no
951   fi
952   rm -f conftest*])
953   AC_SUBST(libc_cv_z_nodlopen)
954 fi
955
956 if test $elf != yes; then
957   AC_CACHE_CHECK(for .init and .fini sections, libc_cv_have_initfini,
958                  [AC_TRY_COMPILE(, [asm (".section .init");
959                                     asm (".section .fini");
960                                     asm ("${libc_cv_dot_text}");],
961                                  libc_cv_have_initfini=yes,
962                                  libc_cv_have_initfini=no)])
963   AC_SUBST(libc_cv_have_initfini)dnl
964   if test $libc_cv_have_initfini = yes; then
965     AC_DEFINE(HAVE_INITFINI)
966   fi
967 fi
968
969 if test $elf = yes -a $gnu_ld = yes; then
970   AC_CACHE_CHECK(whether cc puts quotes around section names,
971                  libc_cv_have_section_quotes,
972                  [cat > conftest.c <<EOF
973                   static const int foo
974                   __attribute__ ((section ("bar"))) = 1;
975 EOF
976                   if ${CC-cc} -S conftest.c -o conftest.s; then
977                     if grep '\.section.*"bar"' conftest.s >/dev/null; then
978                       libc_cv_have_section_quotes=yes
979                     else
980                       libc_cv_have_section_quotes=no
981                     fi
982                   else
983                     libc_cv_have_section_quotes=unknown
984                   fi
985                   rm -f conftest.[cs]
986                  ])
987   if test $libc_cv_have_section_quotes = yes; then
988     AC_DEFINE(HAVE_SECTION_QUOTES)
989   fi
990 fi
991
992 dnl AC_CHECK_ASM_UNDERSCORE([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
993 AC_DEFUN(AC_CHECK_ASM_UNDERSCORE,
994 [cat > conftest.$ac_ext <<EOF
995 dnl This sometimes fails to find confdefs.h, for some reason.
996 dnl [#]line __oline__ "[$]0"
997 [#]line __oline__ "configure"
998 #include "confdefs.h"
999 void underscore_test(void) {
1000 return; }
1001 EOF
1002 if AC_TRY_EVAL(ac_compile); then
1003   if grep _underscore_test conftest* >/dev/null; then
1004     ifelse([$1], , :, [rm -f conftest*
1005     $1])
1006   else
1007     ifelse([$2], , , [rm -f conftest*
1008     $2])
1009   fi
1010 else
1011   echo "configure: failed program was:" >&AC_FD_CC
1012   cat conftest.$ac_ext >&AC_FD_CC
1013   ifelse([$2], , , [rm -f conftest*
1014   $2])
1015 fi
1016 rm -f conftest*])
1017
1018 if test $elf = yes; then
1019   libc_cv_asm_underscores=no
1020 else
1021   if test $ac_cv_prog_cc_works = yes; then
1022     AC_CACHE_CHECK(for _ prefix on C symbol names, libc_cv_asm_underscores,
1023                    [AC_TRY_LINK([asm ("_glibc_foobar:");], [glibc_foobar ();],
1024                                 libc_cv_asm_underscores=yes,
1025                                 libc_cv_asm_underscores=no)])
1026   else
1027     AC_CACHE_CHECK(for _ prefix on C symbol names, libc_cv_asm_underscores,
1028                    [AC_CHECK_ASM_UNDERSCORE(libc_cv_asm_underscores=yes,
1029                                             libc_cv_asm_underscores=no)])
1030   fi
1031 fi
1032 if test $libc_cv_asm_underscores = no; then
1033   AC_DEFINE(NO_UNDERSCORES)
1034 fi
1035
1036 if test $elf = yes; then
1037   libc_cv_weak_symbols=yes
1038 fi
1039
1040 AC_CACHE_CHECK(for assembler .weak directive, libc_cv_asm_weak_directive,
1041                [dnl
1042 cat > conftest.s <<EOF
1043 ${libc_cv_dot_text}
1044 ${libc_cv_asm_global_directive} foo
1045 foo:
1046 .weak foo
1047 .weak bar; bar = foo
1048 EOF
1049 if ${CC-cc} $CFLAGS -c conftest.s 2>/dev/null; then
1050   libc_cv_asm_weak_directive=yes
1051 else
1052   libc_cv_asm_weak_directive=no
1053 fi
1054 rm -f conftest*])
1055
1056 if test $libc_cv_asm_weak_directive = no; then
1057   AC_CACHE_CHECK(for assembler .weakext directive,
1058                  libc_cv_asm_weakext_directive,
1059                  [dnl
1060 cat > conftest.s <<EOF
1061 ${libc_cv_dot_text}
1062 ${libc_cv_asm_global_directive} foo
1063 foo:
1064 .weakext bar foo
1065 .weakext baz
1066 ${libc_cv_asm_global_directive} baz
1067 baz:
1068 EOF
1069   if ${CC-cc} $CFLAGS -c conftest.s 2>/dev/null; then
1070     libc_cv_asm_weakext_directive=yes
1071   else
1072     libc_cv_asm_weakext_directive=no
1073   fi
1074   rm -f conftest*])
1075
1076 fi # no .weak
1077
1078 if test $libc_cv_asm_weak_directive = yes; then
1079   AC_DEFINE(HAVE_ASM_WEAK_DIRECTIVE)
1080 elif test $libc_cv_asm_weakext_directive = yes; then
1081   AC_DEFINE(HAVE_ASM_WEAKEXT_DIRECTIVE)
1082 fi
1083
1084 dnl The standard hppa assembler uses `;' to start comments and `!'
1085 dnl as a line separator.
1086 case "${host_cpu}-${host_os}" in
1087   hppa*linux*)
1088   AC_CACHE_CHECK(for assembler line separator,
1089                  libc_cv_asm_line_sep, [dnl
1090   cat > conftest.s <<EOF
1091  nop ; is_old_puffin
1092 EOF
1093   if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AC_FD_CC); then
1094     libc_cv_asm_line_sep='!'
1095   else
1096     if test -z "$enable_hacker_mode"; then
1097       echo "*** You need a newer assembler to compile glibc"
1098       rm -f conftest*
1099       exit 1
1100     fi
1101     libc_cv_asm_line_sep=';'
1102   fi
1103   rm -f conftest*])
1104   AC_DEFINE_UNQUOTED(ASM_LINE_SEP, $libc_cv_asm_line_sep)
1105   ;;
1106 esac
1107
1108 AC_CACHE_CHECK(for ld --no-whole-archive, libc_cv_ld_no_whole_archive, [dnl
1109 cat > conftest.c <<\EOF
1110 _start () {}
1111 int __eh_pc;
1112 __throw () {}
1113 EOF
1114 dnl No \ in command here because it ends up inside ''.
1115 if AC_TRY_COMMAND([${CC-cc} $CFLAGS
1116                             -nostdlib -nostartfiles -Wl,--no-whole-archive
1117                             -o conftest conftest.c 1>&AC_FD_CC]); then
1118   libc_cv_ld_no_whole_archive=yes
1119 else
1120   libc_cv_ld_no_whole_archive=no
1121 fi
1122 rm -f conftest*])
1123 if test $libc_cv_ld_no_whole_archive = yes; then
1124   no_whole_archive=-Wl,--no-whole-archive
1125 fi
1126 AC_SUBST(no_whole_archive)dnl
1127
1128 AC_CACHE_CHECK(for gcc -fexceptions, libc_cv_gcc_exceptions, [dnl
1129 cat > conftest.c <<\EOF
1130 _start () {}
1131 int __eh_pc;
1132 __throw () {}
1133 EOF
1134 dnl No \ in command here because it ends up inside ''.
1135 if AC_TRY_COMMAND([${CC-cc} $CFLAGS
1136                             -nostdlib -nostartfiles -fexceptions
1137                             -o conftest conftest.c 1>&AC_FD_CC]); then
1138   libc_cv_gcc_exceptions=yes
1139 else
1140   libc_cv_gcc_exceptions=no
1141 fi
1142 rm -f conftest*])
1143 if test $libc_cv_gcc_exceptions = yes; then
1144   exceptions=-fexceptions
1145 fi
1146 AC_SUBST(exceptions)dnl
1147
1148 if test "$base_machine" = alpha ; then
1149 AC_CACHE_CHECK(for function ..ng prefix, libc_cv_gcc_alpha_ng_prefix, [dnl
1150 cat > conftest.c <<\EOF
1151 foo () { }
1152 EOF
1153 dnl
1154 if AC_TRY_COMMAND([${CC-cc} -S conftest.c -o - | fgrep "\$foo..ng" > /dev/null]);
1155 then
1156   libc_cv_gcc_alpha_ng_prefix=yes
1157 else
1158   libc_cv_gcc_alpha_ng_prefix=no
1159 fi
1160 rm -f conftest* ])
1161 if test $libc_cv_gcc_alpha_ng_prefix = yes ; then
1162   AC_DEFINE(ASM_ALPHA_NG_SYMBOL_PREFIX, "$")
1163 else
1164   AC_DEFINE(ASM_ALPHA_NG_SYMBOL_PREFIX, "")
1165 fi
1166 fi
1167
1168 if test "$host_cpu" = powerpc ; then
1169 # Check for a bug present in at least versions 2.8.x of GCC
1170 # and versions 1.0.x of EGCS.
1171 AC_CACHE_CHECK(whether clobbering cr0 causes problems,libc_cv_c_asmcr0_bug,[dnl
1172 AC_TRY_COMPILE([int tester(int x) { asm ("" : : : "cc"); return x & 123; }],,
1173                libc_cv_c_asmcr0_bug='no',
1174                libc_cv_c_asmcr0_bug='yes')])
1175 if test "$libc_cv_c_asmcr0_bug" != 'no'; then
1176   AC_DEFINE(BROKEN_PPC_ASM_CR0)
1177 fi
1178 fi
1179
1180 AC_CACHE_CHECK(for DWARF2 unwind info support, libc_cv_gcc_dwarf2_unwind_info,
1181 [cat > conftest.c <<EOF
1182 #line __oline__ "configure"
1183 static char __EH_FRAME_BEGIN__[];
1184 _start ()
1185 {
1186 #ifdef CHECK__register_frame
1187   __register_frame (__EH_FRAME_BEGIN__);
1188   __deregister_frame (__EH_FRAME_BEGIN__);
1189 #endif
1190 #ifdef CHECK__register_frame_info
1191   __register_frame_info (__EH_FRAME_BEGIN__);
1192   __deregister_frame_info (__EH_FRAME_BEGIN__);
1193 #endif
1194 }
1195 int __eh_pc;
1196 __throw () {}
1197 /* FIXME: this is fragile.  */
1198 malloc () {}
1199 strcmp () {}
1200 strlen () {}
1201 memcpy () {}
1202 memset () {}
1203 free () {}
1204 abort () {}
1205 __bzero () {}
1206 EOF
1207 dnl No \ in command here because it ends up inside ''.
1208 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -DCHECK__register_frame_info
1209                             -nostdlib -nostartfiles
1210                             -o conftest conftest.c -lgcc >&AC_FD_CC]); then
1211   libc_cv_gcc_dwarf2_unwind_info=static
1212 else
1213   libc_cv_gcc_dwarf2_unwind_info=no
1214 fi
1215 if test $libc_cv_gcc_dwarf2_unwind_info = no; then
1216   if AC_TRY_COMMAND([${CC-cc} $CFLAGS -DCHECK__register_frame
1217                               -nostdlib -nostartfiles
1218                               -o conftest conftest.c -lgcc >&AC_FD_CC]); then
1219     libc_cv_gcc_dwarf2_unwind_info=yes
1220   else
1221     libc_cv_gcc_dwarf2_unwind_info=no
1222   fi
1223 fi
1224 rm -f conftest*])
1225 case $libc_cv_gcc_dwarf2_unwind_info in
1226 yes)
1227   AC_DEFINE(HAVE_DWARF2_UNWIND_INFO)
1228   ;;
1229 static)
1230   AC_DEFINE(HAVE_DWARF2_UNWIND_INFO)
1231   AC_DEFINE(HAVE_DWARF2_UNWIND_INFO_STATIC)
1232   ;;
1233 esac
1234
1235 dnl Check whether compiler understands __builtin_expect.
1236 AC_CACHE_CHECK(for __builtin_expect, libc_cv_gcc_builtin_expect,
1237 [cat > conftest.c <<EOF
1238 #line __oline__ "configure"
1239 int foo (int a)
1240 {
1241   a = __builtin_expect (a, 10);
1242   return a == 10 ? 0 : 1;
1243 }
1244 EOF
1245 dnl No \ in command here because it ends up inside ''.
1246 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -nostdlib -nostartfiles
1247                             -o conftest conftest.c -lgcc >&AC_FD_CC]); then
1248   libc_cv_gcc_builtin_expect=yes
1249 else
1250   libc_cv_gcc_builtin_expect=no
1251 fi
1252 rm -f conftest*])
1253 if test "$libc_cv_gcc_builtin_expect" = yes; then
1254   AC_DEFINE(HAVE_BUILTIN_EXPECT)
1255 fi
1256
1257 dnl Check whether the compiler supports subtraction of local labels.
1258 AC_CACHE_CHECK(for local label subtraction, libc_cv_gcc_subtract_local_labels,
1259 [cat > conftest.c <<EOF
1260 changequote(,)dnl
1261 #line __oline__ "configure"
1262 int foo (int a)
1263 {
1264   static const int ar[] = { &&l1 - &&l1, &&l2 - &&l1 };
1265   void *p = &&l1 + ar[a];
1266   goto *p;
1267  l1:
1268   return 1;
1269  l2:
1270   return 2;
1271 }
1272 changequote([,])dnl
1273 EOF
1274 dnl No \ in command here because it ends up inside ''.
1275 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -nostdlib -nostartfiles
1276                             -o conftest conftest.c -lgcc >&AC_FD_CC]); then
1277   libc_cv_gcc_subtract_local_labels=yes
1278 else
1279   libc_cv_gcc_subtract_local_labels=no
1280 fi
1281 rm -f conftest*])
1282 if test "$libc_cv_gcc_subtract_local_labels" = yes; then
1283   AC_DEFINE(HAVE_SUBTRACT_LOCAL_LABELS)
1284 fi
1285
1286 dnl Check whether we have the gd library available.
1287 AC_MSG_CHECKING(for libgd)
1288 old_CFLAGS="$CFLAGS"
1289 CFLAGS="$CFLAGS $libgd_include"
1290 old_LDFLAGS="$LDFLAGS"
1291 LDFLAGS="$LDFLAGS $libgd_ldflags"
1292 old_LIBS="$LIBS"
1293 LIBS="$LIBS -lgd -lpng -lz -lm"
1294 AC_TRY_LINK([#include <gd.h>], [gdImagePng (0, 0)], LIBGD=yes, LIBGD=no)
1295 CFLAGS="$old_CFLAGS"
1296 LDFLAGS="$old_LDFLAGS"
1297 LIBS="$old_LIBS"
1298 AC_MSG_RESULT($LIBGD)
1299 AC_SUBST(LIBGD)
1300
1301 dnl check for the size of 'long double'.
1302 AC_CHECK_SIZEOF(long double, 0)
1303 sizeof_long_double=$ac_cv_sizeof_long_double
1304 AC_SUBST(sizeof_long_double)
1305
1306 ### End of automated tests.
1307 ### Now run sysdeps configure fragments.
1308
1309 # sysdeps configure fragments may set these with files to be linked below.
1310 libc_link_dests=
1311 libc_link_sources=
1312
1313 # They also can set these variables.
1314 use_ldconfig=no
1315 ldd_rewrite_script=no
1316
1317 # Iterate over all the sysdep directories we will use, running their
1318 # configure fragments, and looking for a uname implementation.
1319 uname=
1320 for dir in $sysnames; do
1321   case $dir in
1322     /*) dest=$dir ;;
1323     *)  dest=$srcdir/$dir ;;
1324   esac
1325   if test -r $dest/configure; then
1326     AC_MSG_RESULT(running configure fragment for $dest)
1327     . $dest/configure
1328   fi
1329 [
1330   if test -z "$uname"; then
1331     if test -r $dest/uname.c ||
1332        test -r $dest/uname.S ||
1333        { test -r $dest/syscalls.list &&
1334          grep '^uname[  ]' $dest/syscalls.list >/dev/null; }; then
1335       uname=$dir
1336     fi
1337   fi
1338 ]dnl
1339 done
1340
1341 AC_LINK_FILES(`echo $libc_link_sources`, `echo $libc_link_dests`)
1342
1343 # If we will use the generic uname implementation, we must figure out what
1344 # it will say by examining the system, and write the results in config-name.h.
1345 if test "$uname" = "sysdeps/generic"; then
1346
1347 changequote(,)dnl
1348   uname_sysname=`echo $config_os | sed 's/[0-9.]*$//'`
1349 changequote([,])dnl
1350   if test $uname_sysname != $config_os; then
1351     config_release=`echo $config_os | sed s/$uname_sysname//`
1352   fi
1353 dnl
1354 AC_DEFUN(LIBC_KERNEL_ID, [dnl
1355     if test -r /vmunix; then
1356       kernel_id=`strings /vmunix | grep UNIX`
1357     elif test -r /dynix; then
1358       kernel_id=`strings /dynix | grep DYNIX`
1359     else
1360       kernel_id=
1361     fi
1362 ])dnl
1363
1364   AC_CACHE_CHECK(OS release for uname, libc_cv_uname_release, [dnl
1365 AC_REQUIRE([LIBC_KERNEL_ID])dnl
1366 changequote(,)dnl
1367   kernel_release=`echo "$kernel_id" | sed 's/^[^0-9.]*\([0-9.]*\).*$/\1/'`
1368 changequote([,])dnl
1369   if test x`echo "$config_release" | sed "s/^$kernel_release//"` \
1370          != x$config_release; then
1371     # The configuration release is a substring of the kernel release.
1372     libc_cv_uname_release=$kernel_release
1373   elif test x$config_release != x; then
1374     libc_cv_uname_release=$config_release
1375   elif test x$kernel_release != x; then
1376     libc_cv_uname_release=$kernel_release
1377   else
1378     libc_cv_uname_release=unknown
1379   fi])
1380   uname_release="$libc_cv_uname_release"
1381
1382   AC_CACHE_CHECK(OS version for uname, libc_cv_uname_version, [dnl
1383 AC_REQUIRE([LIBC_KERNEL_ID])dnl
1384 changequote(,)dnl
1385   kernel_version=`echo "$kernel_id" | sed 's/^[^#]*#\([0-9]*\).*$/\1/'`
1386 changequote([,])dnl
1387   if test -n "$kernel_version"; then
1388     libc_cv_uname_version="$kernel_version"
1389   else
1390     libc_cv_uname_version=unknown
1391   fi])
1392   uname_version="$libc_cv_uname_version"
1393
1394 AC_SUBST(uname_sysname) AC_SUBST(uname_release) AC_SUBST(uname_version)dnl
1395   config_uname=config-name.h:config-name.in
1396 else
1397   # For non-generic uname, we don't need to create config-name.h at all.
1398   config_uname=
1399 fi
1400
1401 AC_MSG_CHECKING(stdio selection)
1402 AC_SUBST(stdio)
1403 case $stdio in
1404 libio) AC_DEFINE(USE_IN_LIBIO) ;;
1405 default) stdio=stdio ;;
1406 esac
1407 AC_MSG_RESULT($stdio)
1408
1409 # Test for old glibc 2.0.x headers so that they can be removed properly
1410 # Search only in includedir.
1411 AC_MSG_CHECKING(for old glibc 2.0.x headers)
1412 if eval test -f "${includedir}/elfclass.h" -a -f "${includedir}/fcntlbits.h"
1413 then
1414   old_glibc_headers=yes
1415 else
1416   old_glibc_headers=no
1417 fi
1418 AC_MSG_RESULT($old_glibc_headers)
1419 if test ${old_glibc_headers} = yes; then
1420   AC_MSG_WARN(*** During \"make install\" old headers from glibc 2.0.x will)
1421   AC_MSG_WARN(*** be removed.)
1422 fi
1423 AC_SUBST(old_glibc_headers)
1424
1425 AC_SUBST(libc_cv_slibdir)
1426 AC_SUBST(libc_cv_localedir)
1427 AC_SUBST(libc_cv_sysconfdir)
1428 AC_SUBST(libc_cv_rootsbindir)
1429
1430 AC_SUBST(use_ldconfig)
1431 AC_SUBST(ldd_rewrite_script)
1432
1433 AC_SUBST(gnu_ld) AC_SUBST(gnu_as) AC_SUBST(elf)
1434 if test $gnu_ld = yes; then
1435   AC_DEFINE(HAVE_GNU_LD)
1436 fi
1437 if test $gnu_as = yes; then
1438   AC_DEFINE(HAVE_GNU_AS)
1439 fi
1440 if test $elf = yes; then
1441   AC_DEFINE(HAVE_ELF)
1442 fi
1443
1444 AC_SUBST(static)
1445 AC_SUBST(shared)
1446 if test $shared = default; then
1447   if test $gnu_ld = yes; then
1448     shared=$elf
1449   else
1450     # For now we do not assume shared libs are available.  In future more
1451     # tests might become available.
1452     shared=no
1453   fi
1454 fi
1455
1456 AC_CACHE_CHECK([whether -fPIC is default], pic_default,
1457 [pic_default=yes
1458 cat > conftest.c <<EOF
1459 #if defined __PIC__ || defined __pic__ || defined PIC || defined pic
1460 # error PIC is default.
1461 #endif
1462 EOF
1463 if eval "${CC-cc} -S conftest.c 2>&AC_FD_CC 1>&AC_FD_CC"; then
1464   pic_default=no
1465 fi
1466 rm -f conftest.*])
1467 AC_SUBST(pic_default)
1468
1469 AC_SUBST(profile)
1470 AC_SUBST(omitfp)
1471 AC_SUBST(bounded)
1472 AC_SUBST(static_nss)
1473 AC_SUBST(nopic_initfini)
1474
1475 AC_SUBST(DEFINES)
1476
1477 case "$add_ons" in
1478   *door*) linux_doors=yes ;;
1479   *) linux_doors=no ;;
1480 esac
1481 AC_SUBST(linux_doors)
1482
1483 if test "`(cd $srcdir; pwd)`" = "`pwd`"; then
1484   config_makefile=
1485 else
1486   config_makefile=Makefile
1487 fi
1488
1489 VERSION=`sed -n -e 's/^#define VERSION "\([^"]*\)"/\1/p' < $srcdir/version.h`
1490 RELEASE=`sed -n -e 's/^#define RELEASE "\([^"]*\)"/\1/p' < $srcdir/version.h`
1491 AC_SUBST(VERSION)
1492 AC_SUBST(RELEASE)
1493
1494 AC_OUTPUT(config.make glibcbug ${config_makefile} ${config_uname}, [
1495 case $CONFIG_FILES in *config.make*)
1496 echo "$config_vars" >> config.make;;
1497 esac
1498 test -d bits || mkdir bits], [config_vars='$config_vars'])