libtool has an argument for .syms file, which is -export-symbols. There's no argument `-export-syms', and it looks like at least on linux, -export-syms is just ignored. Use the correct argument, -export-symbols, to actually get the right export list.
But it turns out that vscclient binary, which also uses qemu privitives for sockets, mutexes and some other stuff, but only linked with libcacard, does not link after hiding extra symbols previously exported by libcacard. So while at it, link it with libqemuutil.a and libqemustub.a. This makes the binary as twice as large, but allows to have cleaner export table for libcacard.so. Signed-off-by: Michael Tokarev <m...@tls.msk.ru> --- libcacard/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libcacard/Makefile b/libcacard/Makefile index 6b06448..bb00c94 100644 --- a/libcacard/Makefile +++ b/libcacard/Makefile @@ -17,14 +17,14 @@ $(libcacard-obj-y): | $(libcacard-lobj-y) all: libcacard.la libcacard.pc -vscclient$(EXESUF): libcacard/vscclient.o libcacard.la +vscclient$(EXESUF): libcacard/vscclient.o libcacard.la libqemuutil.a libqemustub.a $(call LINK,$^) ######################################################################### # Rules for building libcacard standalone library libcacard.la: LDFLAGS += -rpath $(libdir) -no-undefined \ - -export-syms $(SRC_PATH)/libcacard/libcacard.syms + -export-symbols $(SRC_PATH)/libcacard/libcacard.syms libcacard.la: LIBS = $(libcacard_libs) libcacard.la: $(libcacard-lobj-y) $(call LINK,$^) -- 1.7.10.4