[v2,1/2] build: meson make experimental tag as global

Message ID 20200402183253.866-1-jerinjacobk@gmail.com (mailing list archive)
State Superseded, archived
Delegated to: David Marchand
Headers
Series [v2,1/2] build: meson make experimental tag as global |

Checks

Context Check Description
ci/checkpatch warning coding style issues
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-testing fail Testing issues
ci/Intel-compilation success Compilation OK

Commit Message

Jerin Jacob April 2, 2020, 6:32 p.m. UTC
  From: Pavan Nikhilesh <pbhagavatula@marvell.com>

Meson make allow_experimental_api global across lib, drivers and apps.

Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
---
 Based on discussion at
  http://mails.dpdk.org/archives/dev/2020-April/161527.html

 v2 Changes:
 - Remove comments containing experimental API list.

 app/meson.build                           | 6 +-----
 app/test-bbdev/meson.build                | 1 -
 app/test-compress-perf/meson.build        | 1 -
 app/test-crypto-perf/meson.build          | 1 -
 app/test-fib/meson.build                  | 1 -
 app/test-pmd/meson.build                  | 1 -
 app/test-sad/meson.build                  | 1 -
 drivers/baseband/fpga_lte_fec/meson.build | 1 -
 drivers/baseband/null/meson.build         | 1 -
 drivers/baseband/turbo_sw/meson.build     | 1 -
 drivers/bus/dpaa/meson.build              | 2 --
 drivers/bus/fslmc/meson.build             | 2 --
 drivers/bus/ifpga/meson.build             | 2 --
 drivers/bus/pci/meson.build               | 3 ---
 drivers/bus/vdev/meson.build              | 2 --
 drivers/bus/vmbus/meson.build             | 2 --
 drivers/common/cpt/meson.build            | 1 -
 drivers/common/dpaax/meson.build          | 2 --
 drivers/common/iavf/meson.build           | 2 --
 drivers/common/mlx5/meson.build           | 1 -
 drivers/common/octeontx2/meson.build      | 2 --
 drivers/compress/isal/meson.build         | 2 --
 drivers/compress/octeontx/meson.build     | 1 -
 drivers/compress/qat/meson.build          | 1 -
 drivers/compress/zlib/meson.build         | 2 --
 drivers/crypto/aesni_gcm/meson.build      | 1 -
 drivers/crypto/aesni_mb/meson.build       | 1 -
 drivers/crypto/armv8/meson.build          | 1 -
 drivers/crypto/caam_jr/meson.build        | 2 --
 drivers/crypto/dpaa2_sec/meson.build      | 2 --
 drivers/crypto/dpaa_sec/meson.build       | 2 --
 drivers/crypto/kasumi/meson.build         | 1 -
 drivers/crypto/nitrox/meson.build         | 1 -
 drivers/crypto/octeontx/meson.build       | 1 -
 drivers/crypto/octeontx2/meson.build      | 1 -
 drivers/crypto/openssl/meson.build        | 1 -
 drivers/crypto/snow3g/meson.build         | 1 -
 drivers/crypto/zuc/meson.build            | 1 -
 drivers/event/dpaa/meson.build            | 1 -
 drivers/event/dpaa2/meson.build           | 1 -
 drivers/event/dsw/meson.build             | 3 ---
 drivers/event/octeontx2/meson.build       | 2 --
 drivers/event/opdl/meson.build            | 1 -
 drivers/mempool/bucket/meson.build        | 2 --
 drivers/mempool/dpaa/meson.build          | 3 ---
 drivers/mempool/dpaa2/meson.build         | 3 ---
 drivers/mempool/octeontx/meson.build      | 2 --
 drivers/mempool/octeontx2/meson.build     | 2 --
 drivers/mempool/stack/meson.build         | 2 --
 drivers/meson.build                       | 6 +-----
 drivers/net/atlantic/meson.build          | 2 --
 drivers/net/avp/meson.build               | 1 -
 drivers/net/axgbe/meson.build             | 2 --
 drivers/net/bnx2x/meson.build             | 1 -
 drivers/net/bonding/meson.build           | 1 -
 drivers/net/dpaa/meson.build              | 2 --
 drivers/net/dpaa2/meson.build             | 3 ---
 drivers/net/e1000/base/meson.build        | 4 +---
 drivers/net/e1000/meson.build             | 2 --
 drivers/net/ena/meson.build               | 1 -
 drivers/net/enetc/meson.build             | 1 -
 drivers/net/failsafe/meson.build          | 2 --
 drivers/net/fm10k/base/meson.build        | 4 +---
 drivers/net/fm10k/meson.build             | 2 --
 drivers/net/hinic/base/meson.build        | 2 +-
 drivers/net/hinic/meson.build             | 2 +-
 drivers/net/hns3/meson.build              | 7 -------
 drivers/net/i40e/base/meson.build         | 4 +---
 drivers/net/iavf/meson.build              | 2 --
 drivers/net/ice/meson.build               | 2 --
 drivers/net/ipn3ke/meson.build            | 2 --
 drivers/net/ixgbe/base/meson.build        | 4 +---
 drivers/net/ixgbe/meson.build             | 2 --
 drivers/net/memif/meson.build             | 8 --------
 drivers/net/mlx4/meson.build              | 1 -
 drivers/net/mlx5/meson.build              | 1 -
 drivers/net/netvsc/meson.build            | 2 --
 drivers/net/nfp/meson.build               | 2 --
 drivers/net/octeontx/base/meson.build     | 4 +---
 drivers/net/octeontx/meson.build          | 2 --
 drivers/net/pfe/meson.build               | 5 -----
 drivers/net/qede/base/meson.build         | 4 +---
 drivers/net/qede/meson.build              | 2 --
 drivers/net/sfc/base/meson.build          | 4 +---
 drivers/net/sfc/meson.build               | 2 --
 drivers/net/softnic/meson.build           | 1 -
 drivers/net/tap/meson.build               | 1 -
 drivers/net/thunderx/base/meson.build     | 4 +---
 drivers/net/thunderx/meson.build          | 1 -
 drivers/net/vdev_netvsc/meson.build       | 2 --
 drivers/net/virtio/meson.build            | 1 -
 drivers/net/vmxnet3/meson.build           | 1 -
 drivers/raw/dpaa2_cmdif/meson.build       | 2 --
 drivers/raw/dpaa2_qdma/meson.build        | 2 --
 drivers/raw/ifpga/meson.build             | 2 --
 drivers/raw/ntb/meson.build               | 1 -
 drivers/vdpa/ifc/meson.build              | 1 -
 drivers/vdpa/mlx5/meson.build             | 1 -
 lib/librte_bbdev/meson.build              | 1 -
 lib/librte_bpf/meson.build                | 1 -
 lib/librte_cmdline/meson.build            | 1 -
 lib/librte_compressdev/meson.build        | 1 -
 lib/librte_cryptodev/meson.build          | 1 -
 lib/librte_eal/meson.build                | 1 -
 lib/librte_ethdev/meson.build             | 1 -
 lib/librte_eventdev/meson.build           | 2 --
 lib/librte_fib/meson.build                | 1 -
 lib/librte_flow_classify/meson.build      | 1 -
 lib/librte_gso/meson.build                | 2 +-
 lib/librte_hash/meson.build               | 3 ---
 lib/librte_ipsec/meson.build              | 2 --
 lib/librte_mbuf/meson.build               | 2 --
 lib/librte_mempool/meson.build            | 3 ---
 lib/librte_net/meson.build                | 1 -
 lib/librte_pdump/meson.build              | 1 -
 lib/librte_pipeline/meson.build           | 1 -
 lib/librte_rcu/meson.build                | 2 --
 lib/librte_rib/meson.build                | 1 -
 lib/librte_ring/meson.build               | 3 ---
 lib/librte_stack/meson.build              | 2 --
 lib/librte_telemetry/meson.build          | 1 -
 lib/librte_timer/meson.build              | 1 -
 lib/librte_vhost/meson.build              | 1 -
 lib/meson.build                           | 5 +----
 124 files changed, 14 insertions(+), 226 deletions(-)

--
2.17.1
  

Comments

David Marchand April 3, 2020, 7:23 a.m. UTC | #1
Hello Jerin, Pavan,

Thanks for the patch.

On Thu, Apr 2, 2020 at 8:33 PM Jerin Jacob <jerinjacobk@gmail.com> wrote:
>
> From: Pavan Nikhilesh <pbhagavatula@marvell.com>
>
> Meson make allow_experimental_api global across lib, drivers and apps.

- The title seems odd to me.

- The documentation should be updated.

- You can still find traces in meson files.
$ git grep -il allow.experimental.api |grep meson.build$ |grep -vE
'^((app|drivers|lib)/meson.build|examples/)'
app/test/meson.build
drivers/net/e1000/base/meson.build
drivers/net/enic/meson.build
drivers/net/i40e/base/meson.build
drivers/net/i40e/meson.build
drivers/net/ixgbe/base/meson.build
drivers/net/octeontx/base/meson.build
drivers/net/qede/base/meson.build
drivers/net/sfc/base/meson.build
drivers/net/thunderx/base/meson.build
lib/librte_mempool/meson.build
  
David Marchand April 3, 2020, 7:45 a.m. UTC | #2
On Fri, Apr 3, 2020 at 9:23 AM David Marchand <david.marchand@redhat.com> wrote:
> On Thu, Apr 2, 2020 at 8:33 PM Jerin Jacob <jerinjacobk@gmail.com> wrote:
> - You can still find traces in meson files.
> $ git grep -il allow.experimental.api |grep meson.build$ |grep -vE
> '^((app|drivers|lib)/meson.build|examples/)'
> app/test/meson.build
> drivers/net/e1000/base/meson.build
> drivers/net/enic/meson.build
> drivers/net/i40e/base/meson.build
> drivers/net/i40e/meson.build
> drivers/net/ixgbe/base/meson.build
> drivers/net/octeontx/base/meson.build
> drivers/net/qede/base/meson.build
> drivers/net/sfc/base/meson.build
> drivers/net/thunderx/base/meson.build
> lib/librte_mempool/meson.build

Sorry, those drivers passing directly the cflag were special cases.
This just leaves lib/librte_mempool/meson.build to clean.
  
Pavan Nikhilesh Bhagavatula April 3, 2020, 8:05 a.m. UTC | #3
><david.marchand@redhat.com> wrote:
>> On Thu, Apr 2, 2020 at 8:33 PM Jerin Jacob <jerinjacobk@gmail.com>
>wrote:
>> - You can still find traces in meson files.
>> $ git grep -il allow.experimental.api |grep meson.build$ |grep -vE
>> '^((app|drivers|lib)/meson.build|examples/)'
>> app/test/meson.build
>> drivers/net/e1000/base/meson.build
>> drivers/net/enic/meson.build
>> drivers/net/i40e/base/meson.build
>> drivers/net/i40e/meson.build
>> drivers/net/ixgbe/base/meson.build
>> drivers/net/octeontx/base/meson.build
>> drivers/net/qede/base/meson.build
>> drivers/net/sfc/base/meson.build
>> drivers/net/thunderx/base/meson.build
>> lib/librte_mempool/meson.build
>
>Sorry, those drivers passing directly the cflag were special cases.

