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