mirror of
git://sourceware.org/git/glibc.git
synced 2024-11-27 03:41:23 +08:00
8a52392237
Wed Nov 27 06:10:10 1996 Ulrich Drepper <drepper@cygnus.com> * Makefile: Fix typo. * configure: Require autoconf-2.11. * elf/dl-deps.c: Terminate duplicate list. * libio/libio.h: Add prototypes for _IO_seekoff and _IO_seekpos. * libio/strfile.h: Update from current libg++. * libio/strops.c: Likewise. * login/Makefile (routines): Update after correction of reentrant interface. * login/endutent.c: Removed. * login/endutent_r.c: Likewise. * login/pututline.c: Likewise. * login/pututline_r.c: Likewise. * login/setutent.c: Likewise. * login/setutent_r.c: Likewise. * login/getutent.c: Update for new interface. * login/getutent_r.c: Likewise. * login/getutid.c: Likewise. * login/getutid_r.c: Likewise. * login/getutline.c: Likewise. * login/getutline_r.c: Likewise. * login/login.c: Likewise. * login/logout.c: Likewise. * login/logwtmp.c: Likewise. * login/utmp.h: Likewise. * sysdeps/unix/getlogin.c: Likewise. * sysdeps/unix/getlogin_r.c: Likewise. * login/utmp-private.h: New private header. * login/utmp_db.c: Stub DB backend for utmp handler. * login/utmp_file.c: File backend for utmp handler. * sysdeps/gnu/utmpbits.h (struct utmp): Add some more fields. (enum utlogin): List of record types. (struct exit_status): Record to align with other implementations. * sysdeps/generic/paths.h: Add _PATH_UTMP_DB. * sysdeps/unix/sysv/linux/paths.h: Likewise. * sysdeps/generic/pty.c: Use getgrnam_r instead of getgrnam. * sysdeps/stub/getlogin.c: Update copyright. * sysdeps/stub/getlogin_r.c: Likewise. * nss/getXXbyYY_r.c: Use -1l for error-pointer value instead of -1. * nss/getXXent_r.c: Likewise. * nss/nsswitch.c: Likewise. * posix/Makefile (headers): Add wait.h. * posix/wait.h: New file. * posix/sys/types.h: Always define intN_t types. * stdio-common/Makefile: Update copyright. Use -Wno-format flag for scanf4.c and scanf7.c. * stdlib/stdlib.h: Reformat. * time/africa: Update from ADO tzdata1996m. * time/antarctica: Likewise. * time/asia: Likewise. * time/australia: Likewise. * time/etcetera: Likewise. * time/europe: Likewise. * time/northamerica: Likewise. * time/southamerica: Likewise. * time/zone.tab: Likewise. Fri Nov 22 19:34:12 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sysdeps/posix/getcwd.c (__getcwd): After resizing the buffer move the current contents to the end and relocate file name pointer to upper half of the buffer. Sun Nov 24 04:56:19 1996 Ulrich Drepper <drepper@cygnus.com> * time/africa: Update from ADO tzdata1996m. * time/antarctica: Likewise. * time/asia: Likewise. * time/australia: Likewise. * time/etcetera: Likewise. * time/europe: Likewise. * time/nothamerica: Likewise. * time/southameria: Likewise. * time/zone.tab: Likewise. * sysdeps/unix/sysv/linux/sys/serial.h: New file. * sysdeps/unix/sysv/linux/Makefile [$(subdir)=misc] (sysdep_headers): Add sys/serial.h. * sysdeps/unix/sysv/linux/Dist: Add sys/serial.h. * posix/wait.h: New file. * posix/Makefile (headers): Add wait.h. Sat Nov 23 17:27:52 1996 Roland McGrath <roland@gnu.ai.mit.edu> * Makeconfig ($(common-objpfx)soversions.mk): Use regular expression instead of shell pattern matching. * shlib-versions: Change to regular expressions. Sat Nov 23 13:24:55 1996 Ulrich Drepper <drepper@cygnus.com> * io/stat.c: Add section from libgcc to copyright comment to allow this file to be statically linked in applications. * io/fstat.c: Likewise. * io/lstat.c: Likewise. * io/mknod.c: Likewise. Fri Nov 22 15:14:23 1996 Ulrich Drepper <drepper@cygnus.com> * csu/initfini.c: Add section from libgcc to copyright comment to allow this file to be statically linked in applications. * malloc/obstack.h [!_LIBC && !HAVE_STRING_H]: Define memcpy if not already defined. (obstack_grow, obstack_grow0): Correct placement of braces. * gnu-versions.h (_GNU_OBSTACK_INTERFACE_VERSION): Define to 2. * malloc/obstack.c (OBSTACK_INTERFACE_VERSION): Define to 2. Thu Nov 21 19:54:51 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * Makerules (make-link): Simplify by changing directory only if not using rellns-sh; check whether we really have symbolic links. * rellns-sh: Fix the case of $(dirname $2) being a prefix of $(dirname $1); use status of ln for exit code; make more robust against multiple slashes in a row. Thu Nov 21 13:05:21 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu> * configure.in (after AC_CANONICAL_HOST): mutate *-*-gnu* names into *-*-gnu-gnu*. * shlib-versions (gnu versions): Recognize *-*-gnu-gnu* instead of the three-part name, to distinguish correctly from *-*-linux-gnu*. * sysdeps/mach/hurd/Makefile ($(libdir)/libc.so): Depend on $(rpcuserlibs). * sysdeps/mach/hurd/Makefile (install-others): Add $(libdir)/libc_p.a. ($(libdir)/libc_p.a): New rule. * sysdeps/mach/hurd/libc_p-ldscript: New file. * sysdeps/mach/hurd/Dist: Add libc_p-ldscript. Wed Nov 20 20:28:21 1996 Richard Henderson <rth@tamu.edu> * Makerules (make-link): Use $(shell) to find rellns-sh before we cd. * time/Makefile: Likewise. * sysdeps/alpha/elf/Makefile: New file. Build crtbegin.o & crtend.o. * sysdeps/alpha/elf/Dist: New file. * sysdeps/alpha/elf/crtbegin.S, sysdeps/alpha/elf/crtend.S: New files. The bits currently distributed with GCC fail in two ways -- they don't understand multiple .got subsections and the extents of the lists are dynamicly bound meaning that the application's lists get executed multiple times and the library's lists never get executed. Wed Nov 20 00:42:45 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * stdlib/strtod.c: Fix previous change. Wed Nov 20 22:07:58 1996 Andreas Jaeger <aj@arthur.pfalz.de> * time/Makefile ($(installed-localtime-file)): Use $(..) to find rellns-sh script. Wed Nov 20 12:50:54 1996 Ulrich Drepper <drepper@cygnus.com> * stdio-common/Makefile: Add CFLAGS-scanf7.c to prevent warning. Likesie for scanf4.c
707 lines
20 KiB
Plaintext
707 lines
20 KiB
Plaintext
Dnl Process this file with autoconf to produce a configure script.
|
|
AC_REVISION([$CVSid$])
|
|
AC_PREREQ(2.11)dnl dnl Minimum Autoconf version required.
|
|
AC_INIT(features.h)
|
|
AC_CONFIG_HEADER(config.h)
|
|
|
|
# This will get text that should go into config.make.
|
|
config_vars=
|
|
|
|
# Check for a --with-gmp argument and set gmp-srcdir in config.make.
|
|
AC_ARG_WITH(gmp, dnl
|
|
--with-gmp=DIRECTORY find GMP source code in DIRECTORY (not needed),
|
|
[dnl
|
|
case "$with_gmp" in
|
|
yes) AC_MSG_ERROR(--with-gmp requires an argument; use --with-gmp=DIRECTORY) ;;
|
|
''|no) ;;
|
|
*) config_vars="$config_vars
|
|
gmp-srcdir = $withval" ;;
|
|
esac
|
|
])
|
|
# Check for a --with-gettext argument and set gettext-srcdir in config.make.
|
|
AC_ARG_WITH(gettext, dnl
|
|
--with-gettext=DIR find GNU gettext source code in DIR (not needed),
|
|
[dnl
|
|
case "$with_gettext" in
|
|
yes)
|
|
AC_MSG_ERROR(--with-gettext requires an argument; use --with-gettext=DIR) ;;
|
|
''|no) ;;
|
|
*)
|
|
config_vars="$config_vars
|
|
gettext-srcdir = $withval" ;;
|
|
esac
|
|
])
|
|
|
|
dnl Arguments to specify presence of other packages/features.
|
|
AC_ARG_WITH(fp, dnl
|
|
--with-fp if using floating-point hardware [default=yes],
|
|
with_fp=$withval, with_fp=yes)
|
|
AC_ARG_WITH(gnu-binutils, dnl
|
|
--with-gnu-binutils if using GNU binutils (as and ld),
|
|
gnu_binutils=$withval, gnu_binutils=no)
|
|
AC_ARG_WITH(gnu-ld, dnl
|
|
--with-gnu-ld if using GNU ld (in the binutils package),
|
|
gnu_ld=$withval, gnu_ld=no)
|
|
AC_ARG_WITH(gnu-as, dnl
|
|
--with-gnu-as if using GNU as (in the binutils package),
|
|
gnu_as=$withval, gnu_as=no)
|
|
test $gnu_binutils = yes && gnu_as=yes gnu_ld=yes
|
|
AC_ARG_WITH(elf, dnl
|
|
--with-elf if using the ELF object format,
|
|
elf=$withval, elf=no)
|
|
|
|
AC_ARG_ENABLE(libio, dnl
|
|
[ --enable-libio build in GNU libio instead of GNU stdio],
|
|
[if test $enableval = yes; then
|
|
stdio=libio
|
|
else
|
|
stdio=stdio
|
|
fi],
|
|
stdio=default)
|
|
|
|
dnl Arguments to enable or disable building the shared, profiled, and
|
|
dnl -fomit-frame-pointer libraries.
|
|
AC_ARG_ENABLE(shared, dnl
|
|
[ --enable-shared build shared library [default=yes if GNU ld & ELF]],
|
|
shared=$enableval, shared=default)
|
|
AC_ARG_ENABLE(profile, dnl
|
|
[ --enable-profile build profiled library [default=yes]],
|
|
profile=$enableval, profile=yes)
|
|
AC_ARG_ENABLE(omitfp, dnl
|
|
[ --enable-omitfp build undebuggable optimized library [default=no]],
|
|
omitfp=$enableval, omitfp=no)
|
|
|
|
dnl Generic infrastructure for drop-in additions to libc.
|
|
AC_ARG_ENABLE(add-ons, dnl
|
|
[ --enable-add-ons=DIR... configure and build named extra directories],
|
|
[add_ons=`echo "$enableval" | sed 's/,/ /g'`],
|
|
[add_ons=])
|
|
AC_CONFIG_SUBDIRS($add_ons)
|
|
add_ons_pfx=
|
|
if test x"$add_ons" != x; then
|
|
for f in $add_ons; do
|
|
add_ons_pfx="$add_ons_pfx $f/"
|
|
done
|
|
fi
|
|
|
|
AC_CANONICAL_HOST
|
|
|
|
# The way shlib-versions is used to generate soversions.mk uses a
|
|
# fairly simplistic model for name recognition that can't distinguish
|
|
# i486-pc-linux-gnu fully from i486-pc-gnu. So we mutate a $host_os
|
|
# of `gnu*' here to be `gnu-gnu*' just so that shlib-versions can
|
|
# tell. This doesn't get used much beyond that, so it's fairly safe.
|
|
case "$host_os" in
|
|
linux*)
|
|
;;
|
|
gnu*)
|
|
host_os=`echo $host_os | sed -e 's/gnu/gnu-gnu/'`
|
|
;;
|
|
esac
|
|
|
|
# We keep the original values in `$config_*' and never modify them, so we
|
|
# can write them unchanged into config.make. Everything else uses
|
|
# $machine, $vendor, and $os, and changes them whenever convenient.
|
|
config_machine=$host_cpu config_vendor=$host_vendor config_os=$host_os
|
|
|
|
# Some configurations imply other options.
|
|
case "$host_os" in
|
|
gnu* | linux* | bsd4.4* | netbsd* | freebsd*)
|
|
# These systems always use GNU tools.
|
|
gnu_ld=yes gnu_as=yes ;;
|
|
esac
|
|
case "$host_os" in
|
|
linux*ecoff*)
|
|
;;
|
|
gnu* | linux* | sysv4* | solaris2*)
|
|
# These systems (almost) always use the ELF format.
|
|
elf=yes
|
|
;;
|
|
esac
|
|
|
|
machine=$config_machine
|
|
vendor=$config_vendor
|
|
os=$config_os
|
|
|
|
dnl We need to use [ and ] for other purposes for a while now.
|
|
changequote(,)dnl
|
|
# Expand the configuration machine name into a subdirectory by architecture
|
|
# type and particular chip.
|
|
case "$machine" in
|
|
a29k | am29000) base_machine=a29k machine=a29k ;;
|
|
alpha*) base_machine=alpha machine=alpha/$machine ;;
|
|
hppa*) base_machine=hppa machine=hppa/$machine ;;
|
|
i[3456]86) base_machine=i386 machine=i386/$machine ;;
|
|
m680?0) base_machine=m68k machine=m68k/$machine ;;
|
|
m68k) base_machine=m68k machine=m68k/m68020 ;;
|
|
m88???) base_machine=m88k machine=m88k/$machine ;;
|
|
m88k) base_machine=m88k machine=m88k/m88100 ;;
|
|
mips*) base_machine=mips machine=mips/$machine ;;
|
|
mips64*) base_machine=mips64 machine=mips/mips64/$machine ;;
|
|
sparc[6789]) base_machine=sparc machine=sparc/$machine ;;
|
|
supersparc) base_machine=sparc machine=sparc/sparc8 ;;
|
|
esac
|
|
changequote([,])dnl
|
|
AC_SUBST(base_machine)
|
|
|
|
# Compute the list of sysdep directories for this configuration.
|
|
# This can take a while to compute.
|
|
sysdep_dir=$srcdir/sysdeps
|
|
AC_MSG_CHECKING(sysdep dirs)
|
|
dnl We need to use [ and ] for other purposes for a while now.
|
|
changequote(,)dnl
|
|
# Make sco3.2v4 become sco3.2.4 and sunos4.1.1_U1 become sunos4.1.1.U1.
|
|
os="`echo $os | sed 's/\([0-9A-Z]\)[v_]\([0-9A-Z]\)/\1.\2/g'`"
|
|
|
|
case "$os" in
|
|
gnu*)
|
|
base_os=mach/hurd ;;
|
|
netbsd* | 386bsd* | freebsd* | bsdi*)
|
|
base_os=unix/bsd/bsd4.4 ;;
|
|
osf* | sunos* | ultrix* | newsos* | dynix* | *bsd*)
|
|
base_os=unix/bsd ;;
|
|
sysv* | isc* | esix* | sco* | minix* | irix4* | linux*)
|
|
base_os=unix/sysv ;;
|
|
solaris[2-9]*)
|
|
base_os=unix/sysv/sysv4 ;;
|
|
none)
|
|
base_os=standalone ;;
|
|
*)
|
|
base_os='' ;;
|
|
esac
|
|
|
|
# For sunos4.1.1, try sunos4.1.1, then sunos4.1, then sunos4, then sunos.
|
|
tail=$os
|
|
ostry=$os
|
|
while o=`echo $tail | sed 's/\.[^.]*$//'`; test $o != $tail; do
|
|
ostry="$ostry /$o"
|
|
tail=$o
|
|
done
|
|
o=`echo $tail | sed 's/[0-9]*$//'`
|
|
if test $o != $tail; then
|
|
ostry="$ostry /$o"
|
|
fi
|
|
# For linux-gnu, try linux-gnu, then linux.
|
|
o=`echo $tail | sed 's/-.*$//'`
|
|
if test $o != $tail; then
|
|
ostry="$ostry /$o"
|
|
fi
|
|
|
|
# For unix/sysv/sysv4, try unix/sysv/sysv4, then unix/sysv, then unix.
|
|
base=
|
|
tail=$base_os
|
|
while b=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$b"; do
|
|
set $b
|
|
base="$base /$1"
|
|
tail="$2"
|
|
done
|
|
|
|
# For sparc/sparc9, try sparc/sparc9 and then sparc.
|
|
mach=
|
|
tail=$machine
|
|
while m=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$m"; do
|
|
set $m
|
|
# Prepend the machine's FPU directory unless --without-fp.
|
|
if test "$with_fp" = yes; then
|
|
mach="$mach /$1/fpu"
|
|
fi
|
|
mach="$mach /$1"
|
|
tail="$2"
|
|
done
|
|
|
|
dnl We are done with glob and regexp uses of [ and ]; return to autoconf.
|
|
changequote([,])dnl
|
|
|
|
# Find what sysdep directories exist.
|
|
sysnames=
|
|
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
|
|
for d in $add_ons_pfx ''; do
|
|
for b in $base ''; do
|
|
for m0 in $mach ''; do
|
|
for v in /$vendor ''; do
|
|
for o in /$ostry ''; do
|
|
for m in $mach ''; do
|
|
if test "$m0$b$v$o$m"; then
|
|
try="${d}sysdeps$m0$b$v$o$m"
|
|
test -n "$enable_debug_configure" &&
|
|
echo "$0 [DEBUG]: try $try" >&2
|
|
case $try in
|
|
/*) dest=$try ;;
|
|
*) dest=$srcdir/$try ;;
|
|
esac
|
|
if test -d $dest; then
|
|
sysnames="$sysnames $try"
|
|
{ test -n "$o" || test -n "$b"; } && os_used=t
|
|
{ test -n "$m" || test -n "$m0"; } && machine_used=t
|
|
fi
|
|
fi
|
|
done
|
|
done
|
|
done
|
|
done
|
|
done
|
|
done
|
|
IFS="$ac_save_ifs"
|
|
|
|
if test -z "$os_used" && test "$os" != none; then
|
|
AC_MSG_ERROR(Operating system $os is not supported.)
|
|
fi
|
|
if test -z "$machine_used" && test "$machine" != none; then
|
|
AC_MSG_ERROR(The $machine is not supported.)
|
|
fi
|
|
|
|
# We have now validated the configuration.
|
|
|
|
|
|
# If using ELF, look for an `elf' subdirectory of each machine directory.
|
|
# We prepend these rather than inserting them whereever the machine appears
|
|
# because things specified by the machine's ELF ABI should override
|
|
# OS-specific things, and should always be the same for any OS on the
|
|
# machine (otherwise what's the point of an ABI?).
|
|
if test "$elf" = yes; then
|
|
elf_dirs=
|
|
for d in $add_ons_pfx ''; do
|
|
case $d in
|
|
/*) xsrcdir= ;;
|
|
*) xsrcdir=$srcdir/ ;;
|
|
esac
|
|
for m in $mach; do
|
|
if test -d $xsrcdir${d}sysdeps$m/elf; then
|
|
elf_dirs="$elf_dirs ${d}sysdeps$m/elf"
|
|
fi
|
|
done
|
|
done
|
|
sysnames="`echo $elf_dirs | sed -e 's,//,/,g'` $sysnames"
|
|
fi
|
|
|
|
|
|
# Expand the list of system names into a full list of directories
|
|
# from each element's parent name and Implies file (if present).
|
|
set $sysnames
|
|
names=
|
|
while test $# -gt 0; do
|
|
name=$1
|
|
shift
|
|
|
|
case " $names " in *" $name "*)
|
|
# Already in the list.
|
|
continue
|
|
esac
|
|
|
|
# Report each name as we discover it, so there is no long pause in output.
|
|
echo $ac_n "$name $ac_c" >&AC_FD_MSG
|
|
|
|
name_base=`echo $name | sed -e 's@\(.*sysdeps\)/.*@\1@'`
|
|
|
|
case $name in
|
|
/*) xsrcdir= ;;
|
|
*) xsrcdir=$srcdir/ ;;
|
|
esac
|
|
test -n "$enable_debug_configure" &&
|
|
echo "[DEBUG]: name/Implies $xsrcdir$name/Implies" >&2
|
|
|
|
if test -f $xsrcdir$name/Implies; then
|
|
# Collect more names from the `Implies' file (removing comments).
|
|
implied_candidate="`sed 's/#.*$//' < $xsrcdir$name/Implies`"
|
|
implied=
|
|
for x in $implied_candidate; do
|
|
if test -d $xsrcdir$name_base/$x; then
|
|
implied="$implied $name_base/$x";
|
|
else
|
|
AC_MSG_WARN($name/Implies specifies nonexistent $x)
|
|
fi
|
|
done
|
|
else
|
|
implied=
|
|
fi
|
|
|
|
# Add NAME to the list of names.
|
|
names="$names $name"
|
|
|
|
# Find the parent of NAME, using the empty string if it has none.
|
|
changequote(,)dnl
|
|
parent="`echo $name | sed -n -e 's=/[^/]*$==' -e '/sysdeps$/q' -e p`"
|
|
changequote([,])dnl
|
|
|
|
# Add the names implied by NAME, and NAME's parent (if it has one), to
|
|
# the list of names to be processed (the argument list). We prepend the
|
|
# implied names to the list and append the parent. We want implied
|
|
# directories to come before further directories inferred from the
|
|
# configuration components; this ensures that for sysv4, unix/common
|
|
# (implied by unix/sysv/sysv4) comes before unix/sysv (in ostry (here $*)
|
|
# after sysv4).
|
|
sysnames="`echo $implied $* $parent`"
|
|
test -n "$sysnames" && set $sysnames
|
|
done
|
|
|
|
# Add the default directories.
|
|
sysnames="$names sysdeps/generic sysdeps/stub"
|
|
AC_SUBST(sysnames)
|
|
# The other names were emitted during the scan.
|
|
AC_MSG_RESULT(sysdeps/generic sysdeps/stub)
|
|
|
|
|
|
### Locate tools.
|
|
|
|
AC_PROG_INSTALL
|
|
if test "$INSTALL" = "${srcdir}/install-sh -c"; then
|
|
# The makefiles need to use a different form to find it in $srcdir.
|
|
INSTALL='$(..)./install-sh -c'
|
|
fi
|
|
AC_PROG_LN_S
|
|
AC_CHECK_PROGS(MSGFMT, msgfmt gmsgfmt, :)
|
|
|
|
AC_CHECK_TOOL(CC, gcc)
|
|
if test $host != $build; then
|
|
AC_CHECK_PROG(BUILD_CC, gcc cc)
|
|
fi
|
|
AC_PROG_CPP
|
|
AC_CHECK_TOOL(AR, ar)
|
|
AC_CHECK_TOOL(RANLIB, ranlib, :)
|
|
|
|
AC_PATH_PROG(BASH, bash, no)
|
|
if test "$BASH" != no && $BASH -c 'test "$BASH_VERSINFO" -ge 2'; then
|
|
libc_cv_have_bash2=yes
|
|
else
|
|
libc_cv_have_bash2=no
|
|
fi
|
|
AC_SUBST(libc_cv_have_bash2)
|
|
|
|
AC_CACHE_CHECK(for signed size_t type, libc_cv_signed_size_t, [dnl
|
|
echo '#include <stddef.h>
|
|
FOOBAR __SIZE_TYPE__ FOOBAR' > conftest.c
|
|
if eval "$ac_cpp conftest.c 2>/dev/null" \
|
|
| grep '^FOOBAR.*unsigned.*FOOBAR$' >/dev/null; then
|
|
libc_cv_signed_size_t=no
|
|
else
|
|
libc_cv_signed_size_t=yes
|
|
fi
|
|
rm -f conftest*])
|
|
if test $libc_cv_signed_size_t = yes; then
|
|
dnl Do this by hand instead of AC_DEFINE so can add #undef to avoid warnings.
|
|
cat >> confdefs.h <<\EOF
|
|
#undef __SIZE_TYPE__
|
|
#define __SIZE_TYPE__ unsigned
|
|
EOF
|
|
fi
|
|
|
|
AC_CACHE_CHECK(for libc-friendly stddef.h, libc_cv_friendly_stddef, [dnl
|
|
AC_TRY_COMPILE(dnl
|
|
[#define __need_size_t
|
|
#define __need_wchar_t
|
|
#include <stddef.h>
|
|
#define __need_NULL
|
|
#include <stddef.h>], [size_t size; wchar_t wchar;
|
|
#ifdef offsetof
|
|
#error stddef.h ignored __need_*
|
|
#endif
|
|
if (&size == NULL || &wchar == NULL) abort ();],
|
|
libc_cv_friendly_stddef=yes,
|
|
libc_cv_friendly_stddef=no)])
|
|
if test $libc_cv_friendly_stddef = yes; then
|
|
config_vars="$config_vars
|
|
override stddef.h = # The installed <stddef.h> seems to be libc-friendly."
|
|
fi
|
|
|
|
AC_CACHE_CHECK(whether we need to use -P to assemble .S files,
|
|
libc_cv_need_minus_P, [dnl
|
|
cat > conftest.S <<EOF
|
|
#include "confdefs.h"
|
|
/* Nothing whatsoever. */
|
|
EOF
|
|
if ${CC-cc} $CFLAGS -c conftest.S 2>/dev/null; then
|
|
libc_cv_need_minus_P=no
|
|
else
|
|
libc_cv_need_minus_P=yes
|
|
fi
|
|
rm -f conftest*])
|
|
if test $libc_cv_need_minus_P = yes; then
|
|
config_vars="$config_vars
|
|
asm-CPPFLAGS = -P # The assembler can't grok cpp's # line directives."
|
|
fi
|
|
|
|
AC_CACHE_CHECK(for assembler global-symbol directive,
|
|
libc_cv_asm_global_directive, [dnl
|
|
libc_cv_asm_global_directive=UNKNOWN
|
|
for ac_globl in .globl .global; do
|
|
cat > conftest.s <<EOF
|
|
.text
|
|
${ac_globl} foo
|
|
foo: .long 0
|
|
EOF
|
|
if ${CC-cc} $CFLAGS -c conftest.s 2>/dev/null; then
|
|
libc_cv_asm_global_directive=${ac_globl}
|
|
fi
|
|
rm -f conftest*
|
|
test $libc_cv_asm_global_directive != UNKNOWN && break
|
|
done])
|
|
if test $libc_cv_asm_global_directive = UNKNOWN; then
|
|
AC_MSG_ERROR(cannot determine asm global directive)
|
|
else
|
|
AC_DEFINE_UNQUOTED(ASM_GLOBAL_DIRECTIVE, ${libc_cv_asm_global_directive})
|
|
fi
|
|
|
|
AC_CACHE_CHECK(for .set assembler directive, libc_cv_asm_set_directive, [dnl
|
|
cat > conftest.s <<EOF
|
|
.text
|
|
foo: .long 0
|
|
.set glibc_conftest_frobozz,foo
|
|
$libc_cv_asm_global_directive glibc_conftest_frobozz
|
|
EOF
|
|
# The alpha-dec-osf1 assembler gives only a warning for `.set'
|
|
# (but it doesn't work), so we must do a linking check to be sure.
|
|
cat > conftest1.c <<\EOF
|
|
extern int glibc_conftest_frobozz;
|
|
main () { printf ("%d\n", glibc_conftest_frobozz); }
|
|
EOF
|
|
if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \
|
|
-o conftest conftest.s conftest1.c 1>&AC_FD_CC 2>&AC_FD_CC; then
|
|
libc_cv_asm_set_directive=yes
|
|
else
|
|
libc_cv_asm_set_directive=no
|
|
fi
|
|
rm -f conftest*])
|
|
if test $libc_cv_asm_set_directive = yes; then
|
|
AC_DEFINE(HAVE_ASM_SET_DIRECTIVE)
|
|
fi
|
|
|
|
if test $elf != yes; then
|
|
AC_CACHE_CHECK(for .init and .fini sections, libc_cv_have_initfini,
|
|
[AC_TRY_COMPILE(, [asm (".section .init");
|
|
asm (".section .fini");
|
|
asm (".text");],
|
|
libc_cv_have_initfini=yes,
|
|
libc_cv_have_initfini=no)])
|
|
AC_SUBST(libc_cv_have_initfini)dnl
|
|
if test $libc_cv_have_initfini = yes; then
|
|
AC_DEFINE(HAVE_INITFINI)
|
|
fi
|
|
fi
|
|
|
|
if test $elf = yes; then
|
|
libc_cv_asm_underscores=no
|
|
else
|
|
AC_CACHE_CHECK(for _ prefix on C symbol names, libc_cv_asm_underscores,
|
|
[AC_TRY_LINK([asm ("_glibc_foobar:");], [glibc_foobar ();],
|
|
libc_cv_asm_underscores=yes,
|
|
libc_cv_asm_underscores=no)])
|
|
fi
|
|
if test $libc_cv_asm_underscores = no; then
|
|
AC_DEFINE(NO_UNDERSCORES)
|
|
fi
|
|
|
|
if test $elf = yes; then
|
|
libc_cv_weak_symbols=yes
|
|
libc_cv_asm_weak_directive=yes
|
|
libc_cv_asm_weakext_directive=no
|
|
else
|
|
AC_CACHE_CHECK(for assembler .weak directive, libc_cv_asm_weak_directive,
|
|
[dnl
|
|
cat > conftest.s <<EOF
|
|
.text
|
|
${libc_cv_asm_global_directive} foo
|
|
foo: .long 0
|
|
.weak foo
|
|
.weak bar; bar = foo
|
|
EOF
|
|
if ${CC-cc} $CFLAGS -c conftest.s 2>/dev/null; then
|
|
libc_cv_asm_weak_directive=yes
|
|
else
|
|
libc_cv_asm_weak_directive=no
|
|
fi
|
|
rm -f conftest*])
|
|
|
|
if test $libc_cv_asm_weak_directive = no; then
|
|
AC_CACHE_CHECK(for assembler .weakext directive,
|
|
libc_cv_asm_weakext_directive,
|
|
[dnl
|
|
cat > conftest.s <<EOF
|
|
.text
|
|
${libc_cv_asm_global_directive} foo
|
|
foo: .long 0
|
|
.weakext foo
|
|
.weakext foo, bar
|
|
EOF
|
|
if ${CC-cc} $CFLAGS -c conftest.s 2>/dev/null; then
|
|
libc_cv_asm_weakext_directive=yes
|
|
else
|
|
libc_cv_asm_weakext_directive=no
|
|
fi
|
|
rm -f conftest*])
|
|
|
|
fi # no .weak
|
|
fi # not ELF
|
|
|
|
if test $libc_cv_asm_weak_directive = yes; then
|
|
AC_DEFINE(HAVE_ASM_WEAK_DIRECTIVE)
|
|
elif test $libc_cv_asm_weakext_directive = yes; then
|
|
AC_DEFINE(HAVE_ASM_WEAKEXT_DIRECTIVE)
|
|
fi
|
|
|
|
AC_CACHE_CHECK(for ld --no-whole-archive, libc_cv_ld_no_whole_archive, [dnl
|
|
cat > conftest.c <<\EOF
|
|
_start () {}
|
|
int __eh_pc;
|
|
__throw () {}
|
|
EOF
|
|
dnl No \ in command here because it ends up inside ''.
|
|
if AC_TRY_COMMAND([${CC-cc} $CFLAGS
|
|
-nostdlib -nostartfiles -Wl,--no-whole-archive
|
|
-o conftest conftest.c]); then
|
|
libc_cv_ld_no_whole_archive=yes
|
|
else
|
|
libc_cv_ld_no_whole_archive=no
|
|
fi
|
|
rm -f conftest*])
|
|
AC_SUBST(libc_cv_ld_no_whole_archive)dnl
|
|
|
|
AC_CACHE_CHECK(for gcc -fno-exceptions, libc_cv_gcc_no_exceptions, [dnl
|
|
cat > conftest.c <<\EOF
|
|
_start () {}
|
|
int __eh_pc;
|
|
__throw () {}
|
|
EOF
|
|
dnl No \ in command here because it ends up inside ''.
|
|
if AC_TRY_COMMAND([${CC-cc} $CFLAGS
|
|
-nostdlib -nostartfiles -fno-exceptions
|
|
-o conftest conftest.c]); then
|
|
libc_cv_gcc_no_exceptions=yes
|
|
else
|
|
libc_cv_gcc_no_exceptions=no
|
|
fi
|
|
rm -f conftest*])
|
|
AC_SUBST(libc_cv_gcc_no_exceptions)dnl
|
|
|
|
### End of automated tests.
|
|
### Now run sysdeps configure fragments.
|
|
|
|
# sysdeps configure fragments may set these with files to be linked below.
|
|
libc_link_dests=
|
|
libc_link_sources=
|
|
|
|
# Iterate over all the sysdep directories we will use, running their
|
|
# configure fragments, and looking for a uname implementation.
|
|
uname=
|
|
for dir in $sysnames; do
|
|
case $dir in
|
|
/*) dest=$dir ;;
|
|
*) dest=$srcdir/$dir ;;
|
|
esac
|
|
if test -r $dest/configure; then
|
|
AC_MSG_RESULT(running configure fragment for $dest)
|
|
. $dest/configure
|
|
fi
|
|
[
|
|
if test -z "$uname"; then
|
|
if test -r $sysdep_dir/$dir/uname.c ||
|
|
test -r $sysdep_dir/$dir/uname.S ||
|
|
{ test -r $sysdep_dir/$dir/syscalls.list &&
|
|
grep '^uname[ ]' $sysdep_dir/$dir/syscalls.list >/dev/null; }; then
|
|
uname=$dir
|
|
fi
|
|
fi
|
|
]dnl
|
|
done
|
|
|
|
AC_LINK_FILES(`echo $libc_link_sources`, `echo $libc_link_dests`)
|
|
|
|
# If we will use the generic uname implementation, we must figure out what
|
|
# it will say by examining the system, and write the results in config-name.h.
|
|
if test "$uname" = generic; then
|
|
|
|
changequote(,)dnl
|
|
uname_sysname=`echo $config_os | sed 's/[0-9.]*$//'`
|
|
changequote([,])dnl
|
|
if test $uname_sysname != $config_os; then
|
|
config_release=`echo $config_os | sed s/$uname_sysname//`
|
|
fi
|
|
dnl
|
|
AC_DEFUN(LIBC_KERNEL_ID, [dnl
|
|
if test -r /vmunix; then
|
|
kernel_id=`strings /vmunix | grep UNIX`
|
|
elif test -r /dynix; then
|
|
kernel_id=`strings /dynix | grep DYNIX`
|
|
else
|
|
kernel_id=
|
|
fi
|
|
])dnl
|
|
|
|
AC_CACHE_CHECK(OS release for uname, libc_cv_uname_release, [dnl
|
|
AC_REQUIRE([LIBC_KERNEL_ID])dnl
|
|
changequote(,)dnl
|
|
kernel_release=`echo "$kernel_id" | sed 's/^[^0-9.]*\([0-9.]*\).*$/\1/'`
|
|
changequote([,])dnl
|
|
if test x`echo "$config_release" | sed "s/^$kernel_release//"` \
|
|
!= x$config_release; then
|
|
# The configuration release is a substring of the kernel release.
|
|
libc_cv_uname_release=$kernel_release
|
|
elif test x$config_release != x; then
|
|
libc_cv_uname_release=$config_release
|
|
elif test x$kernel_release != x; then
|
|
libc_cv_uname_release=$kernel_release
|
|
else
|
|
libc_cv_uname_release=unknown
|
|
fi])
|
|
uname_release="$libc_cv_uname_release"
|
|
|
|
AC_CACHE_CHECK(OS version for uname, libc_cv_uname_version, [dnl
|
|
AC_REQUIRE([LIBC_KERNEL_ID])dnl
|
|
changequote(,)dnl
|
|
kernel_version=`echo "$kernel_id" | sed 's/^[^#]*#\([0-9]*\).*$/\1/'`
|
|
changequote([,])dnl
|
|
if test -n "$kernel_version"; then
|
|
libc_cv_uname_version="$kernel_version"
|
|
else
|
|
libc_cv_uname_version=unknown
|
|
fi])
|
|
uname_version="$libc_cv_uname_version"
|
|
|
|
AC_SUBST(uname_sysname) AC_SUBST(uname_release) AC_SUBST(uname_version)dnl
|
|
config_uname=config-name.h:config-name.in
|
|
else
|
|
# For non-generic uname, we don't need to create config-name.h at all.
|
|
config_uname=
|
|
fi
|
|
|
|
AC_MSG_CHECKING(stdio selection)
|
|
AC_SUBST(stdio)
|
|
case $stdio in
|
|
libio) AC_DEFINE(USE_IN_LIBIO) ;;
|
|
default) stdio=stdio ;;
|
|
esac
|
|
AC_MSG_RESULT($stdio)
|
|
|
|
AC_SUBST(libc_cv_slibdir)
|
|
AC_SUBST(libc_cv_sysconfdir)
|
|
|
|
AC_SUBST(gnu_ld) AC_SUBST(gnu_as) AC_SUBST(elf)
|
|
if test $gnu_ld = yes; then
|
|
AC_DEFINE(HAVE_GNU_LD)
|
|
fi
|
|
if test $gnu_as = yes; then
|
|
AC_DEFINE(HAVE_GNU_AS)
|
|
fi
|
|
if test $elf = yes; then
|
|
AC_DEFINE(HAVE_ELF)
|
|
fi
|
|
|
|
AC_SUBST(shared)
|
|
if test $shared = default; then
|
|
if test $gnu_ld = yes; then
|
|
shared=$elf
|
|
fi
|
|
fi
|
|
AC_SUBST(profile)
|
|
AC_SUBST(omitfp)
|
|
|
|
AC_SUBST(DEFINES)
|
|
|
|
if test "`(cd $srcdir; pwd)`" = "`pwd`"; then
|
|
config_makefile=
|
|
else
|
|
config_makefile=Makefile
|
|
fi
|
|
|
|
AC_OUTPUT(config.make ${config_makefile} ${config_uname}, ,
|
|
[echo '$config_vars' >> config.make])
|