110d565efSmrg# Build a shared libgcc library for ELF with symbol versioning 210d565efSmrg# with the Solaris linker. 310d565efSmrg 410d565efSmrgSHLIB_LDFLAGS = -Wl,-h,$(SHLIB_SONAME) -Wl,-z,text -Wl,-z,defs \ 510d565efSmrg -Wl,-M,$(SHLIB_MAP) 610d565efSmrg 710d565efSmrgifeq ($(enable_shared),yes) 810d565efSmrg 910d565efSmrg# Linker mapfile to enforce direct binding to libgcc_s unwinder 1010d565efSmrg# (PR target/59788). 11*0fc04c29Smrg# Emit v2 mapfile syntax if possible, otherwise ld -z guidance complains 12*0fc04c29Smrg# every time the mapfile is used. 1310d565efSmrglibgcc-unwind.map: libgcc-std.ver 14*0fc04c29Smrgifeq ($(solaris_ld_v2_maps),yes) 15*0fc04c29Smrg @(echo '$$mapfile_version 2'; \ 16*0fc04c29Smrg echo "SYMBOL_SCOPE {"; \ 17*0fc04c29Smrg for f in `grep _Unwind_ $< | sort`; do \ 18*0fc04c29Smrg echo " $$f { FLAGS = EXTERN DIRECT };"; \ 19*0fc04c29Smrg done; \ 20*0fc04c29Smrg echo "};" ) > $@ 21*0fc04c29Smrgelse 2210d565efSmrg @(echo "{"; \ 2310d565efSmrg for f in `grep _Unwind_ $< | sort`; do \ 2410d565efSmrg echo " $$f = EXTERN DIRECT;"; \ 2510d565efSmrg done; \ 2610d565efSmrg echo "};" ) > $@ 27*0fc04c29Smrgendif 2810d565efSmrg 2910d565efSmrg# Copy libgcc-unwind.map to the place where gcc will look for it at build-time. 3010d565efSmrginstall-libgcc-unwind-map-forbuild: libgcc-unwind.map 3110d565efSmrg dest=$(gcc_objdir)/tmp$$$$-$<; \ 3210d565efSmrg cp $< $$dest; \ 3310d565efSmrg chmod a+r $$dest; \ 3410d565efSmrg sh $(srcdir)/../move-if-change $$dest $(gcc_objdir)/$< 3510d565efSmrg 3610d565efSmrgall: install-libgcc-unwind-map-forbuild 3710d565efSmrg 3810d565efSmrginstall-libgcc-unwind-map: libgcc-unwind.map 3910d565efSmrg $(INSTALL_DATA) $< $(DESTDIR)$(slibdir) 4010d565efSmrg 4110d565efSmrginstall: install-libgcc-unwind-map 4210d565efSmrg 4310d565efSmrgendif 44