xref: /netbsd-src/external/gpl3/gcc.old/dist/libgcc/config/t-slibgcc-sld (revision 796c32c94f6e154afc9de0f63da35c91bb739b45)
1# Build a shared libgcc library for ELF with symbol versioning
2# with the Solaris linker.
3
4SHLIB_LDFLAGS = -Wl,-h,$(SHLIB_SONAME) -Wl,-z,text -Wl,-z,defs \
5	-Wl,-M,$(SHLIB_MAP)
6
7ifeq ($(enable_shared),yes)
8
9# Linker mapfile to enforce direct binding to libgcc_s unwinder
10# (PR target/59788).
11libgcc-unwind.map: libgcc-std.ver
12	@(echo "{";				\
13	for f in `grep _Unwind_ $< | sort`; do	\
14	  echo "	$$f = EXTERN DIRECT;";	\
15	done;					\
16	echo "};" ) > $@
17
18# Copy libgcc-unwind.map to the place where gcc will look for it at build-time.
19install-libgcc-unwind-map-forbuild: libgcc-unwind.map
20	dest=$(gcc_objdir)/tmp$$$$-$<; \
21	cp $< $$dest; \
22	chmod a+r $$dest; \
23	sh $(srcdir)/../move-if-change $$dest $(gcc_objdir)/$<
24
25all: install-libgcc-unwind-map-forbuild
26
27install-libgcc-unwind-map: libgcc-unwind.map
28	$(INSTALL_DATA) $< $(DESTDIR)$(slibdir)
29
30install: install-libgcc-unwind-map
31
32endif
33