diff options
author | Iain Sandoe <iain@sandoe.co.uk> | 2021-09-20 18:41:56 +0100 |
---|---|---|
committer | Iain Sandoe <iain@sandoe.co.uk> | 2021-11-19 19:58:11 +0000 |
commit | d4943ce939d9654932624b9ece24c3a474ae4157 (patch) | |
tree | ee14e5881aff9ad57a3b9c861536949f8d4194a2 /libgcc/config | |
parent | b9873b4e2c9a9955789318f4d550147ef9405b07 (diff) | |
download | gcc-d4943ce939d9654932624b9ece24c3a474ae4157.zip gcc-d4943ce939d9654932624b9ece24c3a474ae4157.tar.gz gcc-d4943ce939d9654932624b9ece24c3a474ae4157.tar.bz2 |
Darwin: Rework handling for unwinder code in libgcc_s and specs [PR80556].
This addresses a long-standing problem where a work-around for an unwinder
issue (also a regression) regresses other functionality. The patch replaces
several work-arounds with a fix for PR80556 and a work-around for PR88590.
* The fix for PR80556 requires a bump to the SO name for libgcc_s, since we
need to remove the unwinder symbols from it. This would trigger PR88590
hence the work-around for that.
* We weaken the symbols for emulated TLS support so that it is possible
for a DSO linked with static-libgcc to interoperate with a DSO linked with
libgcc_s. Likewise main exes.
* We remove all the gcc-4.2.1 era stubs machinery and workarounds.
* libgcc is always now linked ahead of libc, which avoids fails where the
libc (libSystem) builtins implementations are not up to date.
* The unwinder now always comes from the system
- for Darwin9 from /usr/lib/libgcc_s.1.dylib
- for Darwin10 from /usr/lib/libSystem.dylib
- for Darwin11+ from /usr/lib/system/libunwind.dylib.
We still insert a shim on Darwin10 to fix an omitted unwind function, but
the underlying unwinder remains the system one.
* The work-around for PR88590 has two parts (1) we always link libgcc from
its convenience lib on affected system versions (avoiding the need to find
the DSO path); (2) we add and export the emutls functions from DSOs - this
makes a relatively small (20k) addition to a DSO. These can be backed out
when a proper fix for PR88590 is committed.
For distributions that wish to install a libgcc_s.1.dylib to satisfy linkage
from exes that linked against the stubs can use a reexported libgcc_s.1.1
(since that contains all the symbols that were previously exported via the
stubs).
Signed-off-by: Iain Sandoe <iain@sandoe.co.uk>
gcc/ChangeLog:
PR target/80556
* config/darwin-driver.c (darwin_driver_init): Handle exported
symbols and symbol lists (suppress automatic export of the TLS
symbols).
* config/darwin.c (darwin_rename_builtins): Remove workaround.
* config/darwin.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
(REAL_LIBGCC_SPEC): Handle revised library uses.
* config/darwin.opt (nodefaultexport): New.
* config/i386/darwin.h (PR80556_WORKAROUND): Remove.
* config/i386/darwin32-biarch.h (PR80556_WORKAROUND): Likewise.
* config/i386/darwin64-biarch.h (PR80556_WORKAROUND): Likewise.
libgcc/ChangeLog:
* config.host: Add weak emutls crt to the extra_parts.
* config/i386/darwin-lib.h (DECLARE_LIBRARY_RENAMES): Remove
workaround.
* config/libgcc-libsystem.ver: Add exclude list for the system-
provided unwinder.
* config/t-slibgcc-darwin: Bump SO version, remove stubs code.
* config/i386/libgcc-darwin.10.4.ver: Removed.
* config/i386/libgcc-darwin.10.5.ver: Removed.
* config/rs6000/libgcc-darwin.10.4.ver: Removed.
* config/rs6000/libgcc-darwin.10.5.ver: Removed.
* config/t-darwin-noeh: New file.
gcc/testsuite/ChangeLog:
* gcc.dg/torture/fp-int-convert-timode-3.c: Remove XFAIL.
* gcc.dg/torture/fp-int-convert-timode-4.c: Likewise.
Diffstat (limited to 'libgcc/config')
-rw-r--r-- | libgcc/config/i386/darwin-lib.h | 9 | ||||
-rw-r--r-- | libgcc/config/i386/libgcc-darwin.10.4.ver | 98 | ||||
-rw-r--r-- | libgcc/config/i386/libgcc-darwin.10.5.ver | 102 | ||||
-rw-r--r-- | libgcc/config/libgcc-libsystem.ver | 38 | ||||
-rw-r--r-- | libgcc/config/rs6000/libgcc-darwin.10.4.ver | 93 | ||||
-rw-r--r-- | libgcc/config/rs6000/libgcc-darwin.10.5.ver | 106 | ||||
-rw-r--r-- | libgcc/config/t-darwin-noeh | 4 | ||||
-rw-r--r-- | libgcc/config/t-slibgcc-darwin | 74 |
8 files changed, 61 insertions, 463 deletions
diff --git a/libgcc/config/i386/darwin-lib.h b/libgcc/config/i386/darwin-lib.h index 5aeee33..e22f732 100644 --- a/libgcc/config/i386/darwin-lib.h +++ b/libgcc/config/i386/darwin-lib.h @@ -22,13 +22,4 @@ a copy of the GCC Runtime Library Exception along with this program; see the files COPYING3 and COPYING.RUNTIME respectively. If not, see <http://www.gnu.org/licenses/>. */ -/* The system ___divdc3 routine in libSystem on darwin10 is not - accurate to 1ulp, ours is, so we avoid ever using the system name - for this routine and instead install a non-conflicting name that is - accurate. See darwin_rename_builtins. */ -#ifdef L_divdc3 -#define DECLARE_LIBRARY_RENAMES \ - asm(".text; ___divdc3: jmp ___ieee_divdc3 ; .globl ___divdc3"); -#endif - extern void * _darwin10_Unwind_FindEnclosingFunction (void *); diff --git a/libgcc/config/i386/libgcc-darwin.10.4.ver b/libgcc/config/i386/libgcc-darwin.10.4.ver deleted file mode 100644 index b8a73b1..0000000 --- a/libgcc/config/i386/libgcc-darwin.10.4.ver +++ /dev/null @@ -1,98 +0,0 @@ -# Copyright (C) 2005-2021 Free Software Foundation, Inc. -# -# This file is part of GCC. -# -# GCC is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3, or (at your option) -# any later version. -# -# GCC is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with GCC; see the file COPYING3. If not see -# <http://www.gnu.org/licenses/>. -__Unwind_Backtrace -__Unwind_DeleteException -__Unwind_FindEnclosingFunction -__Unwind_Find_FDE -__Unwind_ForcedUnwind -__Unwind_GetCFA -__Unwind_GetDataRelBase -__Unwind_GetGR -__Unwind_GetIP -__Unwind_GetLanguageSpecificData -__Unwind_GetRegionStart -__Unwind_GetTextRelBase -__Unwind_RaiseException -__Unwind_Resume -__Unwind_Resume_or_Rethrow -__Unwind_SetGR -__Unwind_SetIP -___absvdi2 -___absvsi2 -___addvdi3 -___addvsi3 -___ashldi3 -___ashrdi3 -___clear_cache -___clzdi2 -___clzsi2 -___cmpdi2 -___ctzdi2 -___ctzsi2 -___deregister_frame -___deregister_frame_info -___deregister_frame_info_bases -___divdc3 -___divdi3 -___divsc3 -___divxc3 -___enable_execute_stack -___ffsdi2 -___fixdfdi -___fixsfdi -___fixunsdfdi -___fixunsdfsi -___fixunssfdi -___fixunssfsi -___fixunsxfdi -___fixunsxfsi -___fixxfdi -___floatdidf -___floatdisf -___floatdixf -___gcc_personality_v0 -___lshrdi3 -___moddi3 -___muldc3 -___muldi3 -___mulsc3 -___mulvdi3 -___mulvsi3 -___mulxc3 -___negdi2 -___negvdi2 -___negvsi2 -___paritydi2 -___paritysi2 -___popcountdi2 -___popcountsi2 -___powidf2 -___powisf2 -___powixf2 -___register_frame -___register_frame_info -___register_frame_info_bases -___register_frame_info_table -___register_frame_info_table_bases -___register_frame_table -___subvdi3 -___subvsi3 -___ucmpdi2 -___udivdi3 -___udivmoddi4 -___umoddi3 diff --git a/libgcc/config/i386/libgcc-darwin.10.5.ver b/libgcc/config/i386/libgcc-darwin.10.5.ver deleted file mode 100644 index 49fd927..0000000 --- a/libgcc/config/i386/libgcc-darwin.10.5.ver +++ /dev/null @@ -1,102 +0,0 @@ -# Copyright (C) 2005-2021 Free Software Foundation, Inc. -# -# This file is part of GCC. -# -# GCC is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3, or (at your option) -# any later version. -# -# GCC is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with GCC; see the file COPYING3. If not see -# <http://www.gnu.org/licenses/>. -__Unwind_Backtrace -__Unwind_DeleteException -__Unwind_FindEnclosingFunction -__Unwind_Find_FDE -__Unwind_ForcedUnwind -__Unwind_GetCFA -__Unwind_GetDataRelBase -__Unwind_GetGR -__Unwind_GetIP -__Unwind_GetIPInfo -__Unwind_GetLanguageSpecificData -__Unwind_GetRegionStart -__Unwind_GetTextRelBase -__Unwind_RaiseException -__Unwind_Resume -__Unwind_Resume_or_Rethrow -__Unwind_SetGR -__Unwind_SetIP -___absvdi2 -___absvsi2 -___addvdi3 -___addvsi3 -___ashldi3 -___ashrdi3 -___clear_cache -___clzdi2 -___clzsi2 -___cmpdi2 -___ctzdi2 -___ctzsi2 -___deregister_frame -___deregister_frame_info -___deregister_frame_info_bases -___divdc3 -___divdi3 -___divsc3 -___divxc3 -___enable_execute_stack -___ffsdi2 -___fixdfdi -___fixsfdi -___fixunsdfdi -___fixunsdfsi -___fixunssfdi -___fixunssfsi -___fixunsxfdi -___fixunsxfsi -___fixxfdi -___floatdidf -___floatdisf -___floatdixf -___floatundidf -___floatundisf -___floatundixf -___gcc_personality_v0 -___lshrdi3 -___moddi3 -___muldc3 -___muldi3 -___mulsc3 -___mulvdi3 -___mulvsi3 -___mulxc3 -___negdi2 -___negvdi2 -___negvsi2 -___paritydi2 -___paritysi2 -___popcountdi2 -___popcountsi2 -___powidf2 -___powisf2 -___powixf2 -___register_frame -___register_frame_info -___register_frame_info_bases -___register_frame_info_table -___register_frame_info_table_bases -___register_frame_table -___subvdi3 -___subvsi3 -___ucmpdi2 -___udivdi3 -___udivmoddi4 -___umoddi3 diff --git a/libgcc/config/libgcc-libsystem.ver b/libgcc/config/libgcc-libsystem.ver index 4763174..697a245 100644 --- a/libgcc/config/libgcc-libsystem.ver +++ b/libgcc/config/libgcc-libsystem.ver @@ -1 +1,37 @@ -_darwin10_Unwind_FindEnclosingFunction +# We must use the unwinder provided by the OS, even if that has +# limitations or bug, so exclude the libgcc_s symbols. + +%exclude { + _Unwind_DeleteException + _Unwind_Find_FDE + _Unwind_ForcedUnwind + _Unwind_GetGR + _Unwind_GetIP + _Unwind_GetLanguageSpecificData + _Unwind_GetRegionStart + _Unwind_GetTextRelBase + _Unwind_GetDataRelBase + _Unwind_RaiseException + _Unwind_Resume + _Unwind_SetGR + _Unwind_SetIP + _Unwind_SjLj_Register + _Unwind_SjLj_Unregister + _Unwind_SjLj_RaiseException + _Unwind_SjLj_ForcedUnwind + _Unwind_SjLj_Resume + _Unwind_FindEnclosingFunction + _Unwind_GetCFA + _Unwind_Backtrace + _Unwind_Resume_or_Rethrow + _Unwind_SjLj_Resume_or_Rethrow + _Unwind_GetIPInfo + + __register_frame + __register_frame_table + __deregister_frame + __register_frame_info + __deregister_frame_info + __frame_state_for + __register_frame_info_table +} diff --git a/libgcc/config/rs6000/libgcc-darwin.10.4.ver b/libgcc/config/rs6000/libgcc-darwin.10.4.ver deleted file mode 100644 index b050cb8..0000000 --- a/libgcc/config/rs6000/libgcc-darwin.10.4.ver +++ /dev/null @@ -1,93 +0,0 @@ -# Copyright (C) 2005-2021 Free Software Foundation, Inc. -# -# This file is part of GCC. -# -# GCC is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3, or (at your option) -# any later version. -# -# GCC is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with GCC; see the file COPYING3. If not see -# <http://www.gnu.org/licenses/>. -__Unwind_Backtrace -__Unwind_DeleteException -__Unwind_FindEnclosingFunction -__Unwind_Find_FDE -__Unwind_ForcedUnwind -__Unwind_GetCFA -__Unwind_GetDataRelBase -__Unwind_GetGR -__Unwind_GetIP -__Unwind_GetLanguageSpecificData -__Unwind_GetRegionStart -__Unwind_GetTextRelBase -__Unwind_RaiseException -__Unwind_Resume -__Unwind_Resume_or_Rethrow -__Unwind_SetGR -__Unwind_SetIP -___absvdi2 -___absvsi2 -___addvdi3 -___addvsi3 -___ashldi3 -___ashrdi3 -___clear_cache -___clzdi2 -___clzsi2 -___cmpdi2 -___ctzdi2 -___ctzsi2 -___deregister_frame -___deregister_frame_info -___deregister_frame_info_bases -___divdi3 -___enable_execute_stack -___ffsdi2 -___fixdfdi -___fixsfdi -___fixtfdi -___fixunsdfdi -___fixunsdfsi -___fixunssfdi -___fixunssfsi -___fixunstfdi -___floatdidf -___floatdisf -___floatditf -___gcc_personality_v0 -___gcc_qadd -___gcc_qdiv -___gcc_qmul -___gcc_qsub -___lshrdi3 -___moddi3 -___muldi3 -___mulvdi3 -___mulvsi3 -___negdi2 -___negvdi2 -___negvsi2 -___paritydi2 -___paritysi2 -___popcountdi2 -___popcountsi2 -___register_frame -___register_frame_info -___register_frame_info_bases -___register_frame_info_table -___register_frame_info_table_bases -___register_frame_table -___subvdi3 -___subvsi3 -___trampoline_setup -___ucmpdi2 -___udivdi3 -___udivmoddi4 -___umoddi3 diff --git a/libgcc/config/rs6000/libgcc-darwin.10.5.ver b/libgcc/config/rs6000/libgcc-darwin.10.5.ver deleted file mode 100644 index dcc548f..0000000 --- a/libgcc/config/rs6000/libgcc-darwin.10.5.ver +++ /dev/null @@ -1,106 +0,0 @@ -# Copyright (C) 2005-2021 Free Software Foundation, Inc. -# -# This file is part of GCC. -# -# GCC is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3, or (at your option) -# any later version. -# -# GCC is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with GCC; see the file COPYING3. If not see -# <http://www.gnu.org/licenses/>. -__Unwind_Backtrace -__Unwind_DeleteException -__Unwind_FindEnclosingFunction -__Unwind_Find_FDE -__Unwind_ForcedUnwind -__Unwind_GetCFA -__Unwind_GetDataRelBase -__Unwind_GetGR -__Unwind_GetIP -__Unwind_GetIPInfo -__Unwind_GetLanguageSpecificData -__Unwind_GetRegionStart -__Unwind_GetTextRelBase -__Unwind_RaiseException -__Unwind_Resume -__Unwind_Resume_or_Rethrow -__Unwind_SetGR -__Unwind_SetIP -___absvdi2 -___absvsi2 -___addvdi3 -___addvsi3 -___ashldi3 -___ashrdi3 -___clear_cache -___clzdi2 -___clzsi2 -___cmpdi2 -___ctzdi2 -___ctzsi2 -___deregister_frame -___deregister_frame_info -___deregister_frame_info_bases -___divdc3 -___divdi3 -___divsc3 -___divtc3 -___enable_execute_stack -___ffsdi2 -___fixdfdi -___fixsfdi -___fixtfdi -___fixunsdfdi -___fixunsdfsi -___fixunssfdi -___fixunssfsi -___fixunstfdi -___floatdidf -___floatdisf -___floatditf -___floatundidf -___floatundisf -___floatunditf -___gcc_personality_v0 -___gcc_qadd -___gcc_qdiv -___gcc_qmul -___gcc_qsub -___lshrdi3 -___moddi3 -___muldc3 -___muldi3 -___mulsc3 -___multc3 -___mulvdi3 -___mulvsi3 -___negdi2 -___negvdi2 -___negvsi2 -___paritydi2 -___paritysi2 -___popcountdi2 -___popcountsi2 -___powidf2 -___powisf2 -___powitf2 -___register_frame -___register_frame_info -___register_frame_info_bases -___register_frame_info_table -___register_frame_info_table_bases -___register_frame_table -___subvdi3 -___subvsi3 -___trampoline_setup -___ucmpdi2 -___udivdi3 -___udivmoddi4 -___umoddi3 diff --git a/libgcc/config/t-darwin-noeh b/libgcc/config/t-darwin-noeh new file mode 100644 index 0000000..08d9c1a --- /dev/null +++ b/libgcc/config/t-darwin-noeh @@ -0,0 +1,4 @@ +# Most Darwin versions get their unwinder from libSystem. +# so remove the unwinder from the shared lib. +# We still need it in the _eh.a for Darwin8/9. +LIB2ADDEHSHARED = diff --git a/libgcc/config/t-slibgcc-darwin b/libgcc/config/t-slibgcc-darwin index bd1e963..1512267 100644 --- a/libgcc/config/t-slibgcc-darwin +++ b/libgcc/config/t-slibgcc-darwin @@ -1,43 +1,34 @@ # Build a shared libgcc library with the darwin linker. -SHLIB_SOVERSION = 1 -SHLIB_VERSTRING = -compatibility_version $(SHLIB_SOVERSION) -current_version $(SHLIB_SOVERSION).0 + +SHLIB_SOVERSION = 1.1 +SHLIB_SO_MINVERSION = 1 +SHLIB_VERSTRING = -compatibility_version $(SHLIB_SO_MINVERSION) -current_version $(SHLIB_SOVERSION) SHLIB_EXT = .dylib +SHLIB_LC = -lSystem + +# Shorthand expressions for the LINK below. SHLIB_INSTALL_NAME = @shlib_base_name@.$(SHLIB_SOVERSION)$(SHLIB_EXT) -SHLIB_SONAME = @shlib_base_name@$(SHLIB_EXT) -SHLIB_SOLINK = @shlib_base_name@.so SHLIB_MAP = @shlib_map_file@ -SHLIB_OBJS = @shlib_objs@ SHLIB_DIR = @multilib_dir@ -SHLIB_LC = -lc +SHLIB_SONAME = @shlib_base_name@$(SHLIB_EXT) -# Darwin only searches in /usr/lib for shared libraries, not in subdirectories, -# so the libgcc variants have different names not different locations. -# Note that this version is used for the loader, not the linker; the linker -# uses the stub versions named by the versioned members of $(INSTALL_FILES). +# Darwin only searches in shlib_slibdir for shared libraries, not in +# subdirectories. The link builds one architecture slice in its designated +# subdir. The code under MULTIBUILDTOP combines these into a single FAT +# library, that is what we eventually install. SHLIB_LINK = $(CC) $(LIBGCC2_CFLAGS) $(LDFLAGS) -dynamiclib -nodefaultlibs \ -install_name @shlib_slibdir@/$(SHLIB_INSTALL_NAME) \ -single_module -o $(SHLIB_DIR)/$(SHLIB_SONAME) \ -Wl,-exported_symbols_list,$(SHLIB_MAP) \ $(SHLIB_VERSTRING) \ - @multilib_flags@ $(SHLIB_OBJS) $(SHLIB_LC) + @multilib_flags@ @shlib_objs@ $(SHLIB_LC) SHLIB_MKMAP = $(srcdir)/mkmap-flat.awk SHLIB_MKMAP_OPTS = -v leading_underscore=1 -SHLIB_VERPFX = $(srcdir)/config/$(cpu_type)/libgcc-darwin - -# we're only going to build the stubs if the target slib is /usr/lib -# there is no other case in which they're useful in a live system. -ifeq (/usr/lib,$(shlib_slibdir)) -LGCC_STUBS = libgcc_s.10.4.dylib libgcc_s.10.5.dylib -else -LGCC_STUBS = -endif LGCC_FILES = libgcc_s.$(SHLIB_SOVERSION)$(SHLIB_EXT) -LGCC_FILES += $(LGCC_STUBS) -LEXT_STUBS = libgcc_ext.10.4$(SHLIB_EXT) libgcc_ext.10.5$(SHLIB_EXT) -LGCC_FILES += $(LEXT_STUBS) + INSTALL_FILES=$(LGCC_FILES) # we do our own thing @@ -51,33 +42,6 @@ all: $(INSTALL_FILES) install-leaf: install-darwin-libgcc-stubs endif -# In order to support -mmacosx-version-min, you need to have multiple -# different libgcc_s libraries that actually get linked against, one for -# each system version supported. They are 'stub' libraries that -# contain no code, just a list of exported symbols. -# The actual use of the libraries is controlled by REAL_LIBGCC_SPEC. -# -# This assumes each multilib corresponds to a different architecture. -libgcc_s.%.dylib : all-multi $(SHLIB_VERPFX).%.ver libgcc_s$(SHLIB_EXT) - MLIBS=`$(CC) --print-multi-lib | sed -e 's/;.*$$//'` ; \ - for mlib in $$MLIBS ; do \ - $(STRIP) -o $(@)_T$${mlib} \ - -s $(SHLIB_VERPFX).$(*).ver -c -u \ - ../$${mlib}/libgcc/$${mlib}/libgcc_s$(SHLIB_EXT) || exit 1 ; \ - done - $(LIPO) -output $@ -create $(@)_T* - rm $(@)_T* - -libgcc_ext.%.dylib : all-multi $(SHLIB_VERPFX).%.ver libgcc_s$(SHLIB_EXT) - MLIBS=`$(CC) --print-multi-lib | sed -e 's/;.*$$//'` ; \ - for mlib in $$MLIBS ; do \ - $(STRIP) -o $(@)_T$${mlib} \ - -R $(SHLIB_VERPFX).$(*).ver -c -urx \ - ../$${mlib}/libgcc/$${mlib}/libgcc_s$(SHLIB_EXT) || exit 1 ; \ - done - $(LIPO) -output $@ -create $(@)_T* - rm $(@)_T* - libgcc_s.$(SHLIB_SOVERSION)$(SHLIB_EXT): all-multi libgcc_s$(SHLIB_EXT) MLIBS=`$(CC) --print-multi-lib | sed -e 's/;.*$$//'` ; \ for mlib in $$MLIBS ; do \ @@ -88,6 +52,8 @@ libgcc_s.$(SHLIB_SOVERSION)$(SHLIB_EXT): all-multi libgcc_s$(SHLIB_EXT) -create libgcc_s.$(SHLIB_SOVERSION)$(SHLIB_EXT)_T* rm libgcc_s.$(SHLIB_SOVERSION)$(SHLIB_EXT)_T* +# Install the shared library. + install-darwin-libgcc-stubs : $(mkinstalldirs) $(DESTDIR)$(slibdir) for d in $(INSTALL_FILES) ; do \ @@ -96,10 +62,10 @@ install-darwin-libgcc-stubs : else -# Do not install shared libraries for any other multilibs. Unless -# we're putting them in the gcc directory during a build, for -# compatibility with the pre-top-level layout. In that case we -# need symlinks. +# Do not install shared libraries for any other multilibs. Unless we are +# putting them in the gcc directory during a build, for compatibility with +# the pre-top-level layout. In that case we provide symlinks to the FAT lib +# from the sub-directories. ifeq ($(enable_shared),yes) all: install-darwin-libgcc-links |