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