drivers: fix gcc 10 errors due to logtype var in header
Checks
Commit Message
The zlib compression driver, as well as the aesni-gcm, aesni-mb and openssl
crypto drivers all defined the logtype variable in the header file
directly. This gives errors with gcc 10, due to -fno-common being the
default, so we need to apply the same fix in all cases:
* move the variable definition to a suitable .c file
* mark the forward declaration of the variable in the header as "extern"
Fixes: 0c4e4c16b004 ("compress/zlib: introduce zlib PMD")
Cc: ashish.gupta@caviumnetworks.com
Fixes: 90c8a2d02a31 ("crypto/aesni_gcm: add dynamic logging")
Cc: tallurix.chaitanya.babu@intel.com
Fixes: 276624ae2ef6 ("crypto/aesni_mb: add dynamic logging")
Fixes: 094b2386f461 ("crypto/openssl: add dynamic logging")
Cc: naga.sureshx.somarowthu@intel.com
Cc: pablo.de.lara.guarch@intel.com
Cc: stable@dpdk.org
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
---
drivers/compress/zlib/zlib_pmd.c | 2 ++
drivers/compress/zlib/zlib_pmd_private.h | 2 +-
drivers/crypto/aesni_gcm/aesni_gcm_pmd.c | 2 ++
drivers/crypto/aesni_gcm/aesni_gcm_pmd_private.h | 2 +-
drivers/crypto/aesni_mb/aesni_mb_pmd_private.h | 2 +-
drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c | 2 ++
drivers/crypto/openssl/openssl_pmd_private.h | 2 +-
drivers/crypto/openssl/rte_openssl_pmd.c | 1 +
8 files changed, 11 insertions(+), 4 deletions(-)
Comments
W dniu 10.04.2020 o 19:27, Bruce Richardson pisze:
> The zlib compression driver, as well as the aesni-gcm, aesni-mb and openssl
> crypto drivers all defined the logtype variable in the header file
> directly. This gives errors with gcc 10, due to -fno-common being the
> default, so we need to apply the same fix in all cases:
> * move the variable definition to a suitable .c file
> * mark the forward declaration of the variable in the header as "extern"
>
> Fixes: 0c4e4c16b004 ("compress/zlib: introduce zlib PMD")
> Cc: ashish.gupta@caviumnetworks.com
> Fixes: 90c8a2d02a31 ("crypto/aesni_gcm: add dynamic logging")
> Cc: tallurix.chaitanya.babu@intel.com
> Fixes: 276624ae2ef6 ("crypto/aesni_mb: add dynamic logging")
> Fixes: 094b2386f461 ("crypto/openssl: add dynamic logging")
> Cc: naga.sureshx.somarowthu@intel.com
> Cc: pablo.de.lara.guarch@intel.com
> Cc: stable@dpdk.org
>
> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
> ---
> drivers/compress/zlib/zlib_pmd.c | 2 ++
> drivers/compress/zlib/zlib_pmd_private.h | 2 +-
> drivers/crypto/aesni_gcm/aesni_gcm_pmd.c | 2 ++
> drivers/crypto/aesni_gcm/aesni_gcm_pmd_private.h | 2 +-
> drivers/crypto/aesni_mb/aesni_mb_pmd_private.h | 2 +-
> drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c | 2 ++
> drivers/crypto/openssl/openssl_pmd_private.h | 2 +-
> drivers/crypto/openssl/rte_openssl_pmd.c | 1 +
> 8 files changed, 11 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/compress/zlib/zlib_pmd.c b/drivers/compress/zlib/zlib_pmd.c
> index 19f9200c2..e39be2ed8 100644
> --- a/drivers/compress/zlib/zlib_pmd.c
> +++ b/drivers/compress/zlib/zlib_pmd.c
> @@ -7,6 +7,8 @@
>
> #include "zlib_pmd_private.h"
>
> +int zlib_logtype_driver;
> +
> /** Compute next mbuf in the list, assign data buffer and length,
> * returns 0 if mbuf is NULL
> */
> diff --git a/drivers/compress/zlib/zlib_pmd_private.h b/drivers/compress/zlib/zlib_pmd_private.h
> index bda49759d..e36c5dc61 100644
> --- a/drivers/compress/zlib/zlib_pmd_private.h
> +++ b/drivers/compress/zlib/zlib_pmd_private.h
> @@ -14,7 +14,7 @@
>
> #define DEF_MEM_LEVEL 8
>
> -int zlib_logtype_driver;
> +extern int zlib_logtype_driver;
> #define ZLIB_PMD_LOG(level, fmt, args...) \
> rte_log(RTE_LOG_ ## level, zlib_logtype_driver, "%s(): "fmt "\n", \
> __func__, ##args)
> diff --git a/drivers/crypto/aesni_gcm/aesni_gcm_pmd.c b/drivers/crypto/aesni_gcm/aesni_gcm_pmd.c
> index a1caab993..475d523ae 100644
> --- a/drivers/crypto/aesni_gcm/aesni_gcm_pmd.c
> +++ b/drivers/crypto/aesni_gcm/aesni_gcm_pmd.c
> @@ -13,6 +13,8 @@
>
> #include "aesni_gcm_pmd_private.h"
>
> +int aesni_gcm_logtype_driver;
> +
> static uint8_t cryptodev_driver_id;
>
> /* setup session handlers */
> diff --git a/drivers/crypto/aesni_gcm/aesni_gcm_pmd_private.h b/drivers/crypto/aesni_gcm/aesni_gcm_pmd_private.h
> index 080d4f7e4..2763d1c49 100644
> --- a/drivers/crypto/aesni_gcm/aesni_gcm_pmd_private.h
> +++ b/drivers/crypto/aesni_gcm/aesni_gcm_pmd_private.h
> @@ -20,7 +20,7 @@
> /**< AES-NI GCM PMD device name */
>
> /** AES-NI GCM PMD LOGTYPE DRIVER */
> -int aesni_gcm_logtype_driver;
> +extern int aesni_gcm_logtype_driver;
> #define AESNI_GCM_LOG(level, fmt, ...) \
> rte_log(RTE_LOG_ ## level, aesni_gcm_logtype_driver, \
> "%s() line %u: "fmt "\n", __func__, __LINE__, \
> diff --git a/drivers/crypto/aesni_mb/aesni_mb_pmd_private.h b/drivers/crypto/aesni_mb/aesni_mb_pmd_private.h
> index 3456693c2..b3cb2f1cf 100644
> --- a/drivers/crypto/aesni_mb/aesni_mb_pmd_private.h
> +++ b/drivers/crypto/aesni_mb/aesni_mb_pmd_private.h
> @@ -19,7 +19,7 @@ enum aesni_mb_vector_mode {
> /**< AES-NI Multi buffer PMD device name */
>
> /** AESNI_MB PMD LOGTYPE DRIVER */
> -int aesni_mb_logtype_driver;
> +extern int aesni_mb_logtype_driver;
>
> #define AESNI_MB_LOG(level, fmt, ...) \
> rte_log(RTE_LOG_ ## level, aesni_mb_logtype_driver, \
> diff --git a/drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c b/drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c
> index 33f416745..40feae3c6 100644
> --- a/drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c
> +++ b/drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c
> @@ -14,6 +14,8 @@
>
> #include "aesni_mb_pmd_private.h"
>
> +int aesni_mb_logtype_driver;
> +
> #define AES_CCM_DIGEST_MIN_LEN 4
> #define AES_CCM_DIGEST_MAX_LEN 16
> #define HMAC_MAX_BLOCK_SIZE 128
> diff --git a/drivers/crypto/openssl/openssl_pmd_private.h b/drivers/crypto/openssl/openssl_pmd_private.h
> index 43ac3813d..b2054b375 100644
> --- a/drivers/crypto/openssl/openssl_pmd_private.h
> +++ b/drivers/crypto/openssl/openssl_pmd_private.h
> @@ -16,7 +16,7 @@
> /**< Open SSL Crypto PMD device name */
>
> /** OPENSSL PMD LOGTYPE DRIVER */
> -int openssl_logtype_driver;
> +extern int openssl_logtype_driver;
> #define OPENSSL_LOG(level, fmt, ...) \
> rte_log(RTE_LOG_ ## level, openssl_logtype_driver, \
> "%s() line %u: " fmt "\n", __func__, __LINE__, \
> diff --git a/drivers/crypto/openssl/rte_openssl_pmd.c b/drivers/crypto/openssl/rte_openssl_pmd.c
> index 199097bf8..b820f6171 100644
> --- a/drivers/crypto/openssl/rte_openssl_pmd.c
> +++ b/drivers/crypto/openssl/rte_openssl_pmd.c
> @@ -18,6 +18,7 @@
>
> #define DES_BLOCK_SIZE 8
>
> +int openssl_logtype_driver;
> static uint8_t cryptodev_driver_id;
>
> #if (OPENSSL_VERSION_NUMBER < 0x10100000L)
Patch looks good. I added myself one more as a follow up, that fixes 4
more drivers. It's up to you if you want to squash them together.
Acked-by: Lukasz Wojciechowski <l.wojciechow@partner.samsung.com>
On Wed, Apr 15, 2020 at 08:29:16AM +0200, Lukasz Wojciechowski wrote:
>
> W dniu 10.04.2020 o 19:27, Bruce Richardson pisze:
> > The zlib compression driver, as well as the aesni-gcm, aesni-mb and openssl
> > crypto drivers all defined the logtype variable in the header file
> > directly. This gives errors with gcc 10, due to -fno-common being the
> > default, so we need to apply the same fix in all cases:
> > * move the variable definition to a suitable .c file
> > * mark the forward declaration of the variable in the header as "extern"
> >
> > Fixes: 0c4e4c16b004 ("compress/zlib: introduce zlib PMD")
> > Cc: ashish.gupta@caviumnetworks.com
> > Fixes: 90c8a2d02a31 ("crypto/aesni_gcm: add dynamic logging")
> > Cc: tallurix.chaitanya.babu@intel.com
> > Fixes: 276624ae2ef6 ("crypto/aesni_mb: add dynamic logging")
> > Fixes: 094b2386f461 ("crypto/openssl: add dynamic logging")
> > Cc: naga.sureshx.somarowthu@intel.com
> > Cc: pablo.de.lara.guarch@intel.com
> > Cc: stable@dpdk.org
> >
> > Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
> > ---
> > drivers/compress/zlib/zlib_pmd.c | 2 ++
> > drivers/compress/zlib/zlib_pmd_private.h | 2 +-
> > drivers/crypto/aesni_gcm/aesni_gcm_pmd.c | 2 ++
> > drivers/crypto/aesni_gcm/aesni_gcm_pmd_private.h | 2 +-
> > drivers/crypto/aesni_mb/aesni_mb_pmd_private.h | 2 +-
> > drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c | 2 ++
> > drivers/crypto/openssl/openssl_pmd_private.h | 2 +-
> > drivers/crypto/openssl/rte_openssl_pmd.c | 1 +
> > 8 files changed, 11 insertions(+), 4 deletions(-)
> >
> > diff --git a/drivers/compress/zlib/zlib_pmd.c b/drivers/compress/zlib/zlib_pmd.c
> > index 19f9200c2..e39be2ed8 100644
> > --- a/drivers/compress/zlib/zlib_pmd.c
> > +++ b/drivers/compress/zlib/zlib_pmd.c
> > @@ -7,6 +7,8 @@
> >
> > #include "zlib_pmd_private.h"
> >
> > +int zlib_logtype_driver;
> > +
> > /** Compute next mbuf in the list, assign data buffer and length,
> > * returns 0 if mbuf is NULL
> > */
> > diff --git a/drivers/compress/zlib/zlib_pmd_private.h b/drivers/compress/zlib/zlib_pmd_private.h
> > index bda49759d..e36c5dc61 100644
> > --- a/drivers/compress/zlib/zlib_pmd_private.h
> > +++ b/drivers/compress/zlib/zlib_pmd_private.h
> > @@ -14,7 +14,7 @@
> >
> > #define DEF_MEM_LEVEL 8
> >
> > -int zlib_logtype_driver;
> > +extern int zlib_logtype_driver;
> > #define ZLIB_PMD_LOG(level, fmt, args...) \
> > rte_log(RTE_LOG_ ## level, zlib_logtype_driver, "%s(): "fmt "\n", \
> > __func__, ##args)
> > diff --git a/drivers/crypto/aesni_gcm/aesni_gcm_pmd.c b/drivers/crypto/aesni_gcm/aesni_gcm_pmd.c
> > index a1caab993..475d523ae 100644
> > --- a/drivers/crypto/aesni_gcm/aesni_gcm_pmd.c
> > +++ b/drivers/crypto/aesni_gcm/aesni_gcm_pmd.c
> > @@ -13,6 +13,8 @@
> >
> > #include "aesni_gcm_pmd_private.h"
> >
> > +int aesni_gcm_logtype_driver;
> > +
> > static uint8_t cryptodev_driver_id;
> >
> > /* setup session handlers */
> > diff --git a/drivers/crypto/aesni_gcm/aesni_gcm_pmd_private.h b/drivers/crypto/aesni_gcm/aesni_gcm_pmd_private.h
> > index 080d4f7e4..2763d1c49 100644
> > --- a/drivers/crypto/aesni_gcm/aesni_gcm_pmd_private.h
> > +++ b/drivers/crypto/aesni_gcm/aesni_gcm_pmd_private.h
> > @@ -20,7 +20,7 @@
> > /**< AES-NI GCM PMD device name */
> >
> > /** AES-NI GCM PMD LOGTYPE DRIVER */
> > -int aesni_gcm_logtype_driver;
> > +extern int aesni_gcm_logtype_driver;
> > #define AESNI_GCM_LOG(level, fmt, ...) \
> > rte_log(RTE_LOG_ ## level, aesni_gcm_logtype_driver, \
> > "%s() line %u: "fmt "\n", __func__, __LINE__, \
> > diff --git a/drivers/crypto/aesni_mb/aesni_mb_pmd_private.h b/drivers/crypto/aesni_mb/aesni_mb_pmd_private.h
> > index 3456693c2..b3cb2f1cf 100644
> > --- a/drivers/crypto/aesni_mb/aesni_mb_pmd_private.h
> > +++ b/drivers/crypto/aesni_mb/aesni_mb_pmd_private.h
> > @@ -19,7 +19,7 @@ enum aesni_mb_vector_mode {
> > /**< AES-NI Multi buffer PMD device name */
> >
> > /** AESNI_MB PMD LOGTYPE DRIVER */
> > -int aesni_mb_logtype_driver;
> > +extern int aesni_mb_logtype_driver;
> >
> > #define AESNI_MB_LOG(level, fmt, ...) \
> > rte_log(RTE_LOG_ ## level, aesni_mb_logtype_driver, \
> > diff --git a/drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c b/drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c
> > index 33f416745..40feae3c6 100644
> > --- a/drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c
> > +++ b/drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c
> > @@ -14,6 +14,8 @@
> >
> > #include "aesni_mb_pmd_private.h"
> >
> > +int aesni_mb_logtype_driver;
> > +
> > #define AES_CCM_DIGEST_MIN_LEN 4
> > #define AES_CCM_DIGEST_MAX_LEN 16
> > #define HMAC_MAX_BLOCK_SIZE 128
> > diff --git a/drivers/crypto/openssl/openssl_pmd_private.h b/drivers/crypto/openssl/openssl_pmd_private.h
> > index 43ac3813d..b2054b375 100644
> > --- a/drivers/crypto/openssl/openssl_pmd_private.h
> > +++ b/drivers/crypto/openssl/openssl_pmd_private.h
> > @@ -16,7 +16,7 @@
> > /**< Open SSL Crypto PMD device name */
> >
> > /** OPENSSL PMD LOGTYPE DRIVER */
> > -int openssl_logtype_driver;
> > +extern int openssl_logtype_driver;
> > #define OPENSSL_LOG(level, fmt, ...) \
> > rte_log(RTE_LOG_ ## level, openssl_logtype_driver, \
> > "%s() line %u: " fmt "\n", __func__, __LINE__, \
> > diff --git a/drivers/crypto/openssl/rte_openssl_pmd.c b/drivers/crypto/openssl/rte_openssl_pmd.c
> > index 199097bf8..b820f6171 100644
> > --- a/drivers/crypto/openssl/rte_openssl_pmd.c
> > +++ b/drivers/crypto/openssl/rte_openssl_pmd.c
> > @@ -18,6 +18,7 @@
> >
> > #define DES_BLOCK_SIZE 8
> >
> > +int openssl_logtype_driver;
> > static uint8_t cryptodev_driver_id;
> >
> > #if (OPENSSL_VERSION_NUMBER < 0x10100000L)
>
> Patch looks good. I added myself one more as a follow up, that fixes 4
> more drivers. It's up to you if you want to squash them together.
>
Thanks Lukasz, I missed those on my system as my IPSec library version was
too old to have them compile.
>
> Acked-by: Lukasz Wojciechowski <l.wojciechow@partner.samsung.com>
>
> --
>
> Lukasz Wojciechowski
> Principal Software Engineer
>
> Samsung R&D Institute Poland
> Samsung Electronics
> Office +48 22 377 88 25
> l.wojciechow@partner.samsung.com
>
> >
> > Acked-by: Lukasz Wojciechowski <l.wojciechow@partner.samsung.com>
> >
> > --
Applied to dpdk-next-crypto
Thanks.
@@ -7,6 +7,8 @@
#include "zlib_pmd_private.h"
+int zlib_logtype_driver;
+
/** Compute next mbuf in the list, assign data buffer and length,
* returns 0 if mbuf is NULL
*/
@@ -14,7 +14,7 @@
#define DEF_MEM_LEVEL 8
-int zlib_logtype_driver;
+extern int zlib_logtype_driver;
#define ZLIB_PMD_LOG(level, fmt, args...) \
rte_log(RTE_LOG_ ## level, zlib_logtype_driver, "%s(): "fmt "\n", \
__func__, ##args)
@@ -13,6 +13,8 @@
#include "aesni_gcm_pmd_private.h"
+int aesni_gcm_logtype_driver;
+
static uint8_t cryptodev_driver_id;
/* setup session handlers */
@@ -20,7 +20,7 @@
/**< AES-NI GCM PMD device name */
/** AES-NI GCM PMD LOGTYPE DRIVER */
-int aesni_gcm_logtype_driver;
+extern int aesni_gcm_logtype_driver;
#define AESNI_GCM_LOG(level, fmt, ...) \
rte_log(RTE_LOG_ ## level, aesni_gcm_logtype_driver, \
"%s() line %u: "fmt "\n", __func__, __LINE__, \
@@ -19,7 +19,7 @@ enum aesni_mb_vector_mode {
/**< AES-NI Multi buffer PMD device name */
/** AESNI_MB PMD LOGTYPE DRIVER */
-int aesni_mb_logtype_driver;
+extern int aesni_mb_logtype_driver;
#define AESNI_MB_LOG(level, fmt, ...) \
rte_log(RTE_LOG_ ## level, aesni_mb_logtype_driver, \
@@ -14,6 +14,8 @@
#include "aesni_mb_pmd_private.h"
+int aesni_mb_logtype_driver;
+
#define AES_CCM_DIGEST_MIN_LEN 4
#define AES_CCM_DIGEST_MAX_LEN 16
#define HMAC_MAX_BLOCK_SIZE 128
@@ -16,7 +16,7 @@
/**< Open SSL Crypto PMD device name */
/** OPENSSL PMD LOGTYPE DRIVER */
-int openssl_logtype_driver;
+extern int openssl_logtype_driver;
#define OPENSSL_LOG(level, fmt, ...) \
rte_log(RTE_LOG_ ## level, openssl_logtype_driver, \
"%s() line %u: " fmt "\n", __func__, __LINE__, \
@@ -18,6 +18,7 @@
#define DES_BLOCK_SIZE 8
+int openssl_logtype_driver;
static uint8_t cryptodev_driver_id;
#if (OPENSSL_VERSION_NUMBER < 0x10100000L)