[dpdk-dev] [PATCH 04/15] pcap: Convert to use of PMD_REGISTER_DRIVER and fix linking

Neil Horman nhorman at tuxdriver.com
Tue Apr 15 20:05:58 CEST 2014


convert the pcap driver to use the PMD_REGISTER_DRIVER macro and fix up the
Makefile so that its linkage is only done if we are building static libraries.
This means that the test applications now have no reference to the pcap library
when building DSO's and must specify its use on the command line with the -d
option.  Static linking will still initalize the driver automatically.

Signed-off-by: Neil Horman <nhorman at tuxdriver.com>
---
 lib/librte_pmd_pcap/rte_eth_pcap.c | 8 ++------
 mk/rte.app.mk                      | 2 ++
 2 files changed, 4 insertions(+), 6 deletions(-)

diff --git a/lib/librte_pmd_pcap/rte_eth_pcap.c b/lib/librte_pmd_pcap/rte_eth_pcap.c
index 680dfdc..4167a26 100644
--- a/lib/librte_pmd_pcap/rte_eth_pcap.c
+++ b/lib/librte_pmd_pcap/rte_eth_pcap.c
@@ -41,6 +41,7 @@
 #include <rte_cycles.h>
 #include <rte_kvargs.h>
 #include <rte_vdev.h>
+#include <rte_pmd.h>
 
 #include <net/if.h>
 
@@ -772,9 +773,4 @@ static struct rte_vdev_driver pmd_pcap_drv = {
 	.init = rte_pmd_pcap_devinit,
 };
 
-__attribute__((constructor))
-static void
-rte_pmd_pcap_init(void)
-{
-	rte_eal_vdev_driver_register(&pmd_pcap_drv);
-}
+PMD_REGISTER_DRIVER(pmd_pcap_drv, PMD_VDEV);
diff --git a/mk/rte.app.mk b/mk/rte.app.mk
index 5a0ef0c..e6d09b8 100644
--- a/mk/rte.app.mk
+++ b/mk/rte.app.mk
@@ -172,9 +172,11 @@ ifeq ($(CONFIG_RTE_LIBRTE_CMDLINE),y)
 LDLIBS += -lrte_cmdline
 endif
 
+ifeq ($(RTE_BUILD_SHARED_LIB),n)
 ifeq ($(CONFIG_RTE_LIBRTE_PMD_PCAP),y)
 LDLIBS += -lrte_pmd_pcap -lpcap
 endif
+endif
 
 LDLIBS += $(EXECENV_LDLIBS)
 
-- 
1.8.3.1



More information about the dev mailing list