Yup. Mostly base static libs.

>This just leaves lib/librte_mempool/meson.build to clean.

I will clean it up in v3. Along with modifying title and updating doc.

Doc to be updated are coding styles and release notes right?
Let me know if anything else need to be added to the list.

>
>
>--
>David Marchand

Thanks, 
Pavan.
  
David Marchand April 3, 2020, 8:18 a.m. UTC | #4
On Fri, Apr 3, 2020 at 10:06 AM Pavan Nikhilesh Bhagavatula
<pbhagavatula@marvell.com> wrote:
>
> ><david.marchand@redhat.com> wrote:
> >> On Thu, Apr 2, 2020 at 8:33 PM Jerin Jacob <jerinjacobk@gmail.com>
> >wrote:
> >> - You can still find traces in meson files.
> >> $ git grep -il allow.experimental.api |grep meson.build$ |grep -vE
> >> '^((app|drivers|lib)/meson.build|examples/)'
> >> app/test/meson.build
> >> drivers/net/e1000/base/meson.build
> >> drivers/net/enic/meson.build
> >> drivers/net/i40e/base/meson.build
> >> drivers/net/i40e/meson.build
> >> drivers/net/ixgbe/base/meson.build
> >> drivers/net/octeontx/base/meson.build
> >> drivers/net/qede/base/meson.build
> >> drivers/net/sfc/base/meson.build
> >> drivers/net/thunderx/base/meson.build
> >> lib/librte_mempool/meson.build
> >
> >Sorry, those drivers passing directly the cflag were special cases.
>
> Yup. Mostly base static libs.

Actually, how about something like this in drivers/meson.build ?
Bruce, do you see something wrong with this ?

on top of Pavan patch:

