On 10/30/19 6:46 AM, Gagandeep Singh wrote:
Hi Thierry,
-----Original Message-----
From: Thierry Herbelot <thierry.herbe...@6wind.com>
Sent: Tuesday, October 29, 2019 6:32 PM
To: dev@dpdk.org
Cc: Thomas Monjalon <tho...@monjalon.net>; Gagandeep Singh
<g.si...@nxp.com>
Subject: [PATCH] drivers/net: only compile PFE and ENETC when DPAA was
selected
PFE and ENETC depend on DPAA features.
Fixes: e56463ec47f0 ('net/enetc: enable dpaax library')
Fixes: 67fc3ff97c39 ('net/pfe: introduce basic functions')
Cc: Gagandeep Singh <g.si...@nxp.com>
Signed-off-by: Thierry Herbelot <thierry.herbe...@6wind.com>
---
drivers/net/Makefile | 4 ++++
mk/rte.app.mk | 4 ++++
2 files changed, 8 insertions(+)
diff --git a/drivers/net/Makefile b/drivers/net/Makefile
index cee30367a1c3..966133427276 100644
--- a/drivers/net/Makefile
+++ b/drivers/net/Makefile
@@ -25,7 +25,9 @@ DIRS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += dpaa2
endif
DIRS-$(CONFIG_RTE_LIBRTE_E1000_PMD) += e1000
DIRS-$(CONFIG_RTE_LIBRTE_ENA_PMD) += ena
+ifeq ($(CONFIG_RTE_LIBRTE_DPAA_BUS),y)
DIRS-$(CONFIG_RTE_LIBRTE_ENETC_PMD) += enetc
+endif
DIRS-$(CONFIG_RTE_LIBRTE_ENIC_PMD) += enic
DIRS-$(CONFIG_RTE_LIBRTE_PMD_FAILSAFE) += failsafe
DIRS-$(CONFIG_RTE_LIBRTE_FM10K_PMD) += fm10k
@@ -50,7 +52,9 @@ DIRS-$(CONFIG_RTE_LIBRTE_PMD_NULL) += null
DIRS-$(CONFIG_RTE_LIBRTE_OCTEONTX_PMD) += octeontx
DIRS-$(CONFIG_RTE_LIBRTE_OCTEONTX2_PMD) += octeontx2
DIRS-$(CONFIG_RTE_LIBRTE_PMD_PCAP) += pcap
+ifeq ($(CONFIG_RTE_LIBRTE_DPAA_BUS),y)
DIRS-$(CONFIG_RTE_LIBRTE_PFE_PMD) += pfe
+endif
DIRS-$(CONFIG_RTE_LIBRTE_QEDE_PMD) += qede
DIRS-$(CONFIG_RTE_LIBRTE_PMD_RING) += ring
DIRS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += sfc
diff --git a/mk/rte.app.mk b/mk/rte.app.mk
index 1f5c74841fb3..e440dffd7575 100644
--- a/mk/rte.app.mk
+++ b/mk/rte.app.mk
@@ -170,7 +170,9 @@ _LDLIBS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += -
lrte_pmd_dpaa2
endif
_LDLIBS-$(CONFIG_RTE_LIBRTE_E1000_PMD) += -lrte_pmd_e1000
_LDLIBS-$(CONFIG_RTE_LIBRTE_ENA_PMD) += -lrte_pmd_ena
+ifeq ($(CONFIG_RTE_LIBRTE_DPAA_BUS),y)
_LDLIBS-$(CONFIG_RTE_LIBRTE_ENETC_PMD) += -lrte_pmd_enetc
+endif
_LDLIBS-$(CONFIG_RTE_LIBRTE_ENIC_PMD) += -lrte_pmd_enic
_LDLIBS-$(CONFIG_RTE_LIBRTE_FM10K_PMD) += -lrte_pmd_fm10k
_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_FAILSAFE) += -lrte_pmd_failsafe
@@ -204,7 +206,9 @@ _LDLIBS-$(CONFIG_RTE_LIBRTE_NFP_PMD) += -
lrte_pmd_nfp
_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_NULL) += -lrte_pmd_null
_LDLIBS-$(CONFIG_RTE_LIBRTE_OCTEONTX2_PMD) += -lrte_pmd_octeontx2 -
lm
_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_PCAP) += -lrte_pmd_pcap -lpcap
+ifeq ($(CONFIG_RTE_LIBRTE_DPAA_BUS),y)
_LDLIBS-$(CONFIG_RTE_LIBRTE_PFE_PMD) += -lrte_pmd_pfe
+endif
_LDLIBS-$(CONFIG_RTE_LIBRTE_QEDE_PMD) += -lrte_pmd_qede
_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_RING) += -lrte_pmd_ring
ifeq ($(CONFIG_RTE_LIBRTE_SCHED),y)
--
2.20.1
I didn't see any compilation issue on '19.11-rc1' tag and also these both PMDs
are independent of DPAA_BUS, so we cannot accept these changes, can you please
share your exact steps of compilation?
Hello, Gagan
Indeed, the compilation procedure was not described.
These are the reproduction steps (on an Intel machine):
git clone git://dpdk.org/dpdk
cd dpdk
make config T=x86_64-native-linux-gcc
cd build
vi .config
=> disable RTE_LIBRTE_DPAA_BUS and RTE_LIBRTE_FSLMC_BUS
make
...
== Build app/test
LD test
/build/dpdk/build/lib/librte_pmd_caam_jr.a(caam_jr.o): In function
`cryptodev_caam_jr_probe':
caam_jr.c:(.text+0x123a): undefined reference to `of_find_compatible_node'
caam_jr.c:(.text+0x125b): undefined reference to `of_find_compatible_node'
caam_jr.c:(.text+0x1276): undefined reference to `of_get_property'
/build/dpdk/build/lib/librte_pmd_caam_jr.a(caam_jr.o): In function
`caam_jr_dequeue_burst':
caam_jr.c:(.text+0x1dfb): undefined reference to `dpaax_iova_table_p'
/build/dpdk/build/lib/librte_pmd_enetc.a(enetc_ethdev.o): In function
`enetc_dev_uninit':
enetc_ethdev.c:(.text+0x679): undefined reference to
`dpaax_iova_table_depopulate'
/build/dpdk/build/lib/librte_pmd_enetc.a(enetc_ethdev.o): In function
`enetc_dev_init':
enetc_ethdev.c:(.text+0xda1): undefined reference to
`dpaax_iova_table_populate'
/build/dpdk/build/lib/librte_pmd_enetc.a(enetc_ethdev.o): In function
`enetc_pci_remove':
enetc_ethdev.c:(.text+0xfe9): undefined reference to
`dpaax_iova_table_depopulate'
collect2: error: ld returned 1 exit status
Regards
Thierry
Thanks,
Gagan
--
Thierry Herbelot
6WIND
Senior Software Engineer