t-slibgcc-sld revision 1.6 1 1.1 mrg # Build a shared libgcc library for ELF with symbol versioning
2 1.1 mrg # with the Solaris linker.
3 1.1 mrg
4 1.1 mrg SHLIB_LDFLAGS = -Wl,-h,$(SHLIB_SONAME) -Wl,-z,text -Wl,-z,defs \
5 1.1 mrg -Wl,-M,$(SHLIB_MAP)
6 1.3 mrg
7 1.3 mrg ifeq ($(enable_shared),yes)
8 1.3 mrg
9 1.3 mrg # Linker mapfile to enforce direct binding to libgcc_s unwinder
10 1.3 mrg # (PR target/59788).
11 1.6 mrg # Emit v2 mapfile syntax if possible, otherwise ld -z guidance complains
12 1.6 mrg # every time the mapfile is used.
13 1.3 mrg libgcc-unwind.map: libgcc-std.ver
14 1.6 mrg ifeq ($(solaris_ld_v2_maps),yes)
15 1.6 mrg @(echo '$$mapfile_version 2'; \
16 1.6 mrg echo "SYMBOL_SCOPE {"; \
17 1.6 mrg for f in `grep _Unwind_ $< | sort`; do \
18 1.6 mrg echo " $$f { FLAGS = EXTERN DIRECT };"; \
19 1.6 mrg done; \
20 1.6 mrg echo "};" ) > $@
21 1.6 mrg else
22 1.3 mrg @(echo "{"; \
23 1.3 mrg for f in `grep _Unwind_ $< | sort`; do \
24 1.3 mrg echo " $$f = EXTERN DIRECT;"; \
25 1.3 mrg done; \
26 1.3 mrg echo "};" ) > $@
27 1.6 mrg endif
28 1.3 mrg
29 1.3 mrg # Copy libgcc-unwind.map to the place where gcc will look for it at build-time.
30 1.3 mrg install-libgcc-unwind-map-forbuild: libgcc-unwind.map
31 1.3 mrg dest=$(gcc_objdir)/tmp$$$$-$<; \
32 1.3 mrg cp $< $$dest; \
33 1.3 mrg chmod a+r $$dest; \
34 1.3 mrg sh $(srcdir)/../move-if-change $$dest $(gcc_objdir)/$<
35 1.3 mrg
36 1.3 mrg all: install-libgcc-unwind-map-forbuild
37 1.3 mrg
38 1.3 mrg install-libgcc-unwind-map: libgcc-unwind.map
39 1.3 mrg $(INSTALL_DATA) $< $(DESTDIR)$(slibdir)
40 1.3 mrg
41 1.3 mrg install: install-libgcc-unwind-map
42 1.3 mrg
43 1.3 mrg endif
44