diff --git a/drivers/meson.build b/drivers/meson.build
index 987e616ae7..4d8f842ab8 100644
--- a/drivers/meson.build
+++ b/drivers/meson.build
@@ -20,7 +20,7 @@ dpdk_driver_classes = ['common',
 disabled_drivers = run_command(list_dir_globs, get_option('disable_drivers'),
                ).stdout().split()

-default_cflags = machine_args
+default_cflags = machine_args + ['-DALLOW_EXPERIMENTAL_API']
 if cc.has_argument('-Wno-format-truncation')
        default_cflags += '-Wno-format-truncation'
 endif
@@ -105,7 +105,6 @@ foreach class:dpdk_driver_classes

dpdk_conf.set(config_flag_fmt.format(fmt_name.to_upper()),1)
                        lib_name = driver_name_fmt.format(fmt_name)

-                       cflags += '-DALLOW_EXPERIMENTAL_API'
                        dpdk_extra_ldflags += pkgconfig_extra_libs

                        # generate pmdinfo sources by building a temporary

Since the base drivers make use of "cflags", it works afaics.

>
> >This just leaves lib/librte_mempool/meson.build to clean.
>
> I will clean it up in v3. Along with modifying title and updating doc.
>
> Doc to be updated are coding styles and release notes right?
> Let me know if anything else need to be added to the list.

lgtm, thanks.
  
Bruce Richardson April 3, 2020, 9:10 a.m. UTC | #5
On Fri, Apr 03, 2020 at 10:18:02AM +0200, David Marchand wrote:
> On Fri, Apr 3, 2020 at 10:06 AM Pavan Nikhilesh Bhagavatula
> <pbhagavatula@marvell.com> wrote:
> >
> > ><david.marchand@redhat.com> wrote:
> > >> On Thu, Apr 2, 2020 at 8:33 PM Jerin Jacob <jerinjacobk@gmail.com>
> > >wrote:
> > >> - You can still find traces in meson files.
> > >> $ git grep -il allow.experimental.api |grep meson.build$ |grep -vE
> > >> '^((app|drivers|lib)/meson.build|examples/)'
> > >> app/test/meson.build
> > >> drivers/net/e1000/base/meson.build
> > >> drivers/net/enic/meson.build
> > >> drivers/net/i40e/base/meson.build
> > >> drivers/net/i40e/meson.build
> > >> drivers/net/ixgbe/base/meson.build
> > >> drivers/net/octeontx/base/meson.build
> > >> drivers/net/qede/base/meson.build
> > >> drivers/net/sfc/base/meson.build
> > >> drivers/net/thunderx/base/meson.build
> > >> lib/librte_mempool/meson.build
> > >
> > >Sorry, those drivers passing directly the cflag were special cases.
> >
> > Yup. Mostly base static libs.
> 
> Actually, how about something like this in drivers/meson.build ?
> Bruce, do you see something wrong with this ?
> 
> on top of Pavan patch:
> 
> diff --git a/drivers/meson.build b/drivers/meson.build
> index 987e616ae7..4d8f842ab8 100644
> --- a/drivers/meson.build
> +++ b/drivers/meson.build
> @@ -20,7 +20,7 @@ dpdk_driver_classes = ['common',
>  disabled_drivers = run_command(list_dir_globs, get_option('disable_drivers'),
>                 ).stdout().split()
> 
> -default_cflags = machine_args
> +default_cflags = machine_args + ['-DALLOW_EXPERIMENTAL_API']
>  if cc.has_argument('-Wno-format-truncation')
>         default_cflags += '-Wno-format-truncation'
>  endif

I see nothing wrong with that.

Out of interest, is there a reason we don't just set it at the top level as
a project c_arg, e.g. after setting "-include rte_config.h" in
config/meson.build?
  
David Marchand April 3, 2020, 9:14 a.m. UTC | #6
On Fri, Apr 3, 2020 at 11:10 AM Bruce Richardson
<bruce.richardson@intel.com> wrote:
> > diff --git a/drivers/meson.build b/drivers/meson.build
> > index 987e616ae7..4d8f842ab8 100644
> > --- a/drivers/meson.build
> > +++ b/drivers/meson.build
> > @@ -20,7 +20,7 @@ dpdk_driver_classes = ['common',
> >  disabled_drivers = run_command(list_dir_globs, get_option('disable_drivers'),
> >                 ).stdout().split()
> >
> > -default_cflags = machine_args
> > +default_cflags = machine_args + ['-DALLOW_EXPERIMENTAL_API']
> >  if cc.has_argument('-Wno-format-truncation')
> >         default_cflags += '-Wno-format-truncation'
> >  endif
>
> I see nothing wrong with that.
>
> Out of interest, is there a reason we don't just set it at the top level as
> a project c_arg, e.g. after setting "-include rte_config.h" in
> config/meson.build?

As long as it is not inherited by examples and external apps, I am
fine with any simple solution :-).
  
Bruce Richardson April 3, 2020, 9:35 a.m. UTC | #7
On Fri, Apr 03, 2020 at 11:14:03AM +0200, David Marchand wrote:
> On Fri, Apr 3, 2020 at 11:10 AM Bruce Richardson
> <bruce.richardson@intel.com> wrote:
> > > diff --git a/drivers/meson.build b/drivers/meson.build
> > > index 987e616ae7..4d8f842ab8 100644
> > > --- a/drivers/meson.build
> > > +++ b/drivers/meson.build
> > > @@ -20,7 +20,7 @@ dpdk_driver_classes = ['common',
> > >  disabled_drivers = run_command(list_dir_globs, get_option('disable_drivers'),
> > >                 ).stdout().split()
> > >
> > > -default_cflags = machine_args
> > > +default_cflags = machine_args + ['-DALLOW_EXPERIMENTAL_API']
> > >  if cc.has_argument('-Wno-format-truncation')
> > >         default_cflags += '-Wno-format-truncation'
> > >  endif
> >
> > I see nothing wrong with that.
> >
> > Out of interest, is there a reason we don't just set it at the top level as
> > a project c_arg, e.g. after setting "-include rte_config.h" in
> > config/meson.build?
> 
> As long as it is not inherited by examples and external apps, I am
> fine with any simple solution :-).
> 
It will be inherited by everything inside the current build, but building
any examples separately or any external apps separately won't be affected.

/Bruce
  
Hemant Agrawal April 3, 2020, 10:20 a.m. UTC | #8
> Subject: [dpdk-dev] [PATCH v2 1/2] build: meson make experimental tag as
> global
> 
> From: Pavan Nikhilesh <pbhagavatula@marvell.com>
> 
> Meson make allow_experimental_api global across lib, drivers and apps.
> 
> Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
> ---
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
  
Thomas Monjalon April 3, 2020, 10:56 a.m. UTC | #9
03/04/2020 10:05, Pavan Nikhilesh Bhagavatula:
> Let me know if anything else need to be added to the list.

I think you can squash the patches in a single one.
  
Pavan Nikhilesh Bhagavatula April 3, 2020, 11:02 a.m. UTC | #10
>-----Original Message-----
>From: Thomas Monjalon <thomas@monjalon.net>
>Sent: Friday, April 3, 2020 4:26 PM
>To: Pavan Nikhilesh Bhagavatula <pbhagavatula@marvell.com>
>Cc: David Marchand <david.marchand@redhat.com>; Jerin Jacob
><jerinjacobk@gmail.com>; Ferruh Yigit <ferruh.yigit@intel.com>; Bruce
>Richardson <bruce.richardson@intel.com>; dev <dev@dpdk.org>; Neil
>Horman <nhorman@tuxdriver.com>
>Subject: Re: [EXT] Re: [dpdk-dev] [PATCH v2 1/2] build: meson make
>experimental tag as global
>
>03/04/2020 10:05, Pavan Nikhilesh Bhagavatula:
>> Let me know if anything else need to be added to the list.
>
>I think you can squash the patches in a single one.
>
Sure I'll do that in v3.
  

Patch

diff --git a/app/meson.build b/app/meson.build
index 71109cc42..7e9193fc3 100644
--- a/app/meson.build
+++ b/app/meson.build
@@ -26,7 +26,6 @@  default_cflags = machine_args
 foreach app:apps
 	build = true
 	name = app
-	allow_experimental_apis = false
 	sources = []
 	includes = []
 	cflags = default_cflags
@@ -53,10 +52,7 @@  foreach app:apps
 			link_libs = dpdk_static_libraries + dpdk_drivers
 		endif

-		if allow_experimental_apis
-			cflags += '-DALLOW_EXPERIMENTAL_API'
-		endif
-
+		cflags += '-DALLOW_EXPERIMENTAL_API'
 		executable('dpdk-' + name,
 				sources,
 				c_args: cflags,
diff --git a/app/test-bbdev/meson.build b/app/test-bbdev/meson.build
index 4f53a2ed8..0d9f684a1 100644
--- a/app/test-bbdev/meson.build
+++ b/app/test-bbdev/meson.build
@@ -5,7 +5,6 @@  sources = files('main.c',
 		'test_bbdev.c',
 		'test_bbdev_perf.c',
 		'test_bbdev_vector.c')
-allow_experimental_apis = true
 deps += ['bbdev', 'bus_vdev']
 if dpdk_conf.has('RTE_LIBRTE_PMD_BBDEV_FPGA_LTE_FEC')
 	deps += ['pmd_bbdev_fpga_lte_fec']
diff --git a/app/test-compress-perf/meson.build b/app/test-compress-perf/meson.build
index 1fe26cc14..a1a484da9 100644
--- a/app/test-compress-perf/meson.build
+++ b/app/test-compress-perf/meson.build
@@ -1,7 +1,6 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Intel Corporation

-allow_experimental_apis = true
 sources = files('comp_perf_options_parse.c',
 		'main.c',
 		'comp_perf_test_verify.c',
diff --git a/app/test-crypto-perf/meson.build b/app/test-crypto-perf/meson.build
index 0674396da..ef28cb5a0 100644
--- a/app/test-crypto-perf/meson.build
+++ b/app/test-crypto-perf/meson.build
@@ -1,7 +1,6 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Intel Corporation

-allow_experimental_apis = true
 sources = files('cperf_ops.c',
 		'cperf_options_parsing.c',
 		'cperf_test_common.c',
diff --git a/app/test-fib/meson.build b/app/test-fib/meson.build
index 4db001035..f74ac651c 100644
--- a/app/test-fib/meson.build
+++ b/app/test-fib/meson.build
@@ -1,6 +1,5 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2019 Intel Corporation

-allow_experimental_apis = true
 sources = files('main.c')
 deps += ['fib', 'lpm', 'net']
diff --git a/app/test-pmd/meson.build b/app/test-pmd/meson.build
index 6006c60f9..487288297 100644
--- a/app/test-pmd/meson.build
+++ b/app/test-pmd/meson.build
@@ -3,7 +3,6 @@ 

 # override default name to drop the hyphen
 name = 'testpmd'
-allow_experimental_apis = true
 cflags += '-Wno-deprecated-declarations'
 sources = files('cmdline.c',
 	'cmdline_flow.c',
diff --git a/app/test-sad/meson.build b/app/test-sad/meson.build
index 31f9aab63..db15b658d 100644
--- a/app/test-sad/meson.build
+++ b/app/test-sad/meson.build
@@ -1,6 +1,5 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2019 Intel Corporation

-allow_experimental_apis = true
 sources = files('main.c')
 deps += ['ipsec', 'net']
diff --git a/drivers/baseband/fpga_lte_fec/meson.build b/drivers/baseband/fpga_lte_fec/meson.build
index c4d3a489a..e00688da3 100644
--- a/drivers/baseband/fpga_lte_fec/meson.build
+++ b/drivers/baseband/fpga_lte_fec/meson.build
@@ -2,5 +2,4 @@ 
 # Copyright(c) 2019 Intel Corporation

 deps += ['bbdev', 'bus_vdev', 'ring', 'pci', 'bus_pci']
-allow_experimental_apis = true
 sources = files('fpga_lte_fec.c')
diff --git a/drivers/baseband/null/meson.build b/drivers/baseband/null/meson.build
index e491c7da4..02ef7db57 100644
--- a/drivers/baseband/null/meson.build
+++ b/drivers/baseband/null/meson.build
@@ -2,5 +2,4 @@ 
 # Copyright(c) 2018 Luca Boccassi <bluca@debian.org>

 deps += ['bbdev', 'bus_vdev', 'ring']
-allow_experimental_apis = true
 sources = files('bbdev_null.c')
diff --git a/drivers/baseband/turbo_sw/meson.build b/drivers/baseband/turbo_sw/meson.build
index 21c3cf819..f5a1ab3fc 100644
--- a/drivers/baseband/turbo_sw/meson.build
+++ b/drivers/baseband/turbo_sw/meson.build
@@ -36,5 +36,4 @@  if dpdk_conf.has('RTE_BBDEV_SDK_AVX512')
 endif

 deps += ['bbdev', 'bus_vdev', 'ring']
-allow_experimental_apis = true
 sources = files('bbdev_turbo_software.c')
diff --git a/drivers/bus/dpaa/meson.build b/drivers/bus/dpaa/meson.build
index 2b1cf1911..c2cffa494 100644
--- a/drivers/bus/dpaa/meson.build
+++ b/drivers/bus/dpaa/meson.build
@@ -19,8 +19,6 @@  sources = files('base/fman/fman.c',
 		'base/qbman/qman_driver.c',
 		'dpaa_bus.c')

-allow_experimental_apis = true
-
 if cc.has_argument('-Wno-cast-qual')
 	cflags += '-Wno-cast-qual'
 endif
diff --git a/drivers/bus/fslmc/meson.build b/drivers/bus/fslmc/meson.build
index 6e709a8d5..eb8874a5a 100644
--- a/drivers/bus/fslmc/meson.build
+++ b/drivers/bus/fslmc/meson.build
@@ -22,6 +22,4 @@  sources = files('fslmc_bus.c',
 		'qbman/qbman_portal.c',
 		'qbman/qbman_debug.c')

-allow_experimental_apis = true
-
 includes += include_directories('mc', 'qbman/include', 'portal')
diff --git a/drivers/bus/ifpga/meson.build b/drivers/bus/ifpga/meson.build
index c9b08c862..4ea31f174 100644
--- a/drivers/bus/ifpga/meson.build
+++ b/drivers/bus/ifpga/meson.build
@@ -4,5 +4,3 @@ 
 deps += ['pci', 'kvargs', 'rawdev']
 install_headers('rte_bus_ifpga.h')
 sources = files('ifpga_common.c', 'ifpga_bus.c')
-
-allow_experimental_apis = true
diff --git a/drivers/bus/pci/meson.build b/drivers/bus/pci/meson.build
index a3feb86ae..b520bdfc1 100644
--- a/drivers/bus/pci/meson.build
+++ b/drivers/bus/pci/meson.build
@@ -16,7 +16,4 @@  else
 	includes += include_directories('bsd')
 endif

-# memseg walk is not part of stable API yet
-allow_experimental_apis = true
-
 deps += ['kvargs']
diff --git a/drivers/bus/vdev/meson.build b/drivers/bus/vdev/meson.build
index 12605e5c7..967d54e4f 100644
--- a/drivers/bus/vdev/meson.build
+++ b/drivers/bus/vdev/meson.build
@@ -5,6 +5,4 @@  sources = files('vdev.c',
 	'vdev_params.c')
 install_headers('rte_bus_vdev.h')

-allow_experimental_apis = true
-
 deps += ['kvargs']
diff --git a/drivers/bus/vmbus/meson.build b/drivers/bus/vmbus/meson.build
index 251f21b66..a68a1de9d 100644
--- a/drivers/bus/vmbus/meson.build
+++ b/drivers/bus/vmbus/meson.build
@@ -1,7 +1,5 @@ 
 # SPDX-License-Identifier: BSD-3-Clause

-allow_experimental_apis = true
-
 install_headers('rte_bus_vmbus.h','rte_vmbus_reg.h')

 sources = files('vmbus_common.c',
diff --git a/drivers/common/cpt/meson.build b/drivers/common/cpt/meson.build
index d2e84fff3..beecf0da3 100644
--- a/drivers/common/cpt/meson.build
+++ b/drivers/common/cpt/meson.build
@@ -6,4 +6,3 @@  sources = files('cpt_fpm_tables.c',

 deps = ['kvargs', 'pci', 'cryptodev']
 includes += include_directories('../../crypto/octeontx')
-allow_experimental_apis = true
diff --git a/drivers/common/dpaax/meson.build b/drivers/common/dpaax/meson.build
index d41bb5073..ff2d1a507 100644
--- a/drivers/common/dpaax/meson.build
+++ b/drivers/common/dpaax/meson.build
@@ -1,8 +1,6 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 NXP

-allow_experimental_apis = true
-
 if not is_linux
 	build = false
 	reason = 'only supported on linux'
diff --git a/drivers/common/iavf/meson.build b/drivers/common/iavf/meson.build
index 7b68ef27f..ce50aceaf 100644
--- a/drivers/common/iavf/meson.build
+++ b/drivers/common/iavf/meson.build
@@ -1,8 +1,6 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2019 Intel Corporation

-allow_experimental_apis = true
-
 sources = files('iavf_adminq.c', 'iavf_common.c', 'iavf_impl.c')

 if cc.has_argument('-Wno-pointer-to-int-cast')
diff --git a/drivers/common/mlx5/meson.build b/drivers/common/mlx5/meson.build
index f67171071..ac2cfa623 100644
--- a/drivers/common/mlx5/meson.build
+++ b/drivers/common/mlx5/meson.build
@@ -49,7 +49,6 @@  if static_ibverbs
 	ext_deps += declare_dependency(link_args:ibv_ldflags.split())
 endif

-allow_experimental_apis = true
 deps += ['hash', 'pci', 'net', 'eal', 'kvargs']
 sources = files(
 	'mlx5_devx_cmds.c',
diff --git a/drivers/common/octeontx2/meson.build b/drivers/common/octeontx2/meson.build
index cc2c26123..996ddba14 100644
--- a/drivers/common/octeontx2/meson.build
+++ b/drivers/common/octeontx2/meson.build
@@ -2,8 +2,6 @@ 
 # Copyright(C) 2019 Marvell International Ltd.
 #

-allow_experimental_apis = true
-
 sources= files('otx2_dev.c',
 		'otx2_irq.c',
 		'otx2_mbox.c',
diff --git a/drivers/compress/isal/meson.build b/drivers/compress/isal/meson.build
index 25578880d..5ee17e28f 100644
--- a/drivers/compress/isal/meson.build
+++ b/drivers/compress/isal/meson.build
@@ -10,5 +10,3 @@  endif
 deps += 'bus_vdev'
 sources = files('isal_compress_pmd.c', 'isal_compress_pmd_ops.c')
 ext_deps += dep
-
-allow_experimental_apis = true
diff --git a/drivers/compress/octeontx/meson.build b/drivers/compress/octeontx/meson.build
index 7cd202d07..0dc98b762 100644
--- a/drivers/compress/octeontx/meson.build
+++ b/drivers/compress/octeontx/meson.build
@@ -3,7 +3,6 @@ 

 name = 'octeontx_compress'
 sources = files('otx_zip.c', 'otx_zip_pmd.c')
-allow_experimental_apis = true
 includes += include_directories('include')
 deps += ['mempool_octeontx', 'bus_pci']
 ext_deps += dep
diff --git a/drivers/compress/qat/meson.build b/drivers/compress/qat/meson.build
index 9d15076dc..a00246980 100644
--- a/drivers/compress/qat/meson.build
+++ b/drivers/compress/qat/meson.build
@@ -3,7 +3,6 @@ 


 # Add our sources files to the list
-allow_experimental_apis = true
 qat_sources += files('qat_comp_pmd.c',
 		     'qat_comp.c')
 qat_includes += include_directories('.')
diff --git a/drivers/compress/zlib/meson.build b/drivers/compress/zlib/meson.build
index b1328c535..b19a6d2b1 100644
--- a/drivers/compress/zlib/meson.build
+++ b/drivers/compress/zlib/meson.build
@@ -10,5 +10,3 @@  endif
 deps += 'bus_vdev'
 sources = files('zlib_pmd.c', 'zlib_pmd_ops.c')
 ext_deps += dep
-
-allow_experimental_apis = true
diff --git a/drivers/crypto/aesni_gcm/meson.build b/drivers/crypto/aesni_gcm/meson.build
index 3a6e332dc..ea83e8774 100644
--- a/drivers/crypto/aesni_gcm/meson.build
+++ b/drivers/crypto/aesni_gcm/meson.build
@@ -20,6 +20,5 @@  else
 	endif
 endif

-allow_experimental_apis = true
 sources = files('aesni_gcm_pmd.c', 'aesni_gcm_pmd_ops.c')
 deps += ['bus_vdev']
diff --git a/drivers/crypto/aesni_mb/meson.build b/drivers/crypto/aesni_mb/meson.build
index 3e1687416..e557e0103 100644
--- a/drivers/crypto/aesni_mb/meson.build
+++ b/drivers/crypto/aesni_mb/meson.build
@@ -22,5 +22,4 @@  else
 endif

 sources = files('rte_aesni_mb_pmd.c', 'rte_aesni_mb_pmd_ops.c')
-allow_experimental_apis = true
 deps += ['bus_vdev']
diff --git a/drivers/crypto/armv8/meson.build b/drivers/crypto/armv8/meson.build
index 6ecb78b42..c445c5bd3 100644
--- a/drivers/crypto/armv8/meson.build
+++ b/drivers/crypto/armv8/meson.build
@@ -22,4 +22,3 @@  endif

 deps += ['bus_vdev']
 sources = files('rte_armv8_pmd.c', 'rte_armv8_pmd_ops.c')
-allow_experimental_apis = true
diff --git a/drivers/crypto/caam_jr/meson.build b/drivers/crypto/caam_jr/meson.build
index 50132aebe..f8b5250a9 100644
--- a/drivers/crypto/caam_jr/meson.build
+++ b/drivers/crypto/caam_jr/meson.build
@@ -12,8 +12,6 @@  sources = files('caam_jr_capabilities.c',
 		'caam_jr_uio.c',
 		'caam_jr.c')

-allow_experimental_apis = true
-
 includes += include_directories('../../bus/dpaa/include/')
 includes += include_directories('../../common/dpaax/')
 includes += include_directories('../../common/dpaax/caamflib/')
diff --git a/drivers/crypto/dpaa2_sec/meson.build b/drivers/crypto/dpaa2_sec/meson.build
index ab9c8c8bf..cb1c2d049 100644
--- a/drivers/crypto/dpaa2_sec/meson.build
+++ b/drivers/crypto/dpaa2_sec/meson.build
@@ -10,6 +10,4 @@  deps += ['security', 'mempool_dpaa2']
 sources = files('dpaa2_sec_dpseci.c',
 		'mc/dpseci.c')

-allow_experimental_apis = true
-
 includes += include_directories('mc', '../../common/dpaax', '../../common/dpaax/caamflib')
diff --git a/drivers/crypto/dpaa_sec/meson.build b/drivers/crypto/dpaa_sec/meson.build
index 71de81940..7d422d8d5 100644
--- a/drivers/crypto/dpaa_sec/meson.build
+++ b/drivers/crypto/dpaa_sec/meson.build
@@ -9,8 +9,6 @@  endif
 deps += ['bus_dpaa', 'mempool_dpaa', 'security']
 sources = files('dpaa_sec.c')

-allow_experimental_apis = true
-
 includes += include_directories('../../bus/dpaa/include')
 includes += include_directories('../../common/dpaax')
 includes += include_directories('../../common/dpaax/caamflib/')
diff --git a/drivers/crypto/kasumi/meson.build b/drivers/crypto/kasumi/meson.build
index 7350f41ab..7560fb7cf 100644
--- a/drivers/crypto/kasumi/meson.build
+++ b/drivers/crypto/kasumi/meson.build
@@ -19,7 +19,6 @@  else

 endif

-allow_experimental_apis = true
 ext_deps += lib
 sources = files('rte_kasumi_pmd.c', 'rte_kasumi_pmd_ops.c')
 deps += ['bus_vdev']
diff --git a/drivers/crypto/nitrox/meson.build b/drivers/crypto/nitrox/meson.build
index 03788366b..9c0e89c2c 100644
--- a/drivers/crypto/nitrox/meson.build
+++ b/drivers/crypto/nitrox/meson.build
@@ -7,7 +7,6 @@  if not is_linux
 endif

 deps += ['bus_pci']
-allow_experimental_apis = true
 sources = files(
 		'nitrox_device.c',
 		'nitrox_hal.c',
diff --git a/drivers/crypto/octeontx/meson.build b/drivers/crypto/octeontx/meson.build
index 63a59c51a..cf031b006 100644
--- a/drivers/crypto/octeontx/meson.build
+++ b/drivers/crypto/octeontx/meson.build
@@ -9,7 +9,6 @@  deps += ['bus_pci']
 deps += ['common_cpt']
 name = 'octeontx_crypto'

-allow_experimental_apis = true
 sources = files('otx_cryptodev.c',
 		'otx_cryptodev_capabilities.c',
 		'otx_cryptodev_hw_access.c',
diff --git a/drivers/crypto/octeontx2/meson.build b/drivers/crypto/octeontx2/meson.build
index a5317990a..a28c700b9 100644
--- a/drivers/crypto/octeontx2/meson.build
+++ b/drivers/crypto/octeontx2/meson.build
@@ -12,7 +12,6 @@  deps += ['ethdev']
 deps += ['security']
 name = 'octeontx2_crypto'

-allow_experimental_apis = true
 sources = files('otx2_cryptodev.c',
 		'otx2_cryptodev_capabilities.c',
 		'otx2_cryptodev_hw_access.c',
diff --git a/drivers/crypto/openssl/meson.build b/drivers/crypto/openssl/meson.build
index 394e74c9e..d9ac69897 100644
--- a/drivers/crypto/openssl/meson.build
+++ b/drivers/crypto/openssl/meson.build
@@ -6,7 +6,6 @@  if not dep.found()
 	build = false
 	reason = 'missing dependency, "libcrypto"'
 endif
-allow_experimental_apis = true
 deps += 'bus_vdev'
 sources = files('rte_openssl_pmd.c', 'rte_openssl_pmd_ops.c')
 ext_deps += dep
diff --git a/drivers/crypto/snow3g/meson.build b/drivers/crypto/snow3g/meson.build
index 9d93cbe26..c1c5fd37f 100644
--- a/drivers/crypto/snow3g/meson.build
+++ b/drivers/crypto/snow3g/meson.build
@@ -19,7 +19,6 @@  else

 endif

-allow_experimental_apis = true
 ext_deps += lib
 sources = files('rte_snow3g_pmd.c', 'rte_snow3g_pmd_ops.c')
 deps += ['bus_vdev', 'cryptodev']
diff --git a/drivers/crypto/zuc/meson.build b/drivers/crypto/zuc/meson.build
index be3824c54..c3454d799 100644
--- a/drivers/crypto/zuc/meson.build
+++ b/drivers/crypto/zuc/meson.build
@@ -19,7 +19,6 @@  else

 endif

-allow_experimental_apis = true
 ext_deps += lib
 sources = files('rte_zuc_pmd.c', 'rte_zuc_pmd_ops.c')
 deps += ['bus_vdev']
diff --git a/drivers/event/dpaa/meson.build b/drivers/event/dpaa/meson.build
index b74f3bf32..2f761f8e5 100644
--- a/drivers/event/dpaa/meson.build
+++ b/drivers/event/dpaa/meson.build
@@ -8,5 +8,4 @@  endif
 deps += ['pmd_dpaa', 'pmd_dpaa_sec']
 sources = files('dpaa_eventdev.c')

-allow_experimental_apis = true
 includes += include_directories('../../crypto/dpaa_sec/')
diff --git a/drivers/event/dpaa2/meson.build b/drivers/event/dpaa2/meson.build
index ca914ccc4..71c8be3d6 100644
--- a/drivers/event/dpaa2/meson.build
+++ b/drivers/event/dpaa2/meson.build
@@ -10,5 +10,4 @@  sources = files('dpaa2_hw_dpcon.c',
 		'dpaa2_eventdev.c',
 		'dpaa2_eventdev_selftest.c')

-allow_experimental_apis = true
 includes += include_directories('../../crypto/dpaa2_sec/')
diff --git a/drivers/event/dsw/meson.build b/drivers/event/dsw/meson.build
index 3b39cb653..60ab13d90 100644
--- a/drivers/event/dsw/meson.build
+++ b/drivers/event/dsw/meson.build
@@ -6,6 +6,3 @@  if cc.has_argument('-Wno-format-nonliteral')
 	cflags += '-Wno-format-nonliteral'
 endif
 sources = files('dsw_evdev.c', 'dsw_event.c', 'dsw_xstats.c')
-
-# Depends on rte_ring_elem_*()
-allow_experimental_apis = true
diff --git a/drivers/event/octeontx2/meson.build b/drivers/event/octeontx2/meson.build
index 56febb8d8..4b938416b 100644
--- a/drivers/event/octeontx2/meson.build
+++ b/drivers/event/octeontx2/meson.build
@@ -12,8 +12,6 @@  sources = files('otx2_worker.c',
 		'otx2_tim_worker.c'
 		)

-allow_experimental_apis = true
-
 extra_flags = []
 # This integrated controller runs only on a arm64 machine, remove 32bit warnings
 if not dpdk_conf.get('RTE_ARCH_64')
diff --git a/drivers/event/opdl/meson.build b/drivers/event/opdl/meson.build
index e67b164e3..1fe034ea1 100644
--- a/drivers/event/opdl/meson.build
+++ b/drivers/event/opdl/meson.build
@@ -1,7 +1,6 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Luca Boccassi <bluca@debian.org>

-allow_experimental_apis = true
 sources = files(
 	'opdl_evdev.c',
 	'opdl_evdev_init.c',
diff --git a/drivers/mempool/bucket/meson.build b/drivers/mempool/bucket/meson.build
index 2fd77f9d4..618d79128 100644
--- a/drivers/mempool/bucket/meson.build
+++ b/drivers/mempool/bucket/meson.build
@@ -6,6 +6,4 @@ 
 # This software was jointly developed between OKTET Labs (under contract
 # for Solarflare) and Solarflare Communications, Inc.

-allow_experimental_apis = true
-
 sources = files('rte_mempool_bucket.c')
diff --git a/drivers/mempool/dpaa/meson.build b/drivers/mempool/dpaa/meson.build
index b7446f174..754e6397f 100644
--- a/drivers/mempool/dpaa/meson.build
+++ b/drivers/mempool/dpaa/meson.build
@@ -8,6 +8,3 @@  endif

 deps += ['bus_dpaa']
 sources = files('dpaa_mempool.c')
-
-# depends on dpaa bus which uses experimental API
-allow_experimental_apis = true
diff --git a/drivers/mempool/dpaa2/meson.build b/drivers/mempool/dpaa2/meson.build
index d79fc3164..df299a045 100644
--- a/drivers/mempool/dpaa2/meson.build
+++ b/drivers/mempool/dpaa2/meson.build
@@ -8,6 +8,3 @@  endif

 deps += ['bus_fslmc']
 sources = files('dpaa2_hw_mempool.c')
-
-# depends on fslmc bus which uses experimental API
-allow_experimental_apis = true
diff --git a/drivers/mempool/octeontx/meson.build b/drivers/mempool/octeontx/meson.build
index 195435950..3baaf7db2 100644
--- a/drivers/mempool/octeontx/meson.build
+++ b/drivers/mempool/octeontx/meson.build
@@ -1,8 +1,6 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Cavium, Inc

-allow_experimental_apis = true
-
 sources = files('octeontx_fpavf.c',
 		'rte_mempool_octeontx.c'
 )
diff --git a/drivers/mempool/octeontx2/meson.build b/drivers/mempool/octeontx2/meson.build
index 8255377df..9fde40f0e 100644
--- a/drivers/mempool/octeontx2/meson.build
+++ b/drivers/mempool/octeontx2/meson.build
@@ -2,8 +2,6 @@ 
 # Copyright(C) 2019 Marvell International Ltd.
 #

-allow_experimental_apis = true
-
 sources = files('otx2_mempool_ops.c',
 		'otx2_mempool.c',
 		'otx2_mempool_irq.c',
diff --git a/drivers/mempool/stack/meson.build b/drivers/mempool/stack/meson.build
index 03e369a41..580dde79e 100644
--- a/drivers/mempool/stack/meson.build
+++ b/drivers/mempool/stack/meson.build
@@ -1,8 +1,6 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017-2019 Intel Corporation

-allow_experimental_apis = true
-
 sources = files('rte_mempool_stack.c')

 deps += ['stack']
diff --git a/drivers/meson.build b/drivers/meson.build
index 5502bf992..987e616ae 100644
--- a/drivers/meson.build
+++ b/drivers/meson.build
@@ -44,7 +44,6 @@  foreach class:dpdk_driver_classes
 		reason = '<unknown reason>' # set if build == false to explain
 		name = drv
 		fmt_name = ''
-		allow_experimental_apis = false
 		sources = []
 		objs = []
 		cflags = default_cflags
@@ -106,10 +105,7 @@  foreach class:dpdk_driver_classes
 			dpdk_conf.set(config_flag_fmt.format(fmt_name.to_upper()),1)
 			lib_name = driver_name_fmt.format(fmt_name)

-			if allow_experimental_apis
-				cflags += '-DALLOW_EXPERIMENTAL_API'
-			endif
-
+			cflags += '-DALLOW_EXPERIMENTAL_API'
 			dpdk_extra_ldflags += pkgconfig_extra_libs

 			# generate pmdinfo sources by building a temporary
diff --git a/drivers/net/atlantic/meson.build b/drivers/net/atlantic/meson.build
index 919d74149..60b84684e 100644
--- a/drivers/net/atlantic/meson.build
+++ b/drivers/net/atlantic/meson.build
@@ -1,8 +1,6 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Aquantia Corporation

-allow_experimental_apis = true
-
 sources = files(
 	'atl_rxtx.c',
 	'atl_ethdev.c',
diff --git a/drivers/net/avp/meson.build b/drivers/net/avp/meson.build
index 793bb185d..a5f63cdef 100644
--- a/drivers/net/avp/meson.build
+++ b/drivers/net/avp/meson.build
@@ -5,6 +5,5 @@  if not is_linux
 	build = false
 	reason = 'only supported on linux'
 endif
-allow_experimental_apis = true
 sources = files('avp_ethdev.c')
 install_headers('rte_avp_common.h', 'rte_avp_fifo.h')
diff --git a/drivers/net/axgbe/meson.build b/drivers/net/axgbe/meson.build
index 366b28927..86873b7ef 100644
--- a/drivers/net/axgbe/meson.build
+++ b/drivers/net/axgbe/meson.build
@@ -6,8 +6,6 @@  if not is_linux
 	reason = 'only supported on linux'
 endif

-allow_experimental_apis = true
-
 sources = files('axgbe_ethdev.c',
 		'axgbe_dev.c',
 		'axgbe_mdio.c',
diff --git a/drivers/net/bnx2x/meson.build b/drivers/net/bnx2x/meson.build
index 678708905..4892bb234 100644
--- a/drivers/net/bnx2x/meson.build
+++ b/drivers/net/bnx2x/meson.build
@@ -5,7 +5,6 @@  dep = dependency('zlib', required: false)
 build = dep.found()
 reason = 'missing dependency, "zlib"'
 ext_deps += dep
-allow_experimental_apis = true
 cflags += '-DZLIB_CONST'
 sources = files('bnx2x.c',
 	'bnx2x_ethdev.c',
diff --git a/drivers/net/bonding/meson.build b/drivers/net/bonding/meson.build
index d133375d4..a3eff3b31 100644
--- a/drivers/net/bonding/meson.build
+++ b/drivers/net/bonding/meson.build
@@ -2,7 +2,6 @@ 
 # Copyright(c) 2017 Intel Corporation

 name = 'bond' #, james bond :-)
-allow_experimental_apis = true
 sources = files('rte_eth_bond_api.c', 'rte_eth_bond_pmd.c', 'rte_eth_bond_flow.c',
 	'rte_eth_bond_args.c', 'rte_eth_bond_8023ad.c', 'rte_eth_bond_alb.c')

diff --git a/drivers/net/dpaa/meson.build b/drivers/net/dpaa/meson.build
index 542b44af4..271416f08 100644
--- a/drivers/net/dpaa/meson.build
+++ b/drivers/net/dpaa/meson.build
@@ -14,6 +14,4 @@  if cc.has_argument('-Wno-pointer-arith')
 	cflags += '-Wno-pointer-arith'
 endif

-allow_experimental_apis = true
-
 install_headers('rte_pmd_dpaa.h')
diff --git a/drivers/net/dpaa2/meson.build b/drivers/net/dpaa2/meson.build
index 571cdb7d4..6dd0eb274 100644
--- a/drivers/net/dpaa2/meson.build
+++ b/drivers/net/dpaa2/meson.build
@@ -24,7 +24,4 @@  endif

 includes += include_directories('base', 'mc')

-# depends on fslmc bus which uses experimental API
-allow_experimental_apis = true
-
 install_headers('rte_pmd_dpaa2.h')
diff --git a/drivers/net/e1000/base/meson.build b/drivers/net/e1000/base/meson.build
index f26f24298..c5b51249b 100644
--- a/drivers/net/e1000/base/meson.build
+++ b/drivers/net/e1000/base/meson.build
@@ -25,9 +25,7 @@  error_cflags = ['-Wno-uninitialized', '-Wno-unused-parameter',
 	'-Wno-unused-variable', '-Wno-misleading-indentation',
 	'-Wno-implicit-fallthrough']
 c_args = cflags
-if allow_experimental_apis
-	c_args += '-DALLOW_EXPERIMENTAL_API'
-endif
+c_args += '-DALLOW_EXPERIMENTAL_API'
 foreach flag: error_cflags
 	if cc.has_argument(flag)
 		c_args += flag
diff --git a/drivers/net/e1000/meson.build b/drivers/net/e1000/meson.build
index d0901d377..cf456995c 100644
--- a/drivers/net/e1000/meson.build
+++ b/drivers/net/e1000/meson.build
@@ -1,8 +1,6 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation

-allow_experimental_apis = true
-
 subdir('base')
 objs = [base_objs]

diff --git a/drivers/net/ena/meson.build b/drivers/net/ena/meson.build
index 091ca6e3f..189903b90 100644
--- a/drivers/net/ena/meson.build
+++ b/drivers/net/ena/meson.build
@@ -1,7 +1,6 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Intel Corporation

-allow_experimental_apis = true
 sources = files('ena_ethdev.c',
 	'base/ena_com.c',
 	'base/ena_eth_com.c')
diff --git a/drivers/net/enetc/meson.build b/drivers/net/enetc/meson.build
index af11c0960..bea54bea8 100644
--- a/drivers/net/enetc/meson.build
+++ b/drivers/net/enetc/meson.build
@@ -11,4 +11,3 @@  sources = files('enetc_ethdev.c',
 		'enetc_rxtx.c')

 includes += include_directories('base')
-allow_experimental_apis = true
diff --git a/drivers/net/failsafe/meson.build b/drivers/net/failsafe/meson.build
index dfd4067cb..56010e212 100644
--- a/drivers/net/failsafe/meson.build
+++ b/drivers/net/failsafe/meson.build
@@ -11,8 +11,6 @@  else
 	cflags += '-DBSD'
 endif

-allow_experimental_apis = true
-
 sources = files('failsafe_args.c',
 	'failsafe.c',
 	'failsafe_eal.c',
diff --git a/drivers/net/fm10k/base/meson.build b/drivers/net/fm10k/base/meson.build
index 40d9b730a..41f9193df 100644
--- a/drivers/net/fm10k/base/meson.build
+++ b/drivers/net/fm10k/base/meson.build
@@ -16,9 +16,7 @@  error_cflags = ['-Wno-unused-parameter', '-Wno-unused-value',
 	'-Wno-implicit-fallthrough'
 ]
 c_args = cflags
-if allow_experimental_apis
-	c_args += '-DALLOW_EXPERIMENTAL_API'
-endif
+c_args += '-DALLOW_EXPERIMENTAL_API'
 foreach flag: error_cflags
 	if cc.has_argument(flag)
 		c_args += flag
diff --git a/drivers/net/fm10k/meson.build b/drivers/net/fm10k/meson.build
index 8f6e42392..2772ea4df 100644
--- a/drivers/net/fm10k/meson.build
+++ b/drivers/net/fm10k/meson.build
@@ -1,8 +1,6 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation

-allow_experimental_apis = true
-
 subdir('base')
 objs = [base_objs]

diff --git a/drivers/net/hinic/base/meson.build b/drivers/net/hinic/base/meson.build
index 6cf947f84..0695994ba 100644
--- a/drivers/net/hinic/base/meson.build
+++ b/drivers/net/hinic/base/meson.build
@@ -12,7 +12,7 @@  sources = [
 	'hinic_pmd_niccfg.c',
 	'hinic_pmd_nicio.c',
 	'hinic_pmd_wq.c',
- 	'hinic_pmd_mbox.c',
+	'hinic_pmd_mbox.c',
 ]

 extra_flags = []
diff --git a/drivers/net/hinic/meson.build b/drivers/net/hinic/meson.build
index bc7e24639..34ec4af66 100644
--- a/drivers/net/hinic/meson.build
+++ b/drivers/net/hinic/meson.build
@@ -8,7 +8,7 @@  sources = files(
 	'hinic_pmd_ethdev.c',
 	'hinic_pmd_rx.c',
 	'hinic_pmd_tx.c',
- 	'hinic_pmd_flow.c',
+	'hinic_pmd_flow.c',
 	)

 includes += include_directories('base')
diff --git a/drivers/net/hns3/meson.build b/drivers/net/hns3/meson.build
index 1a350fc8c..e01e6ce60 100644
--- a/drivers/net/hns3/meson.build
+++ b/drivers/net/hns3/meson.build
@@ -27,11 +27,4 @@  sources = files('hns3_cmd.c',
 	'hns3_stats.c',
 	'hns3_mp.c')

-allow_experimental_apis = true
-# Experimantal APIs:
-# - rte_mp_action_register
-# - rte_mp_action_unregister
-# - rte_mp_reply
-# - rte_mp_request_sync
-
 deps += ['hash']
diff --git a/drivers/net/i40e/base/meson.build b/drivers/net/i40e/base/meson.build
index 3dee8c975..caec16cb9 100644
--- a/drivers/net/i40e/base/meson.build
+++ b/drivers/net/i40e/base/meson.build
@@ -18,9 +18,7 @@  error_cflags = ['-Wno-sign-compare', '-Wno-unused-value',
 		'-Wno-unused-parameter',
 ]
 c_args = cflags
-if allow_experimental_apis
-	c_args += '-DALLOW_EXPERIMENTAL_API'
-endif
+c_args += '-DALLOW_EXPERIMENTAL_API'
 foreach flag: error_cflags
 	if cc.has_argument(flag)
 		c_args += flag
diff --git a/drivers/net/iavf/meson.build b/drivers/net/iavf/meson.build
index dbd0b01db..7bf3a3304 100644
--- a/drivers/net/iavf/meson.build
+++ b/drivers/net/iavf/meson.build
@@ -3,8 +3,6 @@ 

 cflags += ['-Wno-strict-aliasing']

-allow_experimental_apis = true
-
 includes += include_directories('../../common/iavf')
 deps += ['common_iavf']

diff --git a/drivers/net/ice/meson.build b/drivers/net/ice/meson.build
index f9e897bbc..617b2c815 100644
--- a/drivers/net/ice/meson.build
+++ b/drivers/net/ice/meson.build
@@ -1,8 +1,6 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Intel Corporation

-allow_experimental_apis = true
-
 subdir('base')
 objs = [base_objs]

diff --git a/drivers/net/ipn3ke/meson.build b/drivers/net/ipn3ke/meson.build
index f19083af1..ec9cb7daf 100644
--- a/drivers/net/ipn3ke/meson.build
+++ b/drivers/net/ipn3ke/meson.build
@@ -19,8 +19,6 @@  if not dep.found()
 	subdir_done()
 endif

-allow_experimental_apis = true
-
 includes += include_directories('../../raw/ifpga')

 sources += files('ipn3ke_ethdev.c',
diff --git a/drivers/net/ixgbe/base/meson.build b/drivers/net/ixgbe/base/meson.build
index bbd0f51ea..944bb3f72 100644
--- a/drivers/net/ixgbe/base/meson.build
+++ b/drivers/net/ixgbe/base/meson.build
@@ -22,9 +22,7 @@  error_cflags = ['-Wno-unused-value',
 		'-Wno-unused-parameter',
 		]
 c_args = cflags
-if allow_experimental_apis
-	c_args += '-DALLOW_EXPERIMENTAL_API'
-endif
+c_args += '-DALLOW_EXPERIMENTAL_API'
 foreach flag: error_cflags
 	if cc.has_argument(flag)
 		c_args += flag
diff --git a/drivers/net/ixgbe/meson.build b/drivers/net/ixgbe/meson.build
index 06cf42a4a..949075eb2 100644
--- a/drivers/net/ixgbe/meson.build
+++ b/drivers/net/ixgbe/meson.build
@@ -3,8 +3,6 @@ 

 cflags += ['-DRTE_LIBRTE_IXGBE_BYPASS']

-allow_experimental_apis = true
-
 subdir('base')
 objs = [base_objs]

diff --git a/drivers/net/memif/meson.build b/drivers/net/memif/meson.build
index 4c1c647f6..9c3ba432d 100644
--- a/drivers/net/memif/meson.build
+++ b/drivers/net/memif/meson.build
@@ -9,12 +9,4 @@  endif
 sources = files('rte_eth_memif.c',
 		'memif_socket.c')

-allow_experimental_apis = true
-# Experimantal APIs:
-# - rte_intr_callback_unregister_pending
-# - rte_mp_action_register
-# - rte_mp_reply
-# - rte_mp_request_sync
-# - rte_mcfg_get_single_file_segments
-
 deps += ['hash']
diff --git a/drivers/net/mlx4/meson.build b/drivers/net/mlx4/meson.build
index c59874573..5a25e11a7 100644
--- a/drivers/net/mlx4/meson.build
+++ b/drivers/net/mlx4/meson.build
@@ -50,7 +50,6 @@  if static_ibverbs
 	ext_deps += declare_dependency(link_args:ibv_ldflags.split())
 endif

-allow_experimental_apis = true
 sources = files(
 	'mlx4.c',
 	'mlx4_ethdev.c',
diff --git a/drivers/net/mlx5/meson.build b/drivers/net/mlx5/meson.build
index d418d26ba..928663af7 100644
--- a/drivers/net/mlx5/meson.build
+++ b/drivers/net/mlx5/meson.build
@@ -8,7 +8,6 @@  if not is_linux
 	subdir_done()
 endif

-allow_experimental_apis = true
 deps += ['hash', 'common_mlx5']
 sources = files(
 	'mlx5.c',
diff --git a/drivers/net/netvsc/meson.build b/drivers/net/netvsc/meson.build
index 131dd2866..e7f449302 100644
--- a/drivers/net/netvsc/meson.build
+++ b/drivers/net/netvsc/meson.build
@@ -6,5 +6,3 @@  reason = 'missing dependency, DPDK VMBus driver'
 sources = files('hn_ethdev.c', 'hn_rxtx.c', 'hn_rndis.c', 'hn_nvs.c', 'hn_vf.c')

 deps += ['bus_vmbus' ]
-
-allow_experimental_apis = true
diff --git a/drivers/net/nfp/meson.build b/drivers/net/nfp/meson.build
index b487cdffd..24a9a6da9 100644
--- a/drivers/net/nfp/meson.build
+++ b/drivers/net/nfp/meson.build
@@ -18,5 +18,3 @@  sources = files('nfpcore/nfp_cpp_pcie_ops.c',
 	'nfpcore/nfp_nsp_eth.c',
 	'nfpcore/nfp_hwinfo.c',
 	'nfp_net.c')
-
-allow_experimental_apis = true
diff --git a/drivers/net/octeontx/base/meson.build b/drivers/net/octeontx/base/meson.build
index a06a2c89c..08c2ab36b 100644
--- a/drivers/net/octeontx/base/meson.build
+++ b/drivers/net/octeontx/base/meson.build
@@ -14,9 +14,7 @@  foreach d: depends
 endforeach

 c_args = cflags
-if allow_experimental_apis
-	c_args += '-DALLOW_EXPERIMENTAL_API'
-endif
+c_args += '-DALLOW_EXPERIMENTAL_API'
 base_lib = static_library('octeontx_base', sources,
 	c_args: c_args,
 	dependencies: static_objs,
diff --git a/drivers/net/octeontx/meson.build b/drivers/net/octeontx/meson.build
index 0e249eb98..ef789eaa9 100644
--- a/drivers/net/octeontx/meson.build
+++ b/drivers/net/octeontx/meson.build
@@ -8,8 +8,6 @@  sources = files('octeontx_rxtx.c',
 		'octeontx_ethdev.c'
 		)

-allow_experimental_apis = true
-
 deps += ['mempool_octeontx', 'eventdev']

 includes += include_directories('base')
diff --git a/drivers/net/pfe/meson.build b/drivers/net/pfe/meson.build
index 678ce49a9..3e1a228a3 100644
--- a/drivers/net/pfe/meson.build
+++ b/drivers/net/pfe/meson.build
@@ -15,9 +15,4 @@  if cc.has_argument('-Wno-pointer-arith')
 	cflags += '-Wno-pointer-arith'
 endif

-# Driver uses below experimental APIs
-# rte_mem_iova2virt
-# rte_mem_virt2memseg
-allow_experimental_apis = true
-
 includes += include_directories('base')
diff --git a/drivers/net/qede/base/meson.build b/drivers/net/qede/base/meson.build
index 71b89737d..f601f96d9 100644
--- a/drivers/net/qede/base/meson.build
+++ b/drivers/net/qede/base/meson.build
@@ -45,9 +45,7 @@  error_cflags = [
 	'-Wno-pointer-bool-conversion',
 ]
 c_args = cflags
-if allow_experimental_apis
-	c_args += '-DALLOW_EXPERIMENTAL_API'
-endif
+c_args += '-DALLOW_EXPERIMENTAL_API'
 foreach flag: error_cflags
         if cc.has_argument(flag)
                 c_args += flag
diff --git a/drivers/net/qede/meson.build b/drivers/net/qede/meson.build
index 1755719f0..12388a680 100644
--- a/drivers/net/qede/meson.build
+++ b/drivers/net/qede/meson.build
@@ -1,8 +1,6 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Luca Boccassi <bluca@debian.org>

-allow_experimental_apis = true
-
 subdir('base')
 objs = [base_objs]

diff --git a/drivers/net/sfc/base/meson.build b/drivers/net/sfc/base/meson.build
index 074112f16..82663cada 100644
--- a/drivers/net/sfc/base/meson.build
+++ b/drivers/net/sfc/base/meson.build
@@ -63,9 +63,7 @@  extra_flags = [
 ]

 c_args = cflags
-if allow_experimental_apis
-	c_args += '-DALLOW_EXPERIMENTAL_API'
-endif
+c_args += '-DALLOW_EXPERIMENTAL_API'
 foreach flag: extra_flags
 	if cc.has_argument(flag)
 		c_args += flag
diff --git a/drivers/net/sfc/meson.build b/drivers/net/sfc/meson.build
index 8c54f9d54..c2f6af757 100644
--- a/drivers/net/sfc/meson.build
+++ b/drivers/net/sfc/meson.build
@@ -11,8 +11,6 @@  if arch_subdir != 'x86' or not dpdk_conf.get('RTE_ARCH_64')
 	reason = 'only supported on x86_64'
 endif

-allow_experimental_apis = true
-
 extra_flags = []

 # Strict-aliasing rules are violated by rte_eth_link to uint64_t casts
diff --git a/drivers/net/softnic/meson.build b/drivers/net/softnic/meson.build
index 9c10c2ec8..96c003e15 100644
--- a/drivers/net/softnic/meson.build
+++ b/drivers/net/softnic/meson.build
@@ -5,7 +5,6 @@  if not is_linux
 	build = false
 	reason = 'only supported on linux'
 endif
-allow_experimental_apis = true
 install_headers('rte_eth_softnic.h')
 sources = files('rte_eth_softnic_tm.c',
 	'rte_eth_softnic.c',
diff --git a/drivers/net/tap/meson.build b/drivers/net/tap/meson.build
index baa70f756..c1cdf9e67 100644
--- a/drivers/net/tap/meson.build
+++ b/drivers/net/tap/meson.build
@@ -39,7 +39,6 @@  args = [
 	  'TCA_ACT_BPF_FD' ],
 ]
 config = configuration_data()
-allow_experimental_apis = true
 foreach arg:args
 	config.set(arg[0], cc.has_header_symbol(arg[1], arg[2]))
 endforeach
diff --git a/drivers/net/thunderx/base/meson.build b/drivers/net/thunderx/base/meson.build
index bf4e8608a..3c1d56e3e 100644
--- a/drivers/net/thunderx/base/meson.build
+++ b/drivers/net/thunderx/base/meson.build
@@ -8,9 +8,7 @@  sources = [
 ]

 c_args = cflags
-if allow_experimental_apis
-	c_args += '-DALLOW_EXPERIMENTAL_API'
-endif
+c_args += '-DALLOW_EXPERIMENTAL_API'
 base_lib = static_library('nicvf_base', sources,
 	c_args: c_args,
 	dependencies: static_rte_ethdev
diff --git a/drivers/net/thunderx/meson.build b/drivers/net/thunderx/meson.build
index 23d945811..69819a97f 100644
--- a/drivers/net/thunderx/meson.build
+++ b/drivers/net/thunderx/meson.build
@@ -4,7 +4,6 @@ 
 subdir('base')
 objs = [base_objs]

-allow_experimental_apis = true
 sources = files('nicvf_rxtx.c',
 		'nicvf_ethdev.c',
 		'nicvf_svf.c'
diff --git a/drivers/net/vdev_netvsc/meson.build b/drivers/net/vdev_netvsc/meson.build
index bf62edb7a..58b0012ed 100644
--- a/drivers/net/vdev_netvsc/meson.build
+++ b/drivers/net/vdev_netvsc/meson.build
@@ -7,8 +7,6 @@  if not is_linux
 endif
 sources = files('vdev_netvsc.c')

-allow_experimental_apis = true
-
 cflags_options = [
         '-D_BSD_SOURCE',
         '-D_DEFAULT_SOURCE',
diff --git a/drivers/net/virtio/meson.build b/drivers/net/virtio/meson.build
index 5e7ca855c..15150eea1 100644
--- a/drivers/net/virtio/meson.build
+++ b/drivers/net/virtio/meson.build
@@ -1,7 +1,6 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Intel Corporation

-allow_experimental_apis = true
 sources += files('virtio_ethdev.c',
 	'virtio_pci.c',
 	'virtio_rxtx.c',
diff --git a/drivers/net/vmxnet3/meson.build b/drivers/net/vmxnet3/meson.build
index a92bd2868..0641f776f 100644
--- a/drivers/net/vmxnet3/meson.build
+++ b/drivers/net/vmxnet3/meson.build
@@ -1,7 +1,6 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Luca Boccassi <bluca@debian.org>

-allow_experimental_apis = true
 sources += files(
 	'vmxnet3_ethdev.c',
 	'vmxnet3_rxtx.c',
diff --git a/drivers/raw/dpaa2_cmdif/meson.build b/drivers/raw/dpaa2_cmdif/meson.build
index 70247622b..e7656a3cd 100644
--- a/drivers/raw/dpaa2_cmdif/meson.build
+++ b/drivers/raw/dpaa2_cmdif/meson.build
@@ -6,6 +6,4 @@  reason = 'missing dependency, DPDK DPAA2 mempool driver'
 deps += ['rawdev', 'mempool_dpaa2', 'bus_vdev']
 sources = files('dpaa2_cmdif.c')

-allow_experimental_apis = true
-
 install_headers('rte_pmd_dpaa2_cmdif.h')
diff --git a/drivers/raw/dpaa2_qdma/meson.build b/drivers/raw/dpaa2_qdma/meson.build
index fe166d918..b9b08153a 100644
--- a/drivers/raw/dpaa2_qdma/meson.build
+++ b/drivers/raw/dpaa2_qdma/meson.build
@@ -6,6 +6,4 @@  reason = 'missing dependency, DPDK DPAA2 mempool driver'
 deps += ['rawdev', 'mempool_dpaa2', 'ring', 'kvargs']
 sources = files('dpaa2_qdma.c')

-allow_experimental_apis = true
-
 install_headers('rte_pmd_dpaa2_qdma.h')
diff --git a/drivers/raw/ifpga/meson.build b/drivers/raw/ifpga/meson.build
index e2a4b8ccc..05a1711b5 100644
--- a/drivers/raw/ifpga/meson.build
+++ b/drivers/raw/ifpga/meson.build
@@ -23,5 +23,3 @@  sources = files('ifpga_rawdev.c')
 includes += include_directories('base')
 includes += include_directories('../../net/ipn3ke')
 includes += include_directories('../../net/i40e')
-
-allow_experimental_apis = true
diff --git a/drivers/raw/ntb/meson.build b/drivers/raw/ntb/meson.build
index 7a7d26126..2926193a0 100644
--- a/drivers/raw/ntb/meson.build
+++ b/drivers/raw/ntb/meson.build
@@ -6,4 +6,3 @@  deps += ['rawdev', 'mbuf', 'mempool',
 sources = files('ntb.c',
                 'ntb_hw_intel.c')
 install_headers('rte_pmd_ntb.h')
-allow_experimental_apis = true
diff --git a/drivers/vdpa/ifc/meson.build b/drivers/vdpa/ifc/meson.build
index adc9ed9ff..b179987f9 100644
--- a/drivers/vdpa/ifc/meson.build
+++ b/drivers/vdpa/ifc/meson.build
@@ -3,7 +3,6 @@ 

 build = dpdk_conf.has('RTE_LIBRTE_VHOST')
 reason = 'missing dependency, DPDK vhost library'
-allow_experimental_apis = true
 sources = files('ifcvf_vdpa.c', 'base/ifcvf.c')
 includes += include_directories('base')
 deps += 'vhost'
diff --git a/drivers/vdpa/mlx5/meson.build b/drivers/vdpa/mlx5/meson.build
index 9c152e546..2963aad71 100644
--- a/drivers/vdpa/mlx5/meson.build
+++ b/drivers/vdpa/mlx5/meson.build
@@ -8,7 +8,6 @@  if not is_linux
 endif

 fmt_name = 'mlx5_vdpa'
-allow_experimental_apis = true
 deps += ['hash', 'common_mlx5', 'vhost', 'pci', 'bus_pci', 'eal', 'sched']
 sources = files(
 	'mlx5_vdpa.c',
diff --git a/lib/librte_bbdev/meson.build b/lib/librte_bbdev/meson.build
index f6ca0ad7a..126778220 100644
--- a/lib/librte_bbdev/meson.build
+++ b/lib/librte_bbdev/meson.build
@@ -1,7 +1,6 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation

-allow_experimental_apis = true
 sources = files('rte_bbdev.c')
 headers = files('rte_bbdev.h',
 		'rte_bbdev_pmd.h',
diff --git a/lib/librte_bpf/meson.build b/lib/librte_bpf/meson.build
index 52cfaf9ac..6070898cb 100644
--- a/lib/librte_bpf/meson.build
+++ b/lib/librte_bpf/meson.build
@@ -1,7 +1,6 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Intel Corporation

-allow_experimental_apis = true
 sources = files('bpf.c',
 		'bpf_exec.c',
 		'bpf_load.c',
diff --git a/lib/librte_cmdline/meson.build b/lib/librte_cmdline/meson.build
index a7dd31966..7fc54ff1a 100644
--- a/lib/librte_cmdline/meson.build
+++ b/lib/librte_cmdline/meson.build
@@ -1,7 +1,6 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation

-allow_experimental_apis = true
 sources = files('cmdline.c',
 	'cmdline_cirbuf.c',
 	'cmdline_parse.c',
diff --git a/lib/librte_compressdev/meson.build b/lib/librte_compressdev/meson.build
index 5416571c9..7d95cd4f3 100644
--- a/lib/librte_compressdev/meson.build
+++ b/lib/librte_compressdev/meson.build
@@ -1,7 +1,6 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Intel Corporation

-allow_experimental_apis = true
 sources = files('rte_compressdev.c',
 	'rte_compressdev_pmd.c',
 	'rte_comp.c')
diff --git a/lib/librte_cryptodev/meson.build b/lib/librte_cryptodev/meson.build
index 49bae03a8..42825a810 100644
--- a/lib/librte_cryptodev/meson.build
+++ b/lib/librte_cryptodev/meson.build
@@ -1,7 +1,6 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017-2019 Intel Corporation

-allow_experimental_apis = true
 sources = files('rte_cryptodev.c', 'rte_cryptodev_pmd.c')
 headers = files('rte_cryptodev.h',
 	'rte_cryptodev_pmd.h',
diff --git a/lib/librte_eal/meson.build b/lib/librte_eal/meson.build
index 9d219a0e6..0267c3b9d 100644
--- a/lib/librte_eal/meson.build
+++ b/lib/librte_eal/meson.build
@@ -11,7 +11,6 @@  subdir(exec_env)

 subdir(arch_subdir)

-allow_experimental_apis = true
 deps += 'kvargs'
 if dpdk_conf.has('RTE_USE_LIBBSD')
 	ext_deps += libbsd
diff --git a/lib/librte_ethdev/meson.build b/lib/librte_ethdev/meson.build
index 3537f22f5..ab341d9c0 100644
--- a/lib/librte_ethdev/meson.build
+++ b/lib/librte_ethdev/meson.build
@@ -2,7 +2,6 @@ 
 # Copyright(c) 2017 Intel Corporation

 name = 'ethdev'
-allow_experimental_apis = true
 sources = files('ethdev_private.c',
 	'ethdev_profile.c',
 	'rte_class_eth.c',
diff --git a/lib/librte_eventdev/meson.build b/lib/librte_eventdev/meson.build
index 02ac61ad2..16d8240e9 100644
--- a/lib/librte_eventdev/meson.build
+++ b/lib/librte_eventdev/meson.build
@@ -1,8 +1,6 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation

-allow_experimental_apis = true
-
 if is_linux
 	cflags += '-DLINUX'
 else
diff --git a/lib/librte_fib/meson.build b/lib/librte_fib/meson.build
index e2c6f44a7..771828fbe 100644
--- a/lib/librte_fib/meson.build
+++ b/lib/librte_fib/meson.build
@@ -2,7 +2,6 @@ 
 # Copyright(c) 2018 Vladimir Medvedkin <medvedkinv@gmail.com>
 # Copyright(c) 2019 Intel Corporation

-allow_experimental_apis = true
 sources = files('rte_fib.c', 'rte_fib6.c', 'dir24_8.c', 'trie.c')
 headers = files('rte_fib.h', 'rte_fib6.h')
 deps += ['rib']
diff --git a/lib/librte_flow_classify/meson.build b/lib/librte_flow_classify/meson.build
index d7e487475..a7a5b3d57 100644
--- a/lib/librte_flow_classify/meson.build
+++ b/lib/librte_flow_classify/meson.build
@@ -1,7 +1,6 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation

-allow_experimental_apis = true
 sources = files('rte_flow_classify.c', 'rte_flow_classify_parse.c')
 headers = files('rte_flow_classify.h')
 deps += ['net', 'table']
diff --git a/lib/librte_gso/meson.build b/lib/librte_gso/meson.build
index ad8dd8583..af3a63381 100644
--- a/lib/librte_gso/meson.build
+++ b/lib/librte_gso/meson.build
@@ -2,6 +2,6 @@ 
 # Copyright(c) 2017 Intel Corporation

 sources = files('gso_common.c', 'gso_tcp4.c', 'gso_udp4.c',
- 		'gso_tunnel_tcp4.c', 'rte_gso.c')
+		'gso_tunnel_tcp4.c', 'rte_gso.c')
 headers = files('rte_gso.h')
 deps += ['ethdev']
diff --git a/lib/librte_hash/meson.build b/lib/librte_hash/meson.build
index bce11ad9e..6ab46ae9d 100644
--- a/lib/librte_hash/meson.build
+++ b/lib/librte_hash/meson.build
@@ -10,6 +10,3 @@  headers = files('rte_crc_arm64.h',

 sources = files('rte_cuckoo_hash.c', 'rte_fbk_hash.c')
 deps += ['ring']
-
-# rte ring reset is not yet part of stable API
-allow_experimental_apis = true
diff --git a/lib/librte_ipsec/meson.build b/lib/librte_ipsec/meson.build
index 70358526b..fc69970ec 100644
--- a/lib/librte_ipsec/meson.build
+++ b/lib/librte_ipsec/meson.build
@@ -1,8 +1,6 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Intel Corporation

-allow_experimental_apis = true
-
 sources = files('esp_inb.c', 'esp_outb.c', 'sa.c', 'ses.c', 'ipsec_sad.c')

 headers = files('rte_ipsec.h', 'rte_ipsec_group.h', 'rte_ipsec_sa.h', 'rte_ipsec_sad.h')
diff --git a/lib/librte_mbuf/meson.build b/lib/librte_mbuf/meson.build
index d9b53b6ae..e95c770e5 100644
--- a/lib/librte_mbuf/meson.build
+++ b/lib/librte_mbuf/meson.build
@@ -7,5 +7,3 @@  headers = files('rte_mbuf.h', 'rte_mbuf_core.h',
 		'rte_mbuf_ptype.h', 'rte_mbuf_pool_ops.h',
 		'rte_mbuf_dyn.h')
 deps += ['mempool']
-
-allow_experimental_apis = true
diff --git a/lib/librte_mempool/meson.build b/lib/librte_mempool/meson.build
index f8710b61b..5ea6ed56b 100644
--- a/lib/librte_mempool/meson.build
+++ b/lib/librte_mempool/meson.build
@@ -15,6 +15,3 @@  sources = files('rte_mempool.c', 'rte_mempool_ops.c',
 		'rte_mempool_ops_default.c')
 headers = files('rte_mempool.h')
 deps += ['ring']
-
-# memseg walk is not yet part of stable API
-allow_experimental_apis = true
diff --git a/lib/librte_net/meson.build b/lib/librte_net/meson.build
index 208eee2dc..f799349b3 100644
--- a/lib/librte_net/meson.build
+++ b/lib/librte_net/meson.build
@@ -1,7 +1,6 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation

-allow_experimental_apis = true
 headers = files('rte_ip.h',
 	'rte_tcp.h',
 	'rte_udp.h',
diff --git a/lib/librte_pdump/meson.build b/lib/librte_pdump/meson.build
index 1173cdea3..3a95eabde 100644
--- a/lib/librte_pdump/meson.build
+++ b/lib/librte_pdump/meson.build
@@ -3,5 +3,4 @@ 

 sources = files('rte_pdump.c')
 headers = files('rte_pdump.h')
-allow_experimental_apis = true
 deps += ['ethdev']
diff --git a/lib/librte_pipeline/meson.build b/lib/librte_pipeline/meson.build
index be8a3536a..d70b1a023 100644
--- a/lib/librte_pipeline/meson.build
+++ b/lib/librte_pipeline/meson.build
@@ -1,7 +1,6 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation

-allow_experimental_apis = true
 sources = files('rte_pipeline.c', 'rte_port_in_action.c', 'rte_table_action.c')
 headers = files('rte_pipeline.h', 'rte_port_in_action.h', 'rte_table_action.h')
 deps += ['port', 'table', 'meter', 'sched', 'cryptodev']
diff --git a/lib/librte_rcu/meson.build b/lib/librte_rcu/meson.build
index 62920ba02..5929bd3a7 100644
--- a/lib/librte_rcu/meson.build
+++ b/lib/librte_rcu/meson.build
@@ -1,8 +1,6 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Arm Limited

-allow_experimental_apis = true
-
 sources = files('rte_rcu_qsbr.c')
 headers = files('rte_rcu_qsbr.h')

diff --git a/lib/librte_rib/meson.build b/lib/librte_rib/meson.build
index 46a1c0c90..7bacbb453 100644
--- a/lib/librte_rib/meson.build
+++ b/lib/librte_rib/meson.build
@@ -2,7 +2,6 @@ 
 # Copyright(c) 2018 Vladimir Medvedkin <medvedkinv@gmail.com>
 # Copyright(c) 2019 Intel Corporation

-allow_experimental_apis = true
 sources = files('rte_rib.c', 'rte_rib6.c')
 headers = files('rte_rib.h', 'rte_rib6.h')
 deps += ['mempool']
diff --git a/lib/librte_ring/meson.build b/lib/librte_ring/meson.build
index f2f3ccc88..05402e4f0 100644
--- a/lib/librte_ring/meson.build
+++ b/lib/librte_ring/meson.build
@@ -6,6 +6,3 @@  headers = files('rte_ring.h',
 		'rte_ring_elem.h',
 		'rte_ring_c11_mem.h',
 		'rte_ring_generic.h')
-
-# rte_ring_create_elem and rte_ring_get_memsize_elem are experimental
-allow_experimental_apis = true
diff --git a/lib/librte_stack/meson.build b/lib/librte_stack/meson.build
index f420a5c22..8f82a40ec 100644
--- a/lib/librte_stack/meson.build
+++ b/lib/librte_stack/meson.build
@@ -1,8 +1,6 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2019 Intel Corporation

-allow_experimental_apis = true
-
 sources = files('rte_stack.c', 'rte_stack_std.c', 'rte_stack_lf.c')
 headers = files('rte_stack.h',
 		'rte_stack_std.h',
diff --git a/lib/librte_telemetry/meson.build b/lib/librte_telemetry/meson.build
index 26a331140..1bdf128c1 100644
--- a/lib/librte_telemetry/meson.build
+++ b/lib/librte_telemetry/meson.build
@@ -4,7 +4,6 @@ 
 sources = files('rte_telemetry.c', 'rte_telemetry_parser.c', 'rte_telemetry_parser_test.c')
 headers = files('rte_telemetry.h', 'rte_telemetry_internal.h', 'rte_telemetry_parser.h')
 deps += ['metrics', 'ethdev']
-cflags += '-DALLOW_EXPERIMENTAL_API'

 jansson = dependency('jansson', required: false)
 if jansson.found()
diff --git a/lib/librte_timer/meson.build b/lib/librte_timer/meson.build
index d3b828ce9..89b17e039 100644
--- a/lib/librte_timer/meson.build
+++ b/lib/librte_timer/meson.build
@@ -3,4 +3,3 @@ 

 sources = files('rte_timer.c')
 headers = files('rte_timer.h')
-allow_experimental_apis = true
diff --git a/lib/librte_vhost/meson.build b/lib/librte_vhost/meson.build
index ef7a5bced..f80632848 100644
--- a/lib/librte_vhost/meson.build
+++ b/lib/librte_vhost/meson.build
@@ -17,7 +17,6 @@  elif (toolchain == 'icc' and cc.version().version_compare('>=16.0.0'))
 endif
 dpdk_conf.set('RTE_LIBRTE_VHOST_POSTCOPY',
 	      cc.has_header('linux/userfaultfd.h'))
-allow_experimental_apis = true
 cflags += '-fno-strict-aliasing'
 sources = files('fd_man.c', 'iotlb.c', 'socket.c', 'vdpa.c',
 		'vhost.c', 'vhost_user.c',
diff --git a/lib/meson.build b/lib/meson.build
index 9c3cc55d5..3bf14fcdf 100644
--- a/lib/meson.build
+++ b/lib/meson.build
@@ -47,7 +47,6 @@  foreach l:libraries
 	build = true
 	reason = '<unknown reason>' # set if build == false to explain why
 	name = l
-	allow_experimental_apis = false
 	use_function_versioning = false
 	sources = []
 	headers = []
@@ -98,9 +97,7 @@  foreach l:libraries
 			static_dep = shared_dep
 		else

-			if allow_experimental_apis
-				cflags += '-DALLOW_EXPERIMENTAL_API'
-			endif
+			cflags += '-DALLOW_EXPERIMENTAL_API'
 			if use_function_versioning
 				cflags += '-DRTE_USE_FUNCTION_VERSIONING'
 			endif