From: Iain Sandoe Date: Thu, 22 Dec 2022 17:32:06 +0000 (+0000) Subject: libgcc, Darwin: No early install for the compatibility libgcc_s.1.dylib. X-Git-Tag: basepoints/gcc-14~2324 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=163f0f2267370575a9950e7e30a2c9cd72f559f0;p=thirdparty%2Fgcc.git 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. --- 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