[dpdk-dev] [PATCH] drivers/net: only compile PFE and ENETC when DPAA was selected

Thierry Herbelot thierry.herbelot at 6wind.com
Wed Oct 30 11:11:16 CET 2019


On 10/30/19 6:46 AM, Gagandeep Singh wrote:
> Hi Thierry,
> 
>> -----Original Message-----
>> From: Thierry Herbelot <thierry.herbelot at 6wind.com>
>> Sent: Tuesday, October 29, 2019 6:32 PM
>> To: dev at dpdk.org
>> Cc: Thomas Monjalon <thomas at monjalon.net>; Gagandeep Singh
>> <G.Singh at 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.singh at nxp.com>
>>
>> Signed-off-by: Thierry Herbelot <thierry.herbelot at 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


More information about the dev mailing list