[v2,1/3] crypto/aesni_gcm: add dependency version check

Message ID 20190423154357.29877-2-bruce.richardson@intel.com (mailing list archive)
State Accepted, archived
Delegated to: akhil goyal
Headers
Series improve IPsec_MB dependency checks |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK
ci/mellanox-Performance-Testing success Performance Testing PASS
ci/intel-Performance-Testing success Performance Testing PASS

Commit Message

Bruce Richardson April 23, 2019, 3:43 p.m. UTC
  The aesni_mb driver and the aesni_gcm driver both require the same version
of the IPSec_MB library, but only the former has a check of the library
found by meson to see if it's the correct version. Add a similar check to
the aesni_gcm library's meson.build file, so that the auto-detection of
dependencies works correctly.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
---
 drivers/crypto/aesni_gcm/meson.build | 11 +++++++++++
 1 file changed, 11 insertions(+)
  

Comments

De Lara Guarch, Pablo April 24, 2019, 7:53 a.m. UTC | #1
> -----Original Message-----
> From: Richardson, Bruce
> Sent: Tuesday, April 23, 2019 4:44 PM
> To: De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>; dev@dpdk.org
> Cc: Richardson, Bruce <bruce.richardson@intel.com>
> Subject: [PATCH v2 1/3] crypto/aesni_gcm: add dependency version check
> 
> The aesni_mb driver and the aesni_gcm driver both require the same version
> of the IPSec_MB library, but only the former has a check of the library found
> by meson to see if it's the correct version. Add a similar check to the
> aesni_gcm library's meson.build file, so that the auto-detection of
> dependencies works correctly.
> 
> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>

Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
  
Luca Boccassi April 24, 2019, 9:19 a.m. UTC | #2
On Tue, 2019-04-23 at 16:43 +0100, Bruce Richardson wrote:
> The aesni_mb driver and the aesni_gcm driver both require the same
> version
> of the IPSec_MB library, but only the former has a check of the
> library
> found by meson to see if it's the correct version. Add a similar
> check to
> the aesni_gcm library's meson.build file, so that the auto-detection
> of
> dependencies works correctly.
> 
> Signed-off-by: Bruce Richardson <
> bruce.richardson@intel.com
> >
> ---
>  drivers/crypto/aesni_gcm/meson.build | 11 +++++++++++
>  1 file changed, 11 insertions(+)
> 
> diff --git a/drivers/crypto/aesni_gcm/meson.build
> b/drivers/crypto/aesni_gcm/meson.build
> index 70f57ad73..7183cfcba 100644
> --- a/drivers/crypto/aesni_gcm/meson.build
> +++ b/drivers/crypto/aesni_gcm/meson.build
> @@ -1,11 +1,22 @@
>  # SPDX-License-Identifier: BSD-3-Clause
>  # Copyright(c) 2018 Intel Corporation
>  
> +IMB_required_ver = '0.52.0'
>  lib = cc.find_library('IPSec_MB', required: false)
>  if not lib.found()
>  	build = false
>  else
>  	ext_deps += lib

Shouldn't this be moved into a new else branch after the version check?

> +
> +	# version comes with quotes, so we split based on " and take
> the middle
> +	imb_ver = cc.get_define('IMB_VERSION_STR',
> +		prefix : '#include<intel-ipsec-mb.h>').split('"')[1]
> +
> +	if (imb_ver == '') or (imb_ver.version_compare('<' +
> IMB_required_ver))
> +		message('IPSec_MB version >= @0@ is required, found
> version @1@'.format(
> +				IMB_required_ver, imb_ver))
> +		build = false
> +	endif
>  endif
>  
>  allow_experimental_apis = true
>
  
