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