summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>1995-04-14 03:27:44 +0000
committerRoland McGrath <roland@gnu.org>1995-04-14 03:27:44 +0000
commit335aa3209b5d597a93733a7313e629e202731078 (patch)
treeef016dfb9b3380e0818db3de3222e7e6db13dd58
parent6e33fad374814f1a4bf80aa37d4ded9c9096edab (diff)
* sysdeps/generic/expm1.c: #undef expm1 before weak_alias.
* libc-symbols.h [! HAVE_ASM_SET_DIRECTIVE] (strong_alias, strong_alias_asm): Use `foo = bar' syntax instead. * configure.in: Fix AC_ARG_WITH uses; check for --with-fp. Move $host_os checks to set gnu_ld/as and elf before sysdirs generation. Fix $with_fp test. [$elf=yes]: Prepend MACHINE/elf directory.
-rw-r--r--ChangeLog9
-rw-r--r--configure.in50
-rw-r--r--libc-symbols.h11
-rw-r--r--sysdeps/generic/expm1.c1
4 files changed, 56 insertions, 15 deletions
diff --git a/ChangeLog b/ChangeLog
index 024b548079..5e945cbd28 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,14 @@
Thu Apr 13 09:45:01 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+ * sysdeps/generic/expm1.c: #undef expm1 before weak_alias.
+
+ * libc-symbols.h [! HAVE_ASM_SET_DIRECTIVE] (strong_alias,
+ strong_alias_asm): Use `foo = bar' syntax instead.
+ * configure.in: Fix AC_ARG_WITH uses; check for --with-fp. Move
+ $host_os checks to set gnu_ld/as and elf before sysdirs
+ generation. Fix $with_fp test.
+ [$elf=yes]: Prepend MACHINE/elf directory.
+
* elf/libelf.h (elf_hash): Use XOR instead of ANDN when the bits
being cleared are already known to be set. Thanks Ulrich.
diff --git a/configure.in b/configure.in
index 7badd6161c..eb5a933f6c 100644
--- a/configure.in
+++ b/configure.in
@@ -20,22 +20,25 @@ esac
])
dnl Arguments to specify presence of other packages/features.
+AC_ARG_WITH(fp, dnl
+ --with-fp if using floating-point hardware,
+ with_fp=$withval, with_fp=yes)
AC_ARG_WITH(gnu-binutils, dnl
--with-gnu-binutils if using GNU binutils (as and ld),
- gnu_binutils=yes, gnu_binutils=no)
+ 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=yes, gnu_ld=no)
+ 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=yes, gnu_as=no)
+ 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=yes, elf=no)
+ elf=$withval, elf=no)
AC_ARG_WITH(weak-symbols, dnl
--with-weak-symbols if weak symbols are available in as and ld,
- weak=yes, weak=no)
+ weak=$withval, weak=no)
dnl Arguments to enable or disable building the shared, profiled, and
dnl -fomit-frame-pointer libraries.
@@ -166,11 +169,24 @@ fi
# We have now validated the configuration.
+# 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
+gnu*elf* | linux* | sysv4* | solaris2*)
+ # These systems always use the ELF format.
+ elf=yes
+esac
+
+
# Remove the leading slashes.
sysnames="`echo $sysnames | sed -e 's@^/@@' -e 's@ /@ @g'`"
# Prepend the machine's FPU directory unless --without-fp.
-if test "$with_fp" = no; then
+if test "$with_fp" = yes; then
fpu_dirs=
for m in $mach; do
if test -d $sysdep_dir$m/fpu; then
@@ -180,6 +196,19 @@ if test "$with_fp" = no; then
sysnames="`echo $fpu_dirs | sed -e 's,^/,,' -e 's, /,,g'` $sysnames"
fi
+# If using ELF, prepend the machine-specific ELF ABI directory.
+if test "$elf" = yes; then
+ elf_dirs=
+ for m in $mach; do
+ if test -d $sysdep_dir$m/elf; then
+ elf_dirs="elf_dirs $m/elf"
+ fi
+ done
+ sysnames="`echo elf_dirs | sed -e 's,^/,,' -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
@@ -241,15 +270,6 @@ libc_cv_sysdirs="$sysnames"])
AC_SUBST(sysnames) sysnames="$libc_cv_sysdirs"
AC_MSG_RESULT(${sysnames})
-case "$host_os" in
-gnu* | linux* | bsd4.4* | netbsd* | freebsd*)
- gnu_ld=yes gnu_as=yes
-esac
-case "$host_os" in
-gnu*elf* | linux* | sysv4* | solaris2*)
- elf=yes
-esac
-
AC_PROG_INSTALL
if test "$INSTALL" = "${srcdir}/install-sh"; then
# The makefiles need to use a different form to find it in $srcdir.
diff --git a/libc-symbols.h b/libc-symbols.h
index be88e7601b..a173b4d66d 100644
--- a/libc-symbols.h
+++ b/libc-symbols.h
@@ -80,6 +80,7 @@ Cambridge, MA 02139, USA. */
#endif
/* Define ALIAS as a strong alias for ORIGINAL. */
+#ifdef HAVE_ASM_SET_DIRECTIVE
#define strong_alias_asm(original, alias) \
.set C_SYMBOL_NAME (alias),C_SYMBOL_NAME (original)
#ifdef ASSEMBLER
@@ -88,6 +89,16 @@ Cambridge, MA 02139, USA. */
#define strong_alias(original, alias) \
asm (".set " __SYMBOL_PREFIX #alias "," __SYMBOL_PREFIX #original);
#endif
+#else
+#define strong_alias_asm(original, alias) \
+ C_SYMBOL_NAME (alias) = C_SYMBOL_NAME (original)
+#ifdef ASSEMBLER
+#define strong_alias(original, alias) strong_alias_asm (original, alias)
+#else
+#define strong_alias(original, alias) \
+ asm (__SYMBOL_PREFIX #alias " = " __SYMBOL_PREFIX #original);
+#endif
+#endif
/* Define ALIAS as a weak alias for ORIGINAL.
If weak aliases are not available, this defines a strong alias. */
diff --git a/sysdeps/generic/expm1.c b/sysdeps/generic/expm1.c
index a738d124c8..383902a928 100644
--- a/sysdeps/generic/expm1.c
+++ b/sysdeps/generic/expm1.c
@@ -166,4 +166,5 @@ double x;
return( finite(x) ? scalb(one,5000) : x);
}
+#undef expm1
weak_alias (__expm1, expm1)