Bruce Richardson April 24, 2019, 10:38 a.m. UTC | #3
On Wed, Apr 24, 2019 at 10:19:20AM +0100, Luca Boccassi wrote:
> On Tue, 2019-04-23 at 16:43 +0100, Bruce Richardson wrote:
> > The aesni_mb driver and the aesni_gcm driver both require the same
> > version
> > of the IPSec_MB library, but only the former has a check of the
> > library
> > found by meson to see if it's the correct version. Add a similar
> > check to
> > the aesni_gcm library's meson.build file, so that the auto-detection
> > of
> > dependencies works correctly.
> > 
> > Signed-off-by: Bruce Richardson <
> > bruce.richardson@intel.com
> > >
> > ---
> >  drivers/crypto/aesni_gcm/meson.build | 11 +++++++++++
> >  1 file changed, 11 insertions(+)
> > 
> > diff --git a/drivers/crypto/aesni_gcm/meson.build
> > b/drivers/crypto/aesni_gcm/meson.build
> > index 70f57ad73..7183cfcba 100644
> > --- a/drivers/crypto/aesni_gcm/meson.build
> > +++ b/drivers/crypto/aesni_gcm/meson.build
> > @@ -1,11 +1,22 @@
> >  # SPDX-License-Identifier: BSD-3-Clause
> >  # Copyright(c) 2018 Intel Corporation
> >  
> > +IMB_required_ver = '0.52.0'
> >  lib = cc.find_library('IPSec_MB', required: false)
> >  if not lib.found()
> >  	build = false
> >  else
> >  	ext_deps += lib
> 
> Shouldn't this be moved into a new else branch after the version check?
> 
No, it's harmless where it is, since if build is set to false, the values
set for sources, deps etc. are all ignored and reset for building the next
driver in the list.

/Bruce
  
Luca Boccassi April 24, 2019, 10:52 a.m. UTC | #4
On Wed, 2019-04-24 at 11:38 +0100, Bruce Richardson wrote:
> On Wed, Apr 24, 2019 at 10:19:20AM +0100, Luca Boccassi wrote:
> > On Tue, 2019-04-23 at 16:43 +0100, Bruce Richardson wrote:
> > > The aesni_mb driver and the aesni_gcm driver both require the
> > > same
> > > version
> > > of the IPSec_MB library, but only the former has a check of the
> > > library
> > > found by meson to see if it's the correct version. Add a similar
> > > check to
> > > the aesni_gcm library's meson.build file, so that the auto-
> > > detection
> > > of
> > > dependencies works correctly.
> > > 
> > > Signed-off-by: Bruce Richardson <
> > > bruce.richardson@intel.com
> > > 
> > > 
> > > ---
> > >  drivers/crypto/aesni_gcm/meson.build | 11 +++++++++++
> > >  1 file changed, 11 insertions(+)
> > > 
> > > diff --git a/drivers/crypto/aesni_gcm/meson.build
> > > b/drivers/crypto/aesni_gcm/meson.build
> > > index 70f57ad73..7183cfcba 100644
> > > --- a/drivers/crypto/aesni_gcm/meson.build
> > > +++ b/drivers/crypto/aesni_gcm/meson.build
> > > @@ -1,11 +1,22 @@
> > >  # SPDX-License-Identifier: BSD-3-Clause
> > >  # Copyright(c) 2018 Intel Corporation
> > >  
> > > +IMB_required_ver = '0.52.0'
> > >  lib = cc.find_library('IPSec_MB', required: false)
> > >  if not lib.found()
> > >  	build = false
> > >  else
> > >  	ext_deps += lib
> > 
> > Shouldn't this be moved into a new else branch after the version
> > check?
> > 
> 
> No, it's harmless where it is, since if build is set to false, the
> values
> set for sources, deps etc. are all ignored and reset for building the
> next
> driver in the list.
> 
> /Bruce

Ah I see, thanks
  

Patch

diff --git a/drivers/crypto/aesni_gcm/meson.build b/drivers/crypto/aesni_gcm/meson.build
index 70f57ad73..7183cfcba 100644
--- a/drivers/crypto/aesni_gcm/meson.build
+++ b/drivers/crypto/aesni_gcm/meson.build
@@ -1,11 +1,22 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Intel Corporation
 
+IMB_required_ver = '0.52.0'
 lib = cc.find_library('IPSec_MB', required: false)
 if not lib.found()
 	build = false
 else
 	ext_deps += lib
+
+	# version comes with quotes, so we split based on " and take the middle
+	imb_ver = cc.get_define('IMB_VERSION_STR',
+		prefix : '#include<intel-ipsec-mb.h>').split('"')[1]
+
+	if (imb_ver == '') or (imb_ver.version_compare('<' + IMB_required_ver))
+		message('IPSec_MB version >= @0@ is required, found version @1@'.format(
+				IMB_required_ver, imb_ver))
+		build = false
+	endif
 endif
 
 allow_experimental_apis = true