153 lines
4.9 KiB
Diff
153 lines
4.9 KiB
Diff
|
commit f85ab16a916be178a4cb61575f414c43fc98313d
|
||
|
Author: Panu Matilainen <pmatilai@redhat.com>
|
||
|
Date: Tue Dec 8 13:42:26 2015 +0200
|
||
|
|
||
|
mk: fix external shared library dependencies of libraries
|
||
|
|
||
|
Similar to commit 5f9115e58cc6f304ff4ade694cf5823d32887d1a etc, but
|
||
|
for libraries. Clean up librte_vhost CFLAGS/LDFLAGS/LDLIBS confusion
|
||
|
while at it.
|
||
|
|
||
|
Requiring applications to know about library internal details like
|
||
|
dependencies to external helper libraries is a limitation of
|
||
|
static linkage, shared libraries should always know their own
|
||
|
dependencies for sane operation.
|
||
|
|
||
|
Linking with the combined library (whether shared or not) still
|
||
|
requires knowing the internal dependencies, and intra-dpdk
|
||
|
dependencies are also not currently recorded.
|
||
|
|
||
|
Signed-off-by: Panu Matilainen <pmatilai@redhat.com>
|
||
|
|
||
|
diff --git a/app/test/Makefile b/app/test/Makefile
|
||
|
index ec33e1a..abb0545 100644
|
||
|
--- a/app/test/Makefile
|
||
|
+++ b/app/test/Makefile
|
||
|
@@ -182,6 +182,8 @@ endif
|
||
|
endif
|
||
|
endif
|
||
|
|
||
|
+LDLIBS += -lm
|
||
|
+
|
||
|
include $(RTE_SDK)/mk/rte.app.mk
|
||
|
|
||
|
endif
|
||
|
diff --git a/lib/librte_eal/bsdapp/eal/Makefile b/lib/librte_eal/bsdapp/eal/Makefile
|
||
|
index 65b293f..b7b6016 100644
|
||
|
--- a/lib/librte_eal/bsdapp/eal/Makefile
|
||
|
+++ b/lib/librte_eal/bsdapp/eal/Makefile
|
||
|
@@ -42,6 +42,9 @@ CFLAGS += -I$(RTE_SDK)/lib/librte_ring
|
||
|
CFLAGS += -I$(RTE_SDK)/lib/librte_mempool
|
||
|
CFLAGS += $(WERROR_FLAGS) -O3
|
||
|
|
||
|
+LDLIBS += -lpthread
|
||
|
+LDLIBS += -ldl
|
||
|
+
|
||
|
EXPORT_MAP := rte_eal_version.map
|
||
|
|
||
|
LIBABIVER := 2
|
||
|
diff --git a/lib/librte_eal/linuxapp/eal/Makefile b/lib/librte_eal/linuxapp/eal/Makefile
|
||
|
index 26eced5..0efb9e4 100644
|
||
|
--- a/lib/librte_eal/linuxapp/eal/Makefile
|
||
|
+++ b/lib/librte_eal/linuxapp/eal/Makefile
|
||
|
@@ -47,6 +47,9 @@ CFLAGS += -I$(RTE_SDK)/lib/librte_mempool
|
||
|
CFLAGS += -I$(RTE_SDK)/lib/librte_ivshmem
|
||
|
CFLAGS += $(WERROR_FLAGS) -O3
|
||
|
|
||
|
+LDLIBS += -lpthread
|
||
|
+LDLIBS += -ldl
|
||
|
+
|
||
|
# specific to linuxapp exec-env
|
||
|
SRCS-$(CONFIG_RTE_LIBRTE_EAL_LINUXAPP) := eal.c
|
||
|
SRCS-$(CONFIG_RTE_LIBRTE_EAL_LINUXAPP) += eal_hugepage_info.c
|
||
|
diff --git a/lib/librte_sched/Makefile b/lib/librte_sched/Makefile
|
||
|
index b1cb285..4d631f6 100644
|
||
|
--- a/lib/librte_sched/Makefile
|
||
|
+++ b/lib/librte_sched/Makefile
|
||
|
@@ -41,6 +41,9 @@ CFLAGS += $(WERROR_FLAGS)
|
||
|
|
||
|
CFLAGS_rte_red.o := -D_GNU_SOURCE
|
||
|
|
||
|
+LDLIBS += -lm
|
||
|
+LDLIBS += -lrt
|
||
|
+
|
||
|
EXPORT_MAP := rte_sched_version.map
|
||
|
|
||
|
LIBABIVER := 1
|
||
|
diff --git a/lib/librte_vhost/Makefile b/lib/librte_vhost/Makefile
|
||
|
index 6681f22..4aecc69 100644
|
||
|
--- a/lib/librte_vhost/Makefile
|
||
|
+++ b/lib/librte_vhost/Makefile
|
||
|
@@ -42,12 +42,12 @@ CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3 -D_FILE_OFFSET_BITS=64
|
||
|
ifeq ($(CONFIG_RTE_LIBRTE_VHOST_USER),y)
|
||
|
CFLAGS += -I vhost_user
|
||
|
else
|
||
|
-CFLAGS += -I vhost_cuse -lfuse
|
||
|
-LDFLAGS += -lfuse
|
||
|
+CFLAGS += -I vhost_cuse
|
||
|
+LDLIBS += -lfuse
|
||
|
endif
|
||
|
|
||
|
ifeq ($(CONFIG_RTE_LIBRTE_VHOST_NUMA),y)
|
||
|
-LDFLAGS += -lnuma
|
||
|
+LDLIBS += -lnuma
|
||
|
endif
|
||
|
|
||
|
# all source are stored in SRCS-y
|
||
|
diff --git a/mk/exec-env/linuxapp/rte.vars.mk b/mk/exec-env/linuxapp/rte.vars.mk
|
||
|
index 5fd7d85..d51bd17 100644
|
||
|
--- a/mk/exec-env/linuxapp/rte.vars.mk
|
||
|
+++ b/mk/exec-env/linuxapp/rte.vars.mk
|
||
|
@@ -48,7 +48,7 @@ endif
|
||
|
# Workaround lack of DT_NEEDED entry
|
||
|
EXECENV_LDFLAGS = --no-as-needed
|
||
|
|
||
|
-EXECENV_LDLIBS = -lrt -lm
|
||
|
+EXECENV_LDLIBS =
|
||
|
EXECENV_ASFLAGS =
|
||
|
|
||
|
ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y)
|
||
|
diff --git a/mk/rte.app.mk b/mk/rte.app.mk
|
||
|
index 8ecab41..4ecaa6c 100644
|
||
|
--- a/mk/rte.app.mk
|
||
|
+++ b/mk/rte.app.mk
|
||
|
@@ -81,23 +81,11 @@ _LDLIBS-$(CONFIG_RTE_LIBRTE_LPM) += -lrte_lpm
|
||
|
_LDLIBS-$(CONFIG_RTE_LIBRTE_POWER) += -lrte_power
|
||
|
_LDLIBS-$(CONFIG_RTE_LIBRTE_ACL) += -lrte_acl
|
||
|
_LDLIBS-$(CONFIG_RTE_LIBRTE_METER) += -lrte_meter
|
||
|
-
|
||
|
_LDLIBS-$(CONFIG_RTE_LIBRTE_SCHED) += -lrte_sched
|
||
|
-_LDLIBS-$(CONFIG_RTE_LIBRTE_SCHED) += -lm
|
||
|
-_LDLIBS-$(CONFIG_RTE_LIBRTE_SCHED) += -lrt
|
||
|
-
|
||
|
_LDLIBS-$(CONFIG_RTE_LIBRTE_VHOST) += -lrte_vhost
|
||
|
|
||
|
endif # ! CONFIG_RTE_BUILD_COMBINE_LIBS
|
||
|
|
||
|
-ifeq ($(CONFIG_RTE_LIBRTE_VHOST_NUMA),y)
|
||
|
-_LDLIBS-$(CONFIG_RTE_LIBRTE_VHOST) += -lnuma
|
||
|
-endif
|
||
|
-
|
||
|
-ifeq ($(CONFIG_RTE_LIBRTE_VHOST_USER),n)
|
||
|
-_LDLIBS-$(CONFIG_RTE_LIBRTE_VHOST) += -lfuse
|
||
|
-endif
|
||
|
-
|
||
|
# The static libraries do not know their dependencies.
|
||
|
# The combined library fails also to store this information.
|
||
|
# So linking with static or combined library requires explicit dependencies.
|
||
|
@@ -111,6 +99,14 @@ _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_XENVIRT) += -lxenstore
|
||
|
_LDLIBS-$(CONFIG_RTE_LIBRTE_MPIPE_PMD) += -lgxio
|
||
|
# QAT PMD has a dependency on libcrypto (from openssl) for calculating HMAC precomputes
|
||
|
_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_QAT) += -lcrypto
|
||
|
+_LDLIBS-$(CONFIG_RTE_LIBRTE_SCHED) += -lm
|
||
|
+_LDLIBS-$(CONFIG_RTE_LIBRTE_SCHED) += -lrt
|
||
|
+ifeq ($(CONFIG_RTE_LIBRTE_VHOST_NUMA),y)
|
||
|
+_LDLIBS-$(CONFIG_RTE_LIBRTE_VHOST) += -lnuma
|
||
|
+endif
|
||
|
+ifeq ($(CONFIG_RTE_LIBRTE_VHOST_USER),n)
|
||
|
+_LDLIBS-$(CONFIG_RTE_LIBRTE_VHOST) += -lfuse
|
||
|
+endif
|
||
|
endif # CONFIG_RTE_BUILD_COMBINE_LIBS or not CONFIG_RTE_BUILD_SHARED_LIBS
|
||
|
|
||
|
_LDLIBS-y += --start-group
|