net/*/base: allow use of experimental APIs in base code

Message ID 20180831133510.3121-1-bruce.richardson@intel.com (mailing list archive)
State Accepted, archived
Delegated to: Ferruh Yigit
Headers
Series net/*/base: allow use of experimental APIs in base code |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation fail apply issues

Commit Message

Bruce Richardson Aug. 31, 2018, 1:35 p.m. UTC
  The driver setting of "allow_experimental_apis" was not being used when
building the base code. To allow this we can manually put in a check
in the base code files for the setting and set the appropriate cflag
if it's needed.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
---
 drivers/net/e1000/base/meson.build    | 3 +++
 drivers/net/fm10k/base/meson.build    | 3 +++
 drivers/net/i40e/base/meson.build     | 3 +++
 drivers/net/ixgbe/base/meson.build    | 3 +++
 drivers/net/octeontx/base/meson.build | 6 +++++-
 drivers/net/sfc/base/meson.build      | 3 +++
 drivers/net/thunderx/base/meson.build | 6 +++++-
 7 files changed, 25 insertions(+), 2 deletions(-)
  

Comments

Andrew Rybchenko Aug. 31, 2018, 1:59 p.m. UTC | #1
On 08/31/2018 04:35 PM, Bruce Richardson wrote:
> The driver setting of "allow_experimental_apis" was not being used when
> building the base code. To allow this we can manually put in a check
> in the base code files for the setting and set the appropriate cflag
> if it's needed.
>
> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>

Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
  
Ilya Maximets Sept. 3, 2018, 2:41 p.m. UTC | #2
On 31.08.2018 16:35, Bruce Richardson wrote:
> The driver setting of "allow_experimental_apis" was not being used when
> building the base code. To allow this we can manually put in a check
> in the base code files for the setting and set the appropriate cflag
> if it's needed.
> 
> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>

Tested-by: Ilya Maximets <i.maximets@samsung.com>

