[dpdk-dev] [PATCH] mk: fix ABI versioning compile error for combined shared library
Ferruh Yigit
ferruh.yigit at intel.com
Mon Nov 2 00:17:22 CET 2015
Fixes following error:
LD libdpdk.so
/usr/bin/ld: /root/dpdk/build/lib/libdpdk.so: version node not found
for symbol <function>@DPDK_x.y
Defines version symbols in a fixed path libdpdk.map file and this
value hardcoded into makefile
Signed-off-by: Ferruh Yigit <ferruh.yigit at intel.com>
---
lib/libdpdk.map | 12 ++++++++++++
mk/rte.sharelib.mk | 5 +++--
2 files changed, 15 insertions(+), 2 deletions(-)
create mode 100644 lib/libdpdk.map
diff --git a/lib/libdpdk.map b/lib/libdpdk.map
new file mode 100644
index 0000000..3988a3f
--- /dev/null
+++ b/lib/libdpdk.map
@@ -0,0 +1,12 @@
+DPDK_2.0 {
+
+};
+
+DPDK_2.1 {
+
+} DPDK_2.0;
+
+DPDK_2.2 {
+
+} DPDK_2.1;
+
diff --git a/mk/rte.sharelib.mk b/mk/rte.sharelib.mk
index 7bb7219..e206ce1 100644
--- a/mk/rte.sharelib.mk
+++ b/mk/rte.sharelib.mk
@@ -40,6 +40,7 @@ LIB_ONE := lib$(RTE_LIBNAME).so
else
LIB_ONE := lib$(RTE_LIBNAME).a
endif
+SHARED_LDFLAGS += --version-script=./lib/libdpdk.map
endif
.PHONY:sharelib
@@ -50,10 +51,10 @@ OBJS = $(wildcard $(RTE_OUTPUT)/build/lib/*.o)
ifeq ($(LINK_USING_CC),1)
# Override the definition of LD here, since we're linking with CC
LD := $(CC) $(CPU_CFLAGS)
-O_TO_S = $(LD) $(call linkerprefix,$(CPU_LDFLAGS)) \
+O_TO_S = $(LD) $(call linkerprefix,$(SHARED_LDFLAGS)) \
-shared $(OBJS) -o $(RTE_OUTPUT)/lib/$(LIB_ONE)
else
-O_TO_S = $(LD) $(CPU_LDFLAGS) \
+O_TO_S = $(LD) $(SHARED_LDFLAGS) \
-shared $(OBJS) -o $(RTE_OUTPUT)/lib/$(LIB_ONE)
endif
--
1.9.3
More information about the dev
mailing list