190075Sobrien# Build a shared libgcc library for ELF with symbol versioning 290075Sobrien# with the GNU linker. 390075Sobrien 490075SobrienSHLIB_EXT = .so 596263SobrienSHLIB_SOLINK = @shlib_base_name@.so 6132718SkanSHLIB_SOVERSION = 1 7169689SkanSHLIB_SONAME = @shlib_base_name@.so.$(SHLIB_SOVERSION) 890075SobrienSHLIB_MAP = @shlib_map_file@ 990075SobrienSHLIB_OBJS = @shlib_objs@ 10169689SkanSHLIB_DIR = @multilib_dir@ 1196263SobrienSHLIB_SLIBDIR_QUAL = @shlib_slibdir_qual@ 1296263SobrienSHLIB_LC = -lc 1390075Sobrien 1490075SobrienSHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \ 1590075Sobrien -Wl,--soname=$(SHLIB_SONAME) \ 1690075Sobrien -Wl,--version-script=$(SHLIB_MAP) \ 17169689Skan -o $(SHLIB_DIR)/$(SHLIB_SONAME).tmp @multilib_flags@ \ 18169689Skan $(SHLIB_OBJS) $(SHLIB_LC) && \ 19169689Skan rm -f $(SHLIB_DIR)/$(SHLIB_SOLINK) && \ 20169689Skan if [ -f $(SHLIB_DIR)/$(SHLIB_SONAME) ]; then \ 21169689Skan mv -f $(SHLIB_DIR)/$(SHLIB_SONAME) \ 22169689Skan $(SHLIB_DIR)/$(SHLIB_SONAME).backup; \ 23146895Skan else true; fi && \ 24169689Skan mv $(SHLIB_DIR)/$(SHLIB_SONAME).tmp $(SHLIB_DIR)/$(SHLIB_SONAME) && \ 25169689Skan $(LN_S) $(SHLIB_SONAME) $(SHLIB_DIR)/$(SHLIB_SOLINK) 2690075Sobrien# $(slibdir) double quoted to protect it from expansion while building 2790075Sobrien# libgcc.mk. We want this delayed until actual install time. 2896263SobrienSHLIB_INSTALL = \ 29169689Skan $$(mkinstalldirs) $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL); \ 30169689Skan $(INSTALL_DATA) $(SHLIB_DIR)/$(SHLIB_SONAME) \ 31110611Skan $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SONAME); \ 32110611Skan rm -f $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK); \ 3396263Sobrien $(LN_S) $(SHLIB_SONAME) \ 34110611Skan $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK) 3590075SobrienSHLIB_MKMAP = $(srcdir)/mkmap-symver.awk 3690075SobrienSHLIB_MAPFILES = $(srcdir)/libgcc-std.ver 37