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> --- drivers/net/Makefile | 3 +++ lib/Makefile | 3 +++ lib/libdpdk.map | 12 ++++++++++++ mk/rte.sdkbuild.mk | 2 +- mk/rte.sharelib.mk | 1 + 5 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 lib/libdpdk.map diff --git a/drivers/net/Makefile b/drivers/net/Makefile index 6da1ce2..d30018c 100644 --- a/drivers/net/Makefile +++ b/drivers/net/Makefile @@ -50,5 +50,8 @@ DIRS-$(CONFIG_RTE_LIBRTE_VIRTIO_PMD) += virtio DIRS-$(CONFIG_RTE_LIBRTE_VMXNET3_PMD) += vmxnet3 DIRS-$(CONFIG_RTE_LIBRTE_PMD_XENVIRT) += xenvirt +ifeq ($(COMBINED_BUILD),1) include $(RTE_SDK)/mk/rte.sharelib.mk +endif + include $(RTE_SDK)/mk/rte.subdir.mk diff --git a/lib/Makefile b/lib/Makefile index 9727b83..33d76a6 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -62,5 +62,8 @@ DIRS-$(CONFIG_RTE_LIBRTE_KNI) += librte_kni DIRS-$(CONFIG_RTE_LIBRTE_IVSHMEM) += librte_ivshmem endif +ifeq ($(COMBINED_BUILD),1) include $(RTE_SDK)/mk/rte.sharelib.mk +endif + include $(RTE_SDK)/mk/rte.subdir.mk 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.sdkbuild.mk b/mk/rte.sdkbuild.mk index 38ec7bd..d4e3abf 100644 --- a/mk/rte.sdkbuild.mk +++ b/mk/rte.sdkbuild.mk @@ -94,7 +94,7 @@ $(ROOTDIRS-y): @echo "== Build $@" $(Q)$(MAKE) S=$@ -f $(RTE_SRCDIR)/$@/Makefile -C $(BUILDDIR)/$@ all @if [ $@ = drivers -a $(CONFIG_RTE_BUILD_COMBINE_LIBS) = y ]; then \ - $(MAKE) -f $(RTE_SDK)/lib/Makefile sharelib; \ + COMBINED_BUILD=1 $(MAKE) -f $(RTE_SDK)/lib/Makefile sharelib; \ fi %_clean: diff --git a/mk/rte.sharelib.mk b/mk/rte.sharelib.mk index 7bb7219..1f71fcb 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 +CPU_LDFLAGS += --version-script=$(SRCDIR)/lib/libdpdk.map endif .PHONY:sharelib -- 1.9.3