From 5bd1e853b30e783b8a8bc360d0dc2196af801529 Mon Sep 17 00:00:00 2001 From: Iain Sandoe Date: Thu, 22 Dec 2022 17:32:06 +0000 Subject: [PATCH] libgcc, Darwin: No early install for the compatibility libgcc_s.1.dylib. On Darwin, GCC now uses a libgcc_s.1.1 for builtins and forwards the system unwinder. We do, however, build a backwards compatibility libgcc_s.1.dylib. However, this is not needed by GCC and can cause incorrect operation when DYLD_LIBRARY_PATH is in use. Since we do not need or use it during the build, the solution is to skip the installation into the $build/gcc directory. Signed-off-by: Iain Sandoe libgcc/ChangeLog: * config/t-slibgcc-darwin (install-darwin-libgcc-stubs): Skip the install of libgcc_s.1.dylib when the installation is into the build gcc directory. (cherry picked from commit 163f0f2267370575a9950e7e30a2c9cd72f559f0) --- libgcc/config/t-slibgcc-darwin | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/libgcc/config/t-slibgcc-darwin b/libgcc/config/t-slibgcc-darwin index a8f69666a829..cb0cbbdb1c57 100644 --- a/libgcc/config/t-slibgcc-darwin +++ b/libgcc/config/t-slibgcc-darwin @@ -72,14 +72,15 @@ all: libgcc_ehs$(SHLIB_EXT) LGCC_FILES += libgcc_ehs.$(SHLIB_SOVERSION)$(SHLIB_EXT) endif - -# Provide libgcc_s.1 for backwards compatibility. -LGCC_FILES += libgcc_s.1.dylib - endif INSTALL_FILES=$(LGCC_FILES) +ifeq ($(BUILD_LIBGCCS1),YES) +# Provide libgcc_s.1 for backwards compatibility. +INSTALL_FILES += libgcc_s.1.dylib +endif + # For the toplevel multilib, build FAT dylibs including all the multilibs. ifeq ($(MULTIBUILDTOP),) @@ -158,9 +159,15 @@ endif install-darwin-libgcc-stubs : $(mkinstalldirs) $(DESTDIR)$(slibdir) - for d in $(INSTALL_FILES) ; do \ - $(INSTALL_DATA) $$d $(DESTDIR)$(slibdir)/$$d || exit 1 ; \ - done + if test x$(slibdir) = x; then \ + for d in $(LGCC_FILES) ; do \ + $(INSTALL_DATA) $$d $(DESTDIR)$(slibdir)/$$d || exit 1 ; \ + done; \ + else \ + for d in $(INSTALL_FILES) ; do \ + $(INSTALL_DATA) $$d $(DESTDIR)$(slibdir)/$$d || exit 1 ; \ + done; \ + fi else -- 2.47.2