From: Stephen Hemminger <stephen@networkplumber.org>
To: Pavan Nikhilesh Bhagavatula <pbhagavatula@marvell.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>,
Nithin Kumar Dabilpuram <ndabilpuram@marvell.com>,
Kiran Kumar Kokkilagadda <kirankumark@marvell.com>,
Sunil Kumar Kori <skori@marvell.com>,
Satha Koteswara Rao Kottidi <skoteshwar@marvell.com>,
Harman Kalra <hkalra@marvell.com>
Subject: Re: [EXTERNAL] [RFC] net/cnxk: only build if platform is specified
Date: Wed, 25 Feb 2026 09:43:38 -0800 [thread overview]
Message-ID: <20260225094338.5f0641a5@phoenix.local> (raw)
In-Reply-To: <PH0PR18MB4086434B58662DA7BF5F5F00DE75A@PH0PR18MB4086.namprd18.prod.outlook.com>
On Wed, 25 Feb 2026 08:01:19 +0000
Pavan Nikhilesh Bhagavatula <pbhagavatula@marvell.com> wrote:
> >The generic build was building for all SOC types and that
> >takes a long time (like 10 minutes). The driver should only be
> >built if soc_type is set to one of the know values.
> >
> >Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
> >---
> > drivers/net/cnxk/meson.build | 6 ++++--
> > 1 file changed, 4 insertions(+), 2 deletions(-)
> >
> >diff --git a/drivers/net/cnxk/meson.build b/drivers/net/cnxk/meson.build
> >index 53caa6c171..4a2f4e1a92 100644
> >--- a/drivers/net/cnxk/meson.build
> >+++ b/drivers/net/cnxk/meson.build
> >@@ -14,8 +14,10 @@ else
> > soc_type = platform
> > endif
> >
> >-if soc_type != 'cn9k' and soc_type != 'cn10k' and soc_type != 'cn20k'
> >- soc_type = 'all'
> >+if soc_type != 'cn9k' and soc_type != 'cn10k' and soc_type != 'cn20k' and soc_type != 'all'
> >+ build = false
> >+ reason = 'not supported on soc_type ' + soc_type
> >+ subdir_done()
> > endif
>
> Instead of disabling the build, we can just diable template functions when soc_type is 'all'
>
> diff --git a/drivers/event/cnxk/meson.build b/drivers/event/cnxk/meson.build
> index 24b48d045f..00295246b6 100644
> --- a/drivers/event/cnxk/meson.build
> +++ b/drivers/event/cnxk/meson.build
> @@ -36,6 +36,10 @@ if meson.version().version_compare('>=1.1.0')
> endif
> endif
>
> +if soc_type == 'all'
> + disable_template = true
> +endif
> +
> if soc_type == 'cn9k' or soc_type == 'all'
> sources += files(
> 'cn9k_eventdev.c',
> diff --git a/drivers/net/cnxk/meson.build b/drivers/net/cnxk/meson.build
> index 53caa6c171..9382491ae4 100644
> --- a/drivers/net/cnxk/meson.build
> +++ b/drivers/net/cnxk/meson.build
> @@ -52,6 +52,11 @@ if meson.version().version_compare('>=1.1.0')
> endif
> endif
>
> +if soc_type == 'all'
> + disable_template = true
> +endif
> +
> +
> if soc_type == 'cn9k' or soc_type == 'all'
> # CN9K
> sources += files(
>
>
> Thanks,
> Pavan.
>
> >
> > sources = files(
> >--
> >2.51.0
>
>
Good idea, but fails miserably.
n$ git diff
diff --git a/drivers/event/cnxk/meson.build b/drivers/event/cnxk/meson.build
index 24b48d045f..93d7bfdc31 100644
--- a/drivers/event/cnxk/meson.build
+++ b/drivers/event/cnxk/meson.build
@@ -36,6 +36,10 @@ if meson.version().version_compare('>=1.1.0')
endif
endif
+if soc_type == 'all'
+ disable_template = true
+endif
+
if soc_type == 'cn9k' or soc_type == 'all'
sources += files(
'cn9k_eventdev.c',
diff --git a/drivers/net/cnxk/meson.build b/drivers/net/cnxk/meson.build
index 53caa6c171..d4d1dddceb 100644
--- a/drivers/net/cnxk/meson.build
+++ b/drivers/net/cnxk/meson.build
@@ -52,6 +52,10 @@ if meson.version().version_compare('>=1.1.0')
endif
endif
+if soc_type == 'all'
+ disable_template = true
+endif
+
if soc_type == 'cn9k' or soc_type == 'all'
# CN9K
sources += files(
$ time ninja -C build
ninja: Entering directory `build'
[1480/3492] Linking target drivers/librte_net_cnxk.so.26.1
FAILED: drivers/librte_net_cnxk.so.26.1
cc -o drivers/librte_net_cnxk.so.26.1 drivers/librte_net_cnxk.so.26.1.p/meson-generated_.._rte_net_cnxk.pmd.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cnxk_ethdev.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cnxk_ethdev_cman.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cnxk_ethdev_devargs.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cnxk_ethdev_mcs.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cnxk_ethdev_mtr.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cnxk_ethdev_ops.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cnxk_ethdev_sec.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cnxk_ethdev_telemetry.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cnxk_ethdev_sec_telemetry.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cnxk_eswitch.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cnxk_eswitch_devargs.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cnxk_eswitch_flow.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cnxk_eswitch_rxtx.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cnxk_flow_common.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cnxk_link.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cnxk_lookup.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cnxk_ptp.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cnxk_flow.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cnxk_rep.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cnxk_rep_msg.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cnxk_rep_ops.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cnxk_rep_flow.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cnxk_stats.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cnxk_tm.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn9k_ethdev.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn9k_ethdev_sec.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn9k_flow.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn9k_rx_select.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn9k_tx_select.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_rx_cn9k_rx_all_offload.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_tx_cn9k_tx_all_offload.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn10k_ethdev.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn10k_ethdev_sec.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn10k_flow.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn10k_rx_select.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn10k_tx_select.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_rx_cn10k_rx_all_offload.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_tx_cn10k_tx_all_offload.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn20k_ethdev.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn20k_ethdev_sec.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn20k_flow.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn20k_rx_select.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn20k_tx_select.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_rx_cn20k_rx_all_offload.c.o drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_tx_cn20k_tx_all_offload.c.o -Wl,--as-needed -Wl,--no-undefined -Wl,-O1 -shared -fPIC -Wl,--start-group -Wl,-soname,librte_net_cnxk.so.26 -Wl,--no-as-needed -Wl,--undefined-version -pthread -lm -ldl -lnuma -lfdt '-Wl,-rpath,$ORIGIN/../lib:$ORIGIN/' -Wl,-rpath-link,/home/shemminger/DPDK/main/build/lib -Wl,-rpath-link,/home/shemminger/DPDK/main/build/drivers lib/librte_ethdev.so.26.1 lib/librte_eal.so.26.1 lib/librte_kvargs.so.26.1 lib/librte_log.so.26.1 lib/librte_telemetry.so.26.1 lib/librte_argparse.so.26.1 lib/librte_net.so.26.1 lib/librte_mbuf.so.26.1 lib/librte_mempool.so.26.1 lib/librte_ring.so.26.1 lib/librte_meter.so.26.1 drivers/librte_bus_pci.so.26.1 lib/librte_pci.so.26.1 drivers/librte_bus_vdev.so.26.1 lib/librte_cryptodev.so.26.1 lib/librte_rcu.so.26.1 lib/librte_eventdev.so.26.1 lib/librte_hash.so.26.1 lib/librte_timer.so.26.1 lib/librte_dmadev.so.26.1 lib/librte_security.so.26.1 drivers/librte_common_cnxk.so.26.1 drivers/librte_mempool_cnxk.so.26.1 -Wl,--version-script=/home/shemminger/DPDK/main/build/drivers/net_cnxk_exports.map /usr/lib/aarch64-linux-gnu/libbsd.so -Wl,--end-group
/usr/bin/ld: drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn10k_rx_select.c.o:(.data+0x0): undefined reference to `cn10k_nix_recv_pkts_no_offload'
/usr/bin/ld: drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn10k_rx_select.c.o:(.data+0x8): undefined reference to `cn10k_nix_recv_pkts_rss'
/usr/bin/ld: drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn10k_rx_select.c.o:(.data+0x10): undefined reference to `cn10k_nix_recv_pkts_ptype'
/usr/bin/ld: drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn10k_rx_select.c.o:(.data+0x18): undefined reference to `cn10k_nix_recv_pkts_ptype_rss'
/usr/bin/ld: drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn10k_rx_select.c.o:(.data+0x20): undefined reference to `cn10k_nix_recv_pkts_cksum'
/usr/bin/ld: drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn10k_rx_select.c.o:(.data+0x28): undefined reference to `cn10k_nix_recv_pkts_cksum_rss'
/usr/bin/ld: drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn10k_rx_select.c.o:(.data+0x30): undefined reference to `cn10k_nix_recv_pkts_cksum_ptype'
/usr/bin/ld: drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn10k_rx_select.c.o:(.data+0x38): undefined reference to `cn10k_nix_recv_pkts_cksum_ptype_rss'
/usr/bin/ld: drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn10k_rx_select.c.o:(.data+0x40): undefined reference to `cn10k_nix_recv_pkts_mark'
/usr/bin/ld: drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn10k_rx_select.c.o:(.data+0x48): undefined reference to `cn10k_nix_recv_pkts_mark_rss'
/usr/bin/ld: drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn10k_rx_select.c.o:(.data+0x50): undefined reference to `cn10k_nix_recv_pkts_mark_ptype'
/usr/bin/ld: drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn10k_rx_select.c.o:(.data+0x58): undefined reference to `cn10k_nix_recv_pkts_mark_ptype_rss'
/usr/bin/ld: drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn10k_rx_select.c.o:(.data+0x60): undefined reference to `cn10k_nix_recv_pkts_mark_cksum'
/usr/bin/ld: drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn10k_rx_select.c.o:(.data+0x68): undefined reference to `cn10k_nix_recv_pkts_mark_cksum_rss'
/usr/bin/ld: drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn10k_rx_select.c.o:(.data+0x70): undefined reference to `cn10k_nix_recv_pkts_mark_cksum_ptype'
/usr/bin/ld: drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn10k_rx_select.c.o:(.data+0x78): undefined reference to `cn10k_nix_recv_pkts_mark_cksum_ptype_rss'
/usr/bin/ld: drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn10k_rx_select.c.o:(.data+0x80): undefined reference to `cn10k_nix_recv_pkts_ts'
/usr/bin/ld: drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn10k_rx_select.c.o:(.data+0x88): undefined reference to `cn10k_nix_recv_pkts_ts_rss'
/usr/bin/ld: drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn10k_rx_select.c.o:(.data+0x90): undefined reference to `cn10k_nix_recv_pkts_ts_ptype'
/usr/bin/ld: drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn10k_rx_select.c.o:(.data+0x98): undefined reference to `cn10k_nix_recv_pkts_ts_ptype_rss'
/usr/bin/ld: drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn10k_rx_select.c.o:(.data+0xa0): undefined reference to `cn10k_nix_recv_pkts_ts_cksum'
/usr/bin/ld: drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn10k_rx_select.c.o:(.data+0xa8): undefined reference to `cn10k_nix_recv_pkts_ts_cksum_rss'
/usr/bin/ld: drivers/libtmp_rte_net_cnxk.a.p/net_cnxk_cn10k_rx_select.c.o:(.data+0xb0): undefined reference to `cn10k_nix_recv_pkts_ts_cksum_ptype'
next prev parent reply other threads:[~2026-02-25 17:43 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-24 20:37 [RFC] net/cnxk: only build if platform is specified Stephen Hemminger
2026-02-25 8:01 ` [EXTERNAL] " Pavan Nikhilesh Bhagavatula
2026-02-25 17:43 ` Stephen Hemminger [this message]
2026-02-25 19:30 ` Pavan Nikhilesh Bhagavatula
2026-02-25 22:20 ` Stephen Hemminger
2026-02-26 4:50 ` Pavan Nikhilesh Bhagavatula
2026-02-26 21:16 ` Stephen Hemminger
2026-02-27 13:03 ` Pavan Nikhilesh Bhagavatula
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260225094338.5f0641a5@phoenix.local \
--to=stephen@networkplumber.org \
--cc=dev@dpdk.org \
--cc=hkalra@marvell.com \
--cc=kirankumark@marvell.com \
--cc=ndabilpuram@marvell.com \
--cc=pbhagavatula@marvell.com \
--cc=skori@marvell.com \
--cc=skoteshwar@marvell.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox