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=WzHPqxMN; spf=pass (domain: linaro.org, ip: 209.85.128.68, mailfrom: ard.biesheuvel@linaro.org) Received: from mail-wm1-f68.google.com (mail-wm1-f68.google.com [209.85.128.68]) by groups.io with SMTP; Mon, 27 May 2019 13:51:56 -0700 Received: by mail-wm1-f68.google.com with SMTP id 7so614019wmo.2 for ; Mon, 27 May 2019 13:51:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=ipIopxDlMDVNI3nT+8KkUe5WmmcMvCS4+nbAoITu5eI=; b=WzHPqxMNGvK8ifqZMxMuP3FYHM3ffCQ3T/vflQ/YV8I0RkZFqq3Q8UJN/UdnoJdCG4 hwXzPcHkmNs4rOIURVxpJGvKC1MzB0T32blCGW5ANmvZirJWABAznPKjgqK45euGKPZr uOj2zE/jfTpIANgM4rNfh4Jux/8r1IrnYZ87nc2VdN8ay72yZdspclThCGoE8dh4l7DE 0DMjPK7iQ5hLYlcwBvphJrbXQICyqCif3xxN/DAp8E1KPh6JyyGn2r+4zGP6zgtwGoeY W0wO9AarKvFFq8KpJrsIgeik/CIvsEcwKtBMCC+UVJRo6+gKV8IsMNU9AL8cA/GIZueI IXhw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=ipIopxDlMDVNI3nT+8KkUe5WmmcMvCS4+nbAoITu5eI=; b=tspyYn/JErso91NE2A10FoZjYUpTJmJn7a9DPgypcdQyuiEg2MRvw0P5NPoW+6A0rO UG2hqqU3ERaeG5hhxx+mTH5KJZyUZosJsjfQaKFQjw4w8YDqvjxeJ14AfnobdU5XmDA6 1C8w/SeH/ZuFNsKtppOMBrfBBIh+j10jiBfKedNKANtYQq+AwYxO39zgbn5ArMkCZvyM 3ou6x+abeVhNe5QN6+4RvH/Y5w15kNkeHaNSWLRdC6LlzWXQVED0KQWKtXYT68Y2hOZJ DOudwK+/ypkrA9W6ckDNciH1ULv01OdUtT3A3h9+EsYJuxO5YyG9EWpcZyyyT8IR8sEY JC2A== X-Gm-Message-State: APjAAAUARiqx9uDXnB9UZnwEwp8VxL8mkrrdSj9s+3cL7g33VtdhJdtL 7+PGtz6Umrg2buXlC/x2vdoE1vrkB8graw== X-Google-Smtp-Source: APXvYqyXK6zWckbLHmkXo8a05jaUhTwjjWBk7zzRAA0ZbXuLC/JtAOjyEOAS9fSPEFeHyz0WvQW5aw== X-Received: by 2002:a1c:f009:: with SMTP id a9mr534812wmb.110.1558990314713; Mon, 27 May 2019 13:51:54 -0700 (PDT) Return-Path: Received: from sudo.home ([2a01:cb1d:112:6f00:ccdd:dadc:1517:f416]) by smtp.gmail.com with ESMTPSA id n1sm894808wrx.39.2019.05.27.13.51.53 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 27 May 2019 13:51:54 -0700 (PDT) From: "Ard Biesheuvel" To: devel@edk2.groups.io Cc: Ard Biesheuvel , Laszlo Ersek , "Gao, Liming" , "Wang, Jian J" , Leif Lindholm , Michael D Kinney Subject: [PATCH v2 6/7] BaseTools/tools_def CLANG3x ARM AARCH64: force use of C99 standard Date: Mon, 27 May 2019 22:51:40 +0200 Message-Id: <20190527205141.12344-7-ard.biesheuvel@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190527205141.12344-1-ard.biesheuvel@linaro.org> References: <20190527205141.12344-1-ard.biesheuvel@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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:21: 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