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