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