From bf13a39139c00175222a736917db06d7e387164a Mon Sep 17 00:00:00 2001
From: ljrittle
Date: Fri, 29 Mar 2002 22:01:18 +0000
Subject: * config.gcc (*-*-freebsd*): Enable creation of libgcc_s.so.
* config/t-slibgcc-elf-ver (SHLIB_LC): Add macro and use it. No functional
change except ... * config/t-slibgcc-nolc-override (SHLIB_LC): Override
it. New file. * doc/install.texi (*-*-freebsd*): Document port
configuration.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@51574 138bc75d-0d04-0410-961f-82ee72b054a4
---
gcc/ChangeLog | 8 ++++++++
gcc/config.gcc | 8 +++++++-
gcc/config/t-slibgcc-elf-ver | 3 ++-
gcc/config/t-slibgcc-nolc-override | 1 +
gcc/doc/install.texi | 2 ++
5 files changed, 20 insertions(+), 2 deletions(-)
create mode 100644 gcc/config/t-slibgcc-nolc-override
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 1b85c02f6c8..b5309a2c274 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2002-03-29 Loren J. Rittle
+
+ * config.gcc (*-*-freebsd*): Enable creation of libgcc_s.so.
+ * config/t-slibgcc-elf-ver (SHLIB_LC): Add macro and use it.
+ No functional change except ...
+ * config/t-slibgcc-nolc-override (SHLIB_LC): Override it. New file.
+ * doc/install.texi (*-*-freebsd*): Document port configuration.
+
2002-03-29 Neil Booth
* Makefile.in (convert.o, calls.o, expmed.o): Update.
diff --git a/gcc/config.gcc b/gcc/config.gcc
index edef1ff391e..80aed452d93 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -363,7 +363,7 @@ case $machine in
*-*-freebsd6 | *-*-freebsd[6].*) fbsd_tm_file="freebsd6.h";;
*) echo 'Please update *-*-freebsd* in gcc/config.gcc'; exit 1;;
esac
- tmake_file=t-freebsd
+ tmake_file="t-slibgcc-elf-ver t-freebsd"
xmake_file=none
xm_defines=POSIX
case x${enable_threads} in
@@ -371,6 +371,12 @@ case $machine in
x | xyes | xpthreads | xposix)
thread_file='posix'
tmake_file="${tmake_file} t-freebsd-thread"
+ # Before 5.0, FreeBSD can't bind shared libraries to -lc
+ # when "optionally" threaded via weak pthread_* checks.
+ case $machine in
+ *-*-freebsd[34] | *-*-freebsd[34].*)
+ tmake_file="${tmake_file} t-slibgcc-nolc-override";;
+ esac
;;
*) echo 'Unknown thread configuration for FreeBSD'; exit 1;;
esac
diff --git a/gcc/config/t-slibgcc-elf-ver b/gcc/config/t-slibgcc-elf-ver
index 2912e0aa50e..d6c89ff8acb 100644
--- a/gcc/config/t-slibgcc-elf-ver
+++ b/gcc/config/t-slibgcc-elf-ver
@@ -6,11 +6,12 @@ SHLIB_NAME = @shlib_base_name@.so
SHLIB_SONAME = @shlib_base_name@.so.1
SHLIB_MAP = @shlib_map_file@
SHLIB_OBJS = @shlib_objs@
+SHLIB_LC = -lc
SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
-Wl,--soname=$(SHLIB_SONAME) \
-Wl,--version-script=$(SHLIB_MAP) \
- -o $(SHLIB_NAME) @multilib_flags@ $(SHLIB_OBJS) -lc && \
+ -o $(SHLIB_NAME) @multilib_flags@ $(SHLIB_OBJS) $(SHLIB_LC) && \
rm -f $(SHLIB_SONAME) && \
$(LN_S) $(SHLIB_NAME) $(SHLIB_SONAME)
# $(slibdir) double quoted to protect it from expansion while building
diff --git a/gcc/config/t-slibgcc-nolc-override b/gcc/config/t-slibgcc-nolc-override
new file mode 100644
index 00000000000..959d2cc2a1f
--- /dev/null
+++ b/gcc/config/t-slibgcc-nolc-override
@@ -0,0 +1 @@
+SHLIB_LC =
diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi
index c0901a4ae93..3e3e258bff7 100644
--- a/gcc/doc/install.texi
+++ b/gcc/doc/install.texi
@@ -2079,6 +2079,8 @@ should properly complete the bootstrap). Other CPU architectures
supported by FreeBSD will require additional configuration tuning in, at
the very least, both boehm-gc and libffi.
+Shared @file{libgcc_s.so} is now built and installed by default.
+
@html
--
cgit v1.2.1