[dpdk-dev] mk: fix ABI versioning compile error for combined shared library
Commit Message
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@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
@@ -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
@@ -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
new file mode 100644
@@ -0,0 +1,12 @@
+DPDK_2.0 {
+
+};
+
+DPDK_2.1 {
+
+} DPDK_2.0;
+
+DPDK_2.2 {
+
+} DPDK_2.1;
+
@@ -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:
@@ -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