On 27 December 2017 at 09:59, Long, Qin <qin.l...@intel.com> wrote:
> This makes sense to me.
> Reviewed-by: Long Qin <qin.l...@intel.com>
>

Thanks. Pushed as c24d664dca26

> -----Original Message-----
> From: Ard Biesheuvel [mailto:ard.biesheu...@linaro.org]
> Sent: Wednesday, December 27, 2017 5:27 PM
> To: edk2-devel@lists.01.org; Long, Qin <qin.l...@intel.com>; Ye, Ting 
> <ting...@intel.com>
> Cc: Ard Biesheuvel <ard.biesheu...@linaro.org>
> Subject: [PATCH] CryptoPkg/OpensslLib AARCH64: disable rather than demote 
> format warning
>
> We recently added -Wno-error=format to the OpenSslLib build script to work 
> around an issue in the upstream OpenSSL code. This does not inhibit the 
> warning, but prevents it from breaking the build by not treating it as a 
> fatal error.
>
> Unfortunately, this interacts poorly with the -Wno-unused-const-variable 
> option that we added to GCC49 and later. Those versions of GCC ignore 
> -Wno-xxxx options that they don't understand, unless warnings are emitted for 
> another reason, in which case the warning is emitted after all, and in our 
> case, this breaks the build when the non-fatal format warning is emitted.
>
> CryptoPkg/Library/OpensslLib/openssl/crypto/asn1/x_int64.c: In function 
> 'uint64_print':
> CryptoPkg/Library/OpensslLib/openssl/crypto/asn1/x_int64.c:105:32: warning: 
> format '%ld' expects argument of type 'long int', but argument 3 has type 
> 'int64_t {aka long long int}' [-Wformat=]
>          return BIO_printf(out, "%"BIO_PRI64"d\n", **(int64_t **)pval);
>                                 ^
> CryptoPkg/Library/OpensslLib/openssl/crypto/asn1/x_int64.c:106:28: warning: 
> format '%lu' expects argument of type 'long unsigned int', but argument 3 has 
> type 'uint64_t {aka long long unsigned int}' [-Wformat=]
>      return BIO_printf(out, "%"BIO_PRI64"u\n", **(uint64_t **)pval);
>                             ^
> CryptoPkg/Library/OpensslLib/openssl/crypto/asn1/x_int64.c: At top level:
> cc1: error: unrecognized command line option '-Wno-unused-const-variable' 
> [-Werror]
> cc1: all warnings being treated as errors
>
> So replace -Wno-error=format with -Wno-format to suppress the warning 
> entirely.
>
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Ard Biesheuvel <ard.biesheu...@linaro.org>
> ---
>  CryptoPkg/Library/OpensslLib/OpensslLib.inf       | 6 +++---
>  CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf | 6 +++---
>  2 files changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/CryptoPkg/Library/OpensslLib/OpensslLib.inf 
> b/CryptoPkg/Library/OpensslLib/OpensslLib.inf
> index 602953eefff7..f3eb19afd34e 100644
> --- a/CryptoPkg/Library/OpensslLib/OpensslLib.inf
> +++ b/CryptoPkg/Library/OpensslLib/OpensslLib.inf
> @@ -557,10 +557,10 @@ [BuildOptions]
>    #                   types appropriate to the format string specified.
>    #
>    GCC:*_*_IA32_CC_FLAGS    = -U_WIN32 -U_WIN64 $(OPENSSL_FLAGS) 
> -Wno-error=maybe-uninitialized
> -  GCC:*_*_X64_CC_FLAGS     = -U_WIN32 -U_WIN64 $(OPENSSL_FLAGS) 
> -Wno-error=maybe-uninitialized -Wno-error=format -DNO_MSABI_VA_FUNCS
> -  GCC:*_*_IPF_CC_FLAGS     = -U_WIN32 -U_WIN64 $(OPENSSL_FLAGS) 
> -Wno-error=maybe-uninitialized -Wno-error=format
> +  GCC:*_*_X64_CC_FLAGS     = -U_WIN32 -U_WIN64 $(OPENSSL_FLAGS) 
> -Wno-error=maybe-uninitialized -Wno-format -DNO_MSABI_VA_FUNCS
> +  GCC:*_*_IPF_CC_FLAGS     = -U_WIN32 -U_WIN64 $(OPENSSL_FLAGS) 
> -Wno-error=maybe-uninitialized -Wno-format
>    GCC:*_*_ARM_CC_FLAGS     = $(OPENSSL_FLAGS)
> -  GCC:*_*_AARCH64_CC_FLAGS = $(OPENSSL_FLAGS) -Wno-error=format
> +  GCC:*_*_AARCH64_CC_FLAGS = $(OPENSSL_FLAGS) -Wno-format
>
>    # suppress the following warnings in openssl so we don't break the build 
> with warnings-as-errors:
>    # 1295: Deprecated declaration <entity> - give arg types diff --git 
> a/CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf 
> b/CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf
> index f697243f9787..88134b5b5ff3 100644
> --- a/CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf
> +++ b/CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf
> @@ -518,10 +518,10 @@ [BuildOptions]
>    #                   types appropriate to the format string specified.
>    #
>    GCC:*_*_IA32_CC_FLAGS    = -U_WIN32 -U_WIN64 $(OPENSSL_FLAGS) 
> -Wno-error=maybe-uninitialized
> -  GCC:*_*_X64_CC_FLAGS     = -U_WIN32 -U_WIN64 $(OPENSSL_FLAGS) 
> -Wno-error=maybe-uninitialized -Wno-error=format -DNO_MSABI_VA_FUNCS
> -  GCC:*_*_IPF_CC_FLAGS     = -U_WIN32 -U_WIN64 $(OPENSSL_FLAGS) 
> -Wno-error=maybe-uninitialized -Wno-error=format
> +  GCC:*_*_X64_CC_FLAGS     = -U_WIN32 -U_WIN64 $(OPENSSL_FLAGS) 
> -Wno-error=maybe-uninitialized -Wno-format -DNO_MSABI_VA_FUNCS
> +  GCC:*_*_IPF_CC_FLAGS     = -U_WIN32 -U_WIN64 $(OPENSSL_FLAGS) 
> -Wno-error=maybe-uninitialized -Wno-format
>    GCC:*_*_ARM_CC_FLAGS     = $(OPENSSL_FLAGS)
> -  GCC:*_*_AARCH64_CC_FLAGS = $(OPENSSL_FLAGS) -Wno-error=format
> +  GCC:*_*_AARCH64_CC_FLAGS = $(OPENSSL_FLAGS) -Wno-format
>
>    # suppress the following warnings in openssl so we don't break the build 
> with warnings-as-errors:
>    # 1295: Deprecated declaration <entity> - give arg types
> --
> 2.11.0
>
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to