diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/config.gcc | 8 | ||||
-rw-r--r-- | gcc/config/t-slibgcc-elf-ver | 3 | ||||
-rw-r--r-- | gcc/config/t-slibgcc-nolc-override | 1 | ||||
-rw-r--r-- | gcc/doc/install.texi | 2 |
5 files changed, 20 insertions, 2 deletions
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 <ljrittle@acm.org> + + * 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 <neil@daikokuya.demon.co.uk> * 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 </p> <hr> |