Received: by 2002:a05:6a11:4021:0:0:0:0 with SMTP id ky33csp247895pxb; Mon, 13 Sep 2021 18:17:46 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyHZ7NseCB+0glgJx7fF1j+ZjNlQuIQdPajKSjOl4eK/Il+shMweYgF2Z9eXHcoWzqephRR X-Received: by 2002:a17:906:38db:: with SMTP id r27mr16031792ejd.338.1631582265952; Mon, 13 Sep 2021 18:17:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1631582265; cv=none; d=google.com; s=arc-20160816; b=irlPEAav8kFd969UcZfwLEVeRnbXq4CWzz3yRJ1Su1O1hBTM739RPWPcmnK4RS4Tbn vkVi8MJMCtkihvsRh49V8HU6dJAkbCNo9jc6TklrMJHC+miqTuxvtM73VmjDPmCZc0Up mNv/pmxm5F2Qw/qz2bhF/pH+Fq44mJ26QRJEq/LSSvyqVfN40C/ugg+HN6/ez5XnpWmP LolViX5K/8yVmM+tD7DJBg2yNZs+eBO36I3KRRikKmFzhO4h5MJwDZfm+lvQOPNFgf2J g7KaIn7lSy5ofg+9Ls7TMwFn5LH++n2Rg9KYkaUbn6bQVAaOvo6Tw3dqBqt+f/NypxqS +Nuw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=HEOhXlSsNtqnhz6aDxEok8Qtr2D8F5GLL2ZN9neKYDM=; b=jXqISEq5K0jQ1eKkv4MYOc0LQ5AS5v3dBHnjkzywKxtEXRVJtJA/ljQeC+DgkgBrnx ZC7fs3+Q4PpBSjfUy5LFk4AUyohtT2EpK+26KeutnchIOnhSustGIIOKAfXIKQaMntF5 3qtp3I2XNIvf2ubu+tBW3aLs/ttOtNWTEepUyEMuK/2vs/FLxX/1+AGZt6CuTaAq7Ufh Ou/qaBDgXs4QgTYNgUvV9CJdKbYbpklxfmCHniIA1BGPFpgQgo4wTNNbIRd8/kXZ7gb5 EYLoXX3r0GxW3Fe/34NwDGoYlOitX9j8cduSjzL7blQiDa5lpl/Ldjd+kojOWcJx4+zJ ji+A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=HTRoX2Pn; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id de23si8060217ejc.342.2021.09.13.18.17.21; Mon, 13 Sep 2021 18:17:45 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=HTRoX2Pn; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235948AbhIMWKr (ORCPT + 99 others); Mon, 13 Sep 2021 18:10:47 -0400 Received: from mail.kernel.org ([198.145.29.99]:42034 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229502AbhIMWKr (ORCPT ); Mon, 13 Sep 2021 18:10:47 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 8ECD861056; Mon, 13 Sep 2021 22:09:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1631570970; bh=IePkNmKFbdLFCj1jfB5UusK9wK0C5A0MxJXpkPLT5QY=; h=From:To:Cc:Subject:Date:From; b=HTRoX2Pn+mJqjk3XvyOuZ0vEchdG2RGsBOvwA9zB2dI+vj0D8KH6Uig75MWVdRpcW LK/kfh9t83wy6U8IKQnHRYZ9K9YoG06ZrcdnTbqGVp35VYdaqNRDl4LCx4QhghebeJ zpyDiIo9ZTBmq+YYTQWqTZc9i3PPwzzgbOGyZyIDSsjD8lmREhP6z0eRum2N7OISgK Ks3hwiUgaZ0Os/XUxwDzMQZbv/dqcy3u4Vc0sH/pj9zNpUeO3CfhUraeFhjdqjYQ+B wHLCcTMyOvZAnA9NNVHOmKtA7iFFPIYe/FxHg3igG5GFxwmrF8vOqVFm8MdJ3QVgNp HY2YDpLzumxKA== From: Nathan Chancellor To: Linus Torvalds Cc: Nick Desaulniers , Kees Cook , linux-kernel@vger.kernel.org, llvm@lists.linux.dev, Nathan Chancellor Subject: [PATCH] tools: compiler-gcc.h: Guard error attribute use with __has_attribute Date: Mon, 13 Sep 2021 15:09:00 -0700 Message-Id: <20210913220900.142820-1-nathan@kernel.org> X-Mailer: git-send-email 2.33.0 MIME-Version: 1.0 X-Patchwork-Bot: notify Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org When building objtool with HOSTCC=clang, there are several errors along the lines of orc_dump.c:201:28: error: unknown attribute 'error' ignored [-Werror,-Wunknown-attributes] This occurs after commit 4e59869aa655 ("compiler-gcc.h: drop checks for older GCC versions"), which removed the GCC_VERSION gating. The removed version check just so happened to prevent __compiletime_error() from being defined with clang because it pretends to be GCC 4.2.1 for compatibility but the error attribute was not added to clang until 14.0.0. Commit 815f0ddb346c ("include/linux/compiler*.h: make compiler-*.h mutually exclusive") and commit a3f8a30f3f00 ("Compiler Attributes: use feature checks instead of version checks") refactored the handling of attributes in the main kernel to avoid situations like this but that refactoring has never been done for the tools directory. Refactoring is a rather large undertaking and this has never been an issue before so instead, just guard the definition of __compiletime_error() with __has_attribute() so that there are no more errors. Fixes: 4e59869aa655 ("compiler-gcc.h: drop checks for older GCC versions") Signed-off-by: Nathan Chancellor --- tools/include/linux/compiler-gcc.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tools/include/linux/compiler-gcc.h b/tools/include/linux/compiler-gcc.h index 43d9a46d36f0..8816f06fc6c7 100644 --- a/tools/include/linux/compiler-gcc.h +++ b/tools/include/linux/compiler-gcc.h @@ -16,7 +16,9 @@ # define __fallthrough __attribute__ ((fallthrough)) #endif -#define __compiletime_error(message) __attribute__((error(message))) +#if __has_attribute(__error__) +# define __compiletime_error(message) __attribute__((error(message))) +#endif /* &a[0] degrades to a pointer: a different type from an array */ #define __must_be_array(a) BUILD_BUG_ON_ZERO(__same_type((a), &(a)[0])) base-commit: 316346243be6df12799c0b64b788e06bad97c30b -- 2.33.0