From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=pass header.i=@linaro.org header.s=google header.b=Cvgy4Y/b; spf=pass (domain: linaro.org, ip: 209.85.128.68, mailfrom: leif.lindholm@linaro.org) Received: from mail-wm1-f68.google.com (mail-wm1-f68.google.com [209.85.128.68]) by groups.io with SMTP; Tue, 28 May 2019 01:25:07 -0700 Received: by mail-wm1-f68.google.com with SMTP id v19so1680659wmh.0 for ; Tue, 28 May 2019 01:25:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=xdCRY+GkUfEtaza7j3XdcvAP9oWL76q1Ec+NxARNNxI=; b=Cvgy4Y/bd44ArONJxw5HUgG6cNXvSa6IyP5+G84Ja16+uvHr6xVL8mCGwodUgVjxgc D/cK1PAG1HhMtHLVexiJ9nZgFJx0d+8IDV4EG0w4UFaopNK6F84+wG8lGQyQ73+L93og EjAbYB6Fen8IKLkb1cswG67KlP9AwixS2a33cp8dbViOkUgrphV0p2/hFsRbW0jgZqUW 678yUEe26emLz5pMei5H+2PBE+9hlvld+2wfgLLSIalWUcD/TliXm8zxSZwLZnF4Mshd SbGXRYAtBV+8ogQzIXJNCZ3lwEHHYyRup87B2NLNQIujlGR857umnU9d6UIOuCN9cozC 7TbQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=xdCRY+GkUfEtaza7j3XdcvAP9oWL76q1Ec+NxARNNxI=; b=Y1W2PY8C4ojWtQazgihrPyJXcQ3BOTWdYfn9VF1F8dD2JQA5dx6F9zOJnrRaC9tNUi eqwPhygemCDMDlDp/u5JdpFk0EeIE2uDBU/9G3uxfZdDdIjSaauvWf/MJpEckU3QIfQ8 t6NdtByceaMYUzs4+keKNyk++KXdRzqcwnedzQTdRWRePDnM/F0b5y30+qWo2y9BOX68 2/5ZofUlr2GIqi/d5KefLbjTFCfyXq+wwkDCXIOoPG5FZFuT7Fq45mp9ca30Z43colF9 9Dv4Qw8xttPT/XF2frmDzyJTSPPkyxnANPFkww9vfOJ9BY9XjhynoKdiR+wiIfpQ/7gW DIqg== X-Gm-Message-State: APjAAAXFLRmvawzoSzYj4hVeiCf2GQr/fST/FwlXyIPrTJ0EBIsPDyfj XSVsBBx6GmU0/fvmUOeIwKuIYQ== X-Google-Smtp-Source: APXvYqwlP3KM+wffgdAiG660yX3/e7RT1W2OUU6VHhkYgLgfBJUjtW8NIjlEtchphNWwzOjaWb+ydA== X-Received: by 2002:a1c:c016:: with SMTP id q22mr2333119wmf.6.1559031905490; Tue, 28 May 2019 01:25:05 -0700 (PDT) Return-Path: Received: from bivouac.eciton.net (bivouac.eciton.net. [2a00:1098:0:86:1000:23:0:2]) by smtp.gmail.com with ESMTPSA id s127sm1833246wmf.48.2019.05.28.01.25.04 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 28 May 2019 01:25:04 -0700 (PDT) Date: Tue, 28 May 2019 09:25:02 +0100 From: "Leif Lindholm" To: Ard Biesheuvel Cc: edk2-devel-groups-io , "Gao, Liming" , Laszlo Ersek , "Wang, Jian J" , "Kinney, Michael D" Subject: Re: [edk2-devel] [PATCH v2 6/7] BaseTools/tools_def CLANG3x ARM AARCH64: force use of C99 standard Message-ID: <20190528082502.nt2urunyn5gft7o5@bivouac.eciton.net> References: <20190527205141.12344-1-ard.biesheuvel@linaro.org> <20190527205141.12344-7-ard.biesheuvel@linaro.org> <4A89E2EF3DFEDB4C8BFDE51014F606A14E4549B5@SHSMSX104.ccr.corp.intel.com> MIME-Version: 1.0 In-Reply-To: User-Agent: NeoMutt/20170113 (1.7.2) Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Tue, May 28, 2019 at 08:10:44AM +0200, Ard Biesheuvel wrote: > On Tue, 28 May 2019 at 02:17, Liming Gao wrote: > > > > Ard: > > Is there any impact with new option? If no behavior change, I am OK for this patch. Reviewed-by: Liming Gao > > > > We don't rely on anything provided by the C11 standard, so it should > not result in a behavior change. I do wonder whether x86 may be > affected as well, though. A minor concern would be that GCC defaults to "gnu11" since (after a cursory search) 5.1, so we could be setting ourselves up for future clashes. Which is possibly fine, as long as we're aware. / Leif > Jian, did you try building OpenSSL 1.1.1b for x86 with the CLANG38 > toolchain with a recent version of Clang? > > > > > >-----Original Message----- > > >From: Ard Biesheuvel [mailto:ard.biesheuvel@linaro.org] > > >Sent: Tuesday, May 28, 2019 4:52 AM > > >To: devel@edk2.groups.io > > >Cc: Ard Biesheuvel ; Laszlo Ersek > > >; Gao, Liming ; Wang, Jian J > > >; Leif Lindholm ; Kinney, > > >Michael D > > >Subject: [PATCH v2 6/7] BaseTools/tools_def CLANG3x ARM AARCH64: force > > >use of C99 standard > > > > > >When building OpenSSL for ARM or AARCH64 with recent Clang, the following > > >error may result: > > > > > > In file included > > >from .../CryptoPkg/Library/BaseCryptLib/Pk/CryptPkcs7VerifyEku.c:18: > > > In file included > > >from .../CryptoPkg/Library/OpensslLib/openssl/crypto/include/internal/x509_ > > >int.h:10: > > > In file included > > >from .../CryptoPkg/Library/OpensslLib/openssl/include/internal/refcount.h:2 > > >1: > > > In file included from /usr/lib/llvm-7/lib/clang/7.0.1/include/stdatomic.h:35: > > > In file included from /usr/lib/llvm-7/lib/clang/7.0.1/include/stdint.h:61: > > > /usr/include/stdint.h:26:10: fatal error: 'bits/libc-header-start.h' file not > > >found > > > #include > > > ^~~~~~~~~~~~~~~~~~~~~~~~~~ > > > 1 error generated. > > > > > >This is caused by the fact that the refcount.h header includes compiler > > >headers that in turn rely on system headers, which we don't support. > > > > > >Since the C native atomics are a C11 feature, let's explicitly use the > > >C99 standard instead to work around this issue. > > > > > >Signed-off-by: Ard Biesheuvel > > >--- > > > BaseTools/Conf/tools_def.template | 8 ++++---- > > > 1 file changed, 4 insertions(+), 4 deletions(-) > > > > > >diff --git a/BaseTools/Conf/tools_def.template > > >b/BaseTools/Conf/tools_def.template > > >index 26a2cf604f74..7fe6f4406a72 100755 > > >--- a/BaseTools/Conf/tools_def.template > > >+++ b/BaseTools/Conf/tools_def.template > > >@@ -2280,8 +2280,8 @@ DEFINE CLANG35_ARM_TARGET = -target arm- > > >linux-gnueabi > > > DEFINE CLANG35_AARCH64_TARGET = -target aarch64-linux-gnu > > > > > > DEFINE CLANG35_WARNING_OVERRIDES = -Wno-parentheses-equality - > > >Wno-tautological-compare -Wno-tautological-constant-out-of-range-compare > > >-Wno-empty-body -Wno-unknown-warning-option > > >-DEFINE CLANG35_ARM_CC_FLAGS = DEF(GCC_ARM_CC_FLAGS) > > >DEF(CLANG35_ARM_TARGET) DEF(CLANG35_WARNING_OVERRIDES) > > >-DEFINE CLANG35_AARCH64_CC_FLAGS = DEF(GCC_AARCH64_CC_FLAGS) > > >DEF(CLANG35_AARCH64_TARGET) -mcmodel=small > > >DEF(CLANG35_WARNING_OVERRIDES) > > >+DEFINE CLANG35_ARM_CC_FLAGS = DEF(GCC_ARM_CC_FLAGS) > > >DEF(CLANG35_ARM_TARGET) DEF(CLANG35_WARNING_OVERRIDES) - > > >std=c99 > > >+DEFINE CLANG35_AARCH64_CC_FLAGS = DEF(GCC_AARCH64_CC_FLAGS) > > >DEF(CLANG35_AARCH64_TARGET) -mcmodel=small > > >DEF(CLANG35_WARNING_OVERRIDES) -std=c99 > > > > > > ################## > > > # CLANG35 ARM definitions > > >@@ -2430,7 +2430,7 @@ NOOPT_CLANG38_X64_DLINK2_FLAGS = > > >DEF(GCC5_X64_DLINK2_FLAGS) -O0 > > > # CLANG38 ARM definitions > > > ################## > > > DEFINE CLANG38_ARM_TARGET = -target arm-linux-gnueabi > > >-DEFINE CLANG38_ARM_CC_FLAGS = DEF(GCC_ARM_CC_FLAGS) > > >DEF(CLANG38_ARM_TARGET) DEF(CLANG38_WARNING_OVERRIDES) -mno- > > >movt > > >+DEFINE CLANG38_ARM_CC_FLAGS = DEF(GCC_ARM_CC_FLAGS) > > >DEF(CLANG38_ARM_TARGET) DEF(CLANG38_WARNING_OVERRIDES) -mno- > > >movt -std=c99 > > > DEFINE CLANG38_ARM_DLINK_FLAGS = DEF(CLANG38_ARM_TARGET) > > >DEF(GCC_ARM_DLINK_FLAGS) > > > > > > *_CLANG38_ARM_PP_FLAGS = DEF(GCC_PP_FLAGS) > > >@@ -2474,7 +2474,7 @@ RELEASE_CLANG38_ARM_DLINK_FLAGS = > > >DEF(CLANG38_ARM_DLINK_FLAGS) -flto -Wl,-O3 -L > > > # CLANG38 AARCH64 definitions > > > ################## > > > DEFINE CLANG38_AARCH64_TARGET = -target aarch64-linux-gnu > > >-DEFINE CLANG38_AARCH64_CC_FLAGS = DEF(GCC_AARCH64_CC_FLAGS) > > >DEF(CLANG38_AARCH64_TARGET) -mcmodel=small > > >DEF(CLANG38_WARNING_OVERRIDES) > > >+DEFINE CLANG38_AARCH64_CC_FLAGS = DEF(GCC_AARCH64_CC_FLAGS) > > >DEF(CLANG38_AARCH64_TARGET) -mcmodel=small > > >DEF(CLANG38_WARNING_OVERRIDES) -std=c99 > > > DEFINE CLANG38_AARCH64_DLINK_FLAGS = > > >DEF(CLANG38_AARCH64_TARGET) DEF(GCC_AARCH64_DLINK_FLAGS) -z > > >common-page-size=0x1000 > > > > > > *_CLANG38_AARCH64_PP_FLAGS = DEF(GCC_PP_FLAGS) > > >-- > > >2.20.1 > > > > > > > >