> ---
>  drivers/net/e1000/base/meson.build    | 3 +++
>  drivers/net/fm10k/base/meson.build    | 3 +++
>  drivers/net/i40e/base/meson.build     | 3 +++
>  drivers/net/ixgbe/base/meson.build    | 3 +++
>  drivers/net/octeontx/base/meson.build | 6 +++++-
>  drivers/net/sfc/base/meson.build      | 3 +++
>  drivers/net/thunderx/base/meson.build | 6 +++++-
>  7 files changed, 25 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/e1000/base/meson.build b/drivers/net/e1000/base/meson.build
> index 5e1716def..f26f24298 100644
> --- a/drivers/net/e1000/base/meson.build
> +++ b/drivers/net/e1000/base/meson.build
> @@ -25,6 +25,9 @@ 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
>  foreach flag: error_cflags
>  	if cc.has_argument(flag)
>  		c_args += flag
> diff --git a/drivers/net/fm10k/base/meson.build b/drivers/net/fm10k/base/meson.build
> index a8fc5fa8b..5525cdc82 100644
> --- a/drivers/net/fm10k/base/meson.build
> +++ b/drivers/net/fm10k/base/meson.build
> @@ -15,6 +15,9 @@ error_cflags = ['-Wno-unused-parameter', '-Wno-unused-value',
>  	'-Wno-unused-variable', '-Wno-missing-field-initializers'
>  ]
>  c_args = cflags
> +if allow_experimental_apis
> +	c_args += '-DALLOW_EXPERIMENTAL_API'
> +endif
>  foreach flag: error_cflags
>  	if cc.has_argument(flag)
>  		c_args += flag
> diff --git a/drivers/net/i40e/base/meson.build b/drivers/net/i40e/base/meson.build
> index e6163eaa6..d4c8f872d 100644
> --- a/drivers/net/i40e/base/meson.build
> +++ b/drivers/net/i40e/base/meson.build
> @@ -16,6 +16,9 @@ error_cflags = ['-Wno-sign-compare', '-Wno-unused-value',
>  		'-Wno-strict-aliasing', '-Wno-unused-but-set-variable'
>  ]
>  c_args = cflags
> +if allow_experimental_apis
> +	c_args += '-DALLOW_EXPERIMENTAL_API'
> +endif
>  foreach flag: error_cflags
>  	if cc.has_argument(flag)
>  		c_args += flag
> diff --git a/drivers/net/ixgbe/base/meson.build b/drivers/net/ixgbe/base/meson.build
> index 3147e1101..21ac64bf5 100644
> --- a/drivers/net/ixgbe/base/meson.build
> +++ b/drivers/net/ixgbe/base/meson.build
> @@ -20,6 +20,9 @@ sources = [
>  error_cflags = ['-Wno-unused-value',
>  		'-Wno-unused-but-set-variable']
>  c_args = cflags
> +if allow_experimental_apis
> +	c_args += '-DALLOW_EXPERIMENTAL_API'
> +endif
>  foreach flag: error_cflags
>  	if cc.has_argument(flag)
>  		c_args += flag
> diff --git a/drivers/net/octeontx/base/meson.build b/drivers/net/octeontx/base/meson.build
> index 09f657abb..a06a2c89c 100644
> --- a/drivers/net/octeontx/base/meson.build
> +++ b/drivers/net/octeontx/base/meson.build
> @@ -13,8 +13,12 @@ foreach d: depends
>  	static_objs += [get_variable('static_rte_' + d)]
>  endforeach
>  
> +c_args = cflags
> +if allow_experimental_apis
> +	c_args += '-DALLOW_EXPERIMENTAL_API'
> +endif
>  base_lib = static_library('octeontx_base', sources,
> -	c_args: cflags,
> +	c_args: c_args,
>  	dependencies: static_objs,
>  )
>  
> diff --git a/drivers/net/sfc/base/meson.build b/drivers/net/sfc/base/meson.build
> index da2bf44d8..ab66f32f9 100644
> --- a/drivers/net/sfc/base/meson.build
> +++ b/drivers/net/sfc/base/meson.build
> @@ -58,6 +58,9 @@ extra_flags = [
>  ]
>  
>  c_args = cflags
> +if allow_experimental_apis
> +	c_args += '-DALLOW_EXPERIMENTAL_API'
> +endif
>  foreach flag: extra_flags
>  	if cc.has_argument(flag)
>  		c_args += flag
> diff --git a/drivers/net/thunderx/base/meson.build b/drivers/net/thunderx/base/meson.build
> index c9d5a8f4e..bf4e8608a 100644
> --- a/drivers/net/thunderx/base/meson.build
> +++ b/drivers/net/thunderx/base/meson.build
> @@ -7,8 +7,12 @@ sources = [
>  	'nicvf_bsvf.c'
>  ]
>  
> +c_args = cflags
> +if allow_experimental_apis
> +	c_args += '-DALLOW_EXPERIMENTAL_API'
> +endif
>  base_lib = static_library('nicvf_base', sources,
> -	c_args: cflags,
> +	c_args: c_args,
>  	dependencies: static_rte_ethdev
>  )
>  
>
  
Ilya Maximets Sept. 3, 2018, 2:52 p.m. UTC | #3
On 03.09.2018 17:41, Ilya Maximets wrote:
> On 31.08.2018 16:35, Bruce Richardson wrote:
>> The driver setting of "allow_experimental_apis" was not being used when
>> building the base code. To allow this we can manually put in a check
>> in the base code files for the setting and set the appropriate cflag
>> if it's needed.
>>
>> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
> 
> Tested-by: Ilya Maximets <i.maximets@samsung.com>
> 
>> ---
>>  drivers/net/e1000/base/meson.build    | 3 +++
>>  drivers/net/fm10k/base/meson.build    | 3 +++
>>  drivers/net/i40e/base/meson.build     | 3 +++
>>  drivers/net/ixgbe/base/meson.build    | 3 +++
>>  drivers/net/octeontx/base/meson.build | 6 +++++-
>>  drivers/net/sfc/base/meson.build      | 3 +++
>>  drivers/net/thunderx/base/meson.build | 6 +++++-
>>  7 files changed, 25 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/net/e1000/base/meson.build b/drivers/net/e1000/base/meson.build
>> index 5e1716def..f26f24298 100644
>> --- a/drivers/net/e1000/base/meson.build
>> +++ b/drivers/net/e1000/base/meson.build
>> @@ -25,6 +25,9 @@ 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
>>  foreach flag: error_cflags
>>  	if cc.has_argument(flag)
>>  		c_args += flag
>> diff --git a/drivers/net/fm10k/base/meson.build b/drivers/net/fm10k/base/meson.build
>> index a8fc5fa8b..5525cdc82 100644
>> --- a/drivers/net/fm10k/base/meson.build
>> +++ b/drivers/net/fm10k/base/meson.build
>> @@ -15,6 +15,9 @@ error_cflags = ['-Wno-unused-parameter', '-Wno-unused-value',
>>  	'-Wno-unused-variable', '-Wno-missing-field-initializers'
>>  ]
>>  c_args = cflags
>> +if allow_experimental_apis
>> +	c_args += '-DALLOW_EXPERIMENTAL_API'
>> +endif
>>  foreach flag: error_cflags
>>  	if cc.has_argument(flag)
>>  		c_args += flag
>> diff --git a/drivers/net/i40e/base/meson.build b/drivers/net/i40e/base/meson.build
>> index e6163eaa6..d4c8f872d 100644
>> --- a/drivers/net/i40e/base/meson.build
>> +++ b/drivers/net/i40e/base/meson.build
>> @@ -16,6 +16,9 @@ error_cflags = ['-Wno-sign-compare', '-Wno-unused-value',
>>  		'-Wno-strict-aliasing', '-Wno-unused-but-set-variable'

Actually, "-Wno-unused-but-set-variable" part is missing on master, so
the patch could not be applied cleanly. I tested it after removing this
flag from the patch to make it applicable.

>>  ]
>>  c_args = cflags
>> +if allow_experimental_apis
>> +	c_args += '-DALLOW_EXPERIMENTAL_API'
>> +endif
>>  foreach flag: error_cflags
>>  	if cc.has_argument(flag)
>>  		c_args += flag
>> diff --git a/drivers/net/ixgbe/base/meson.build b/drivers/net/ixgbe/base/meson.build
>> index 3147e1101..21ac64bf5 100644
>> --- a/drivers/net/ixgbe/base/meson.build
>> +++ b/drivers/net/ixgbe/base/meson.build
>> @@ -20,6 +20,9 @@ sources = [
>>  error_cflags = ['-Wno-unused-value',
>>  		'-Wno-unused-but-set-variable']
>>  c_args = cflags
>> +if allow_experimental_apis
>> +	c_args += '-DALLOW_EXPERIMENTAL_API'
>> +endif
>>  foreach flag: error_cflags
>>  	if cc.has_argument(flag)
>>  		c_args += flag
>> diff --git a/drivers/net/octeontx/base/meson.build b/drivers/net/octeontx/base/meson.build
>> index 09f657abb..a06a2c89c 100644
>> --- a/drivers/net/octeontx/base/meson.build
>> +++ b/drivers/net/octeontx/base/meson.build
>> @@ -13,8 +13,12 @@ foreach d: depends
>>  	static_objs += [get_variable('static_rte_' + d)]
>>  endforeach
>>  
>> +c_args = cflags
>> +if allow_experimental_apis
>> +	c_args += '-DALLOW_EXPERIMENTAL_API'
>> +endif
>>  base_lib = static_library('octeontx_base', sources,
>> -	c_args: cflags,
>> +	c_args: c_args,
>>  	dependencies: static_objs,
>>  )
>>  
>> diff --git a/drivers/net/sfc/base/meson.build b/drivers/net/sfc/base/meson.build
>> index da2bf44d8..ab66f32f9 100644
>> --- a/drivers/net/sfc/base/meson.build
>> +++ b/drivers/net/sfc/base/meson.build
>> @@ -58,6 +58,9 @@ extra_flags = [
>>  ]
>>  
>>  c_args = cflags
>> +if allow_experimental_apis
>> +	c_args += '-DALLOW_EXPERIMENTAL_API'
>> +endif
>>  foreach flag: extra_flags
>>  	if cc.has_argument(flag)
>>  		c_args += flag
>> diff --git a/drivers/net/thunderx/base/meson.build b/drivers/net/thunderx/base/meson.build
>> index c9d5a8f4e..bf4e8608a 100644
>> --- a/drivers/net/thunderx/base/meson.build
>> +++ b/drivers/net/thunderx/base/meson.build
>> @@ -7,8 +7,12 @@ sources = [
>>  	'nicvf_bsvf.c'
>>  ]
>>  
>> +c_args = cflags
>> +if allow_experimental_apis
>> +	c_args += '-DALLOW_EXPERIMENTAL_API'
>> +endif
>>  base_lib = static_library('nicvf_base', sources,
>> -	c_args: cflags,
>> +	c_args: c_args,
>>  	dependencies: static_rte_ethdev
>>  )
>>  
>>
> 
>
  
Bruce Richardson Sept. 3, 2018, 3:02 p.m. UTC | #4
On Mon, Sep 03, 2018 at 05:52:58PM +0300, Ilya Maximets wrote:
> On 03.09.2018 17:41, Ilya Maximets wrote:
> > On 31.08.2018 16:35, Bruce Richardson wrote:
> >> The driver setting of "allow_experimental_apis" was not being used when
> >> building the base code. To allow this we can manually put in a check
> >> in the base code files for the setting and set the appropriate cflag
> >> if it's needed.
> >>
> >> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
> > 
> > Tested-by: Ilya Maximets <i.maximets@samsung.com>
> > 
> >> ---
> >>  drivers/net/e1000/base/meson.build    | 3 +++
> >>  drivers/net/fm10k/base/meson.build    | 3 +++
> >>  drivers/net/i40e/base/meson.build     | 3 +++
> >>  drivers/net/ixgbe/base/meson.build    | 3 +++
> >>  drivers/net/octeontx/base/meson.build | 6 +++++-
> >>  drivers/net/sfc/base/meson.build      | 3 +++
> >>  drivers/net/thunderx/base/meson.build | 6 +++++-
> >>  7 files changed, 25 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/drivers/net/e1000/base/meson.build b/drivers/net/e1000/base/meson.build
> >> index 5e1716def..f26f24298 100644
> >> --- a/drivers/net/e1000/base/meson.build
> >> +++ b/drivers/net/e1000/base/meson.build
> >> @@ -25,6 +25,9 @@ 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
> >>  foreach flag: error_cflags
> >>  	if cc.has_argument(flag)
> >>  		c_args += flag
> >> diff --git a/drivers/net/fm10k/base/meson.build b/drivers/net/fm10k/base/meson.build
> >> index a8fc5fa8b..5525cdc82 100644
> >> --- a/drivers/net/fm10k/base/meson.build
> >> +++ b/drivers/net/fm10k/base/meson.build
> >> @@ -15,6 +15,9 @@ error_cflags = ['-Wno-unused-parameter', '-Wno-unused-value',
> >>  	'-Wno-unused-variable', '-Wno-missing-field-initializers'
> >>  ]
> >>  c_args = cflags
> >> +if allow_experimental_apis
> >> +	c_args += '-DALLOW_EXPERIMENTAL_API'
> >> +endif
> >>  foreach flag: error_cflags
> >>  	if cc.has_argument(flag)
> >>  		c_args += flag
> >> diff --git a/drivers/net/i40e/base/meson.build b/drivers/net/i40e/base/meson.build
> >> index e6163eaa6..d4c8f872d 100644
> >> --- a/drivers/net/i40e/base/meson.build
> >> +++ b/drivers/net/i40e/base/meson.build
> >> @@ -16,6 +16,9 @@ error_cflags = ['-Wno-sign-compare', '-Wno-unused-value',
> >>  		'-Wno-strict-aliasing', '-Wno-unused-but-set-variable'
> 
> Actually, "-Wno-unused-but-set-variable" part is missing on master, so
> the patch could not be applied cleanly. I tested it after removing this
> flag from the patch to make it applicable.
> 
Ok, could be. I was testing applying a few other meson patches - such as
those from Luca - earlier. I think this should apply ok on top of those
other sets.

/Bruce
  
Ferruh Yigit Sept. 19, 2018, 5:29 p.m. UTC | #5
On 9/3/2018 3:41 PM, Ilya Maximets wrote:
> On 31.08.2018 16:35, Bruce Richardson wrote:
>> The driver setting of "allow_experimental_apis" was not being used when
>> building the base code. To allow this we can manually put in a check
>> in the base code files for the setting and set the appropriate cflag
>> if it's needed.
>>
>> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
> 
> Tested-by: Ilya Maximets <i.maximets@samsung.com>

Applied to dpdk-next-net/master, thanks.
  

Patch

diff --git a/drivers/net/e1000/base/meson.build b/drivers/net/e1000/base/meson.build
index 5e1716def..f26f24298 100644
--- a/drivers/net/e1000/base/meson.build
+++ b/drivers/net/e1000/base/meson.build
@@ -25,6 +25,9 @@  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
 foreach flag: error_cflags
 	if cc.has_argument(flag)
 		c_args += flag
diff --git a/drivers/net/fm10k/base/meson.build b/drivers/net/fm10k/base/meson.build
index a8fc5fa8b..5525cdc82 100644
--- a/drivers/net/fm10k/base/meson.build
+++ b/drivers/net/fm10k/base/meson.build
@@ -15,6 +15,9 @@  error_cflags = ['-Wno-unused-parameter', '-Wno-unused-value',
 	'-Wno-unused-variable', '-Wno-missing-field-initializers'
 ]
 c_args = cflags
+if allow_experimental_apis
+	c_args += '-DALLOW_EXPERIMENTAL_API'
+endif
 foreach flag: error_cflags
 	if cc.has_argument(flag)
 		c_args += flag
diff --git a/drivers/net/i40e/base/meson.build b/drivers/net/i40e/base/meson.build
index e6163eaa6..d4c8f872d 100644
--- a/drivers/net/i40e/base/meson.build
+++ b/drivers/net/i40e/base/meson.build
@@ -16,6 +16,9 @@  error_cflags = ['-Wno-sign-compare', '-Wno-unused-value',
 		'-Wno-strict-aliasing', '-Wno-unused-but-set-variable'
 ]
 c_args = cflags
+if allow_experimental_apis
+	c_args += '-DALLOW_EXPERIMENTAL_API'
+endif
 foreach flag: error_cflags
 	if cc.has_argument(flag)
 		c_args += flag
diff --git a/drivers/net/ixgbe/base/meson.build b/drivers/net/ixgbe/base/meson.build
index 3147e1101..21ac64bf5 100644
--- a/drivers/net/ixgbe/base/meson.build
+++ b/drivers/net/ixgbe/base/meson.build
@@ -20,6 +20,9 @@  sources = [
 error_cflags = ['-Wno-unused-value',
 		'-Wno-unused-but-set-variable']
 c_args = cflags
+if allow_experimental_apis
+	c_args += '-DALLOW_EXPERIMENTAL_API'
+endif
 foreach flag: error_cflags
 	if cc.has_argument(flag)
 		c_args += flag
diff --git a/drivers/net/octeontx/base/meson.build b/drivers/net/octeontx/base/meson.build
index 09f657abb..a06a2c89c 100644
--- a/drivers/net/octeontx/base/meson.build
+++ b/drivers/net/octeontx/base/meson.build
@@ -13,8 +13,12 @@  foreach d: depends
 	static_objs += [get_variable('static_rte_' + d)]
 endforeach
 
+c_args = cflags
+if allow_experimental_apis
+	c_args += '-DALLOW_EXPERIMENTAL_API'
+endif
 base_lib = static_library('octeontx_base', sources,
-	c_args: cflags,
+	c_args: c_args,
 	dependencies: static_objs,
 )
 
diff --git a/drivers/net/sfc/base/meson.build b/drivers/net/sfc/base/meson.build
index da2bf44d8..ab66f32f9 100644
--- a/drivers/net/sfc/base/meson.build
+++ b/drivers/net/sfc/base/meson.build
@@ -58,6 +58,9 @@  extra_flags = [
 ]
 
 c_args = cflags
+if allow_experimental_apis
+	c_args += '-DALLOW_EXPERIMENTAL_API'
+endif
 foreach flag: extra_flags
 	if cc.has_argument(flag)
 		c_args += flag
diff --git a/drivers/net/thunderx/base/meson.build b/drivers/net/thunderx/base/meson.build
index c9d5a8f4e..bf4e8608a 100644
--- a/drivers/net/thunderx/base/meson.build
+++ b/drivers/net/thunderx/base/meson.build
@@ -7,8 +7,12 @@  sources = [
 	'nicvf_bsvf.c'
 ]
 
+c_args = cflags
+if allow_experimental_apis
+	c_args += '-DALLOW_EXPERIMENTAL_API'
+endif
 base_lib = static_library('nicvf_base', sources,
-	c_args: cflags,
+	c_args: c_args,
 	dependencies: static_rte_ethdev
 )