From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <gentoo-commits+bounces-1454892-garchives=archives.gentoo.org@lists.gentoo.org> Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id E95F1158020 for <garchives@archives.gentoo.org>; Tue, 8 Nov 2022 22:46:29 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 0D14EE09FD; Tue, 8 Nov 2022 22:46:29 +0000 (UTC) Received: from smtp.gentoo.org (dev.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id DE2BAE09FD for <gentoo-commits@lists.gentoo.org>; Tue, 8 Nov 2022 22:46:28 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id EEFB8340AED for <gentoo-commits@lists.gentoo.org>; Tue, 8 Nov 2022 22:46:27 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 80A386DF for <gentoo-commits@lists.gentoo.org>; Tue, 8 Nov 2022 22:46:26 +0000 (UTC) From: "Sam James" <sam@gentoo.org> To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Sam James" <sam@gentoo.org> Message-ID: <1667947579.7acd5f570128aedd2b027bda84b3838539eba49e.sam@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: sys-devel/clang-common/ X-VCS-Repository: repo/gentoo X-VCS-Files: sys-devel/clang-common/clang-common-15.0.4-r1.ebuild sys-devel/clang-common/clang-common-15.0.4.9999.ebuild sys-devel/clang-common/clang-common-15.0.4.ebuild sys-devel/clang-common/clang-common-16.0.0.9999.ebuild sys-devel/clang-common/clang-common-16.0.0_pre20221023-r1.ebuild sys-devel/clang-common/clang-common-16.0.0_pre20221023-r2.ebuild sys-devel/clang-common/clang-common-16.0.0_pre20221104-r1.ebuild sys-devel/clang-common/clang-common-16.0.0_pre20221104.ebuild X-VCS-Directories: sys-devel/clang-common/ X-VCS-Committer: sam X-VCS-Committer-Name: Sam James X-VCS-Revision: 7acd5f570128aedd2b027bda84b3838539eba49e X-VCS-Branch: master Date: Tue, 8 Nov 2022 22:46:26 +0000 (UTC) Precedence: bulk List-Post: <mailto:gentoo-commits@lists.gentoo.org> List-Help: <mailto:gentoo-commits+help@lists.gentoo.org> List-Unsubscribe: <mailto:gentoo-commits+unsubscribe@lists.gentoo.org> List-Subscribe: <mailto:gentoo-commits+subscribe@lists.gentoo.org> List-Id: Gentoo Linux mail <gentoo-commits.gentoo.org> X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 77fafd61-dfe6-44e4-a96e-1a0539ad8eb3 X-Archives-Hash: 52f8d02a7ef1ef0887928734e694d9d8 commit: 7acd5f570128aedd2b027bda84b3838539eba49e Author: Sam James <sam <AT> gentoo <DOT> org> AuthorDate: Tue Nov 8 22:42:36 2022 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Tue Nov 8 22:46:19 2022 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7acd5f57 sys-devel/clang-common: drop -Werror=deprecated-non-prototype for 15.x, promote to 16.x Clang 16.x will make -Wimplicit-int, -Wimplicit-function-declaration, and -Wincompatible-function-pointer-type error by default. Clang 15.x+ also warns on -Wdeprecated-non-prototype but it's not becoming fatal yet. It'll be an error when the defaults in compilers change to C23. There's a LOT of breakage with -Werror=deprecated-non-prototype, and we do care about it, but the first batch of errors mentioned above are more important for the time being. We need to be able to triage and prioritise the bugs. So: * Clang 15 USE=stricter: only -Wimplict-int -Wimplicit-function-declaration and -Wincompatible-function-pointer-type are errors. * Clang 16 USE=stricter: upstream defaults (which include ^ as we're doing for clang 15) + -Wdeprecated-non-prototype as an error, because presumably if you set USE=stricter on *16*, you want something harsher than already will ship upstream. This more accurately lets developers in Gentoo set USE=stricter on clang-common for 15.x and get Clang 16.x behaviour rather than scaring the life out of them. Thanks to Ionen for talking this out with me. Bug: https://bugs.gentoo.org/876985 See: 930fe2268cbedda61e37fada65e57352d25d8761 Signed-off-by: Sam James <sam <AT> gentoo.org> ...15.0.4.ebuild => clang-common-15.0.4-r1.ebuild} | 3 - .../clang-common/clang-common-15.0.4.9999.ebuild | 3 - .../clang-common/clang-common-16.0.0.9999.ebuild | 6 + ...d => clang-common-16.0.0_pre20221023-r2.ebuild} | 6 + ...d => clang-common-16.0.0_pre20221104-r1.ebuild} | 3 + .../clang-common-16.0.0_pre20221104.ebuild | 126 --------------------- 6 files changed, 15 insertions(+), 132 deletions(-) diff --git a/sys-devel/clang-common/clang-common-15.0.4.ebuild b/sys-devel/clang-common/clang-common-15.0.4-r1.ebuild similarity index 98% rename from sys-devel/clang-common/clang-common-15.0.4.ebuild rename to sys-devel/clang-common/clang-common-15.0.4-r1.ebuild index 819076f87723..f7293fd3cb2b 100644 --- a/sys-devel/clang-common/clang-common-15.0.4.ebuild +++ b/sys-devel/clang-common/clang-common-15.0.4-r1.ebuild @@ -97,9 +97,6 @@ src_install() { -Werror=implicit-function-declaration -Werror=implicit-int -Werror=incompatible-function-pointer-types - - # constructs banned by C2x - -Werror=deprecated-non-prototype EOF cat >> "${ED}/etc/clang/gentoo-common.cfg" <<-EOF || die diff --git a/sys-devel/clang-common/clang-common-15.0.4.9999.ebuild b/sys-devel/clang-common/clang-common-15.0.4.9999.ebuild index d5e7941a5fc8..3e43f51a0aab 100644 --- a/sys-devel/clang-common/clang-common-15.0.4.9999.ebuild +++ b/sys-devel/clang-common/clang-common-15.0.4.9999.ebuild @@ -97,9 +97,6 @@ src_install() { -Werror=implicit-function-declaration -Werror=implicit-int -Werror=incompatible-function-pointer-types - - # constructs banned by C2x - -Werror=deprecated-non-prototype EOF cat >> "${ED}/etc/clang/gentoo-common.cfg" <<-EOF || die diff --git a/sys-devel/clang-common/clang-common-16.0.0.9999.ebuild b/sys-devel/clang-common/clang-common-16.0.0.9999.ebuild index 3e43f51a0aab..e9669ee1adcc 100644 --- a/sys-devel/clang-common/clang-common-16.0.0.9999.ebuild +++ b/sys-devel/clang-common/clang-common-16.0.0.9999.ebuild @@ -97,6 +97,12 @@ src_install() { -Werror=implicit-function-declaration -Werror=implicit-int -Werror=incompatible-function-pointer-types + + # constructs banned by C2x + -Werror=deprecated-non-prototype + + # deprecated but large blast radius + #-Werror=strict-prototypes EOF cat >> "${ED}/etc/clang/gentoo-common.cfg" <<-EOF || die diff --git a/sys-devel/clang-common/clang-common-16.0.0_pre20221023-r1.ebuild b/sys-devel/clang-common/clang-common-16.0.0_pre20221023-r2.ebuild similarity index 96% rename from sys-devel/clang-common/clang-common-16.0.0_pre20221023-r1.ebuild rename to sys-devel/clang-common/clang-common-16.0.0_pre20221023-r2.ebuild index 3e43f51a0aab..e9669ee1adcc 100644 --- a/sys-devel/clang-common/clang-common-16.0.0_pre20221023-r1.ebuild +++ b/sys-devel/clang-common/clang-common-16.0.0_pre20221023-r2.ebuild @@ -97,6 +97,12 @@ src_install() { -Werror=implicit-function-declaration -Werror=implicit-int -Werror=incompatible-function-pointer-types + + # constructs banned by C2x + -Werror=deprecated-non-prototype + + # deprecated but large blast radius + #-Werror=strict-prototypes EOF cat >> "${ED}/etc/clang/gentoo-common.cfg" <<-EOF || die diff --git a/sys-devel/clang-common/clang-common-15.0.4.9999.ebuild b/sys-devel/clang-common/clang-common-16.0.0_pre20221104-r1.ebuild similarity index 98% copy from sys-devel/clang-common/clang-common-15.0.4.9999.ebuild copy to sys-devel/clang-common/clang-common-16.0.0_pre20221104-r1.ebuild index d5e7941a5fc8..e9669ee1adcc 100644 --- a/sys-devel/clang-common/clang-common-15.0.4.9999.ebuild +++ b/sys-devel/clang-common/clang-common-16.0.0_pre20221104-r1.ebuild @@ -100,6 +100,9 @@ src_install() { # constructs banned by C2x -Werror=deprecated-non-prototype + + # deprecated but large blast radius + #-Werror=strict-prototypes EOF cat >> "${ED}/etc/clang/gentoo-common.cfg" <<-EOF || die diff --git a/sys-devel/clang-common/clang-common-16.0.0_pre20221104.ebuild b/sys-devel/clang-common/clang-common-16.0.0_pre20221104.ebuild deleted file mode 100644 index 3e43f51a0aab..000000000000 --- a/sys-devel/clang-common/clang-common-16.0.0_pre20221104.ebuild +++ /dev/null @@ -1,126 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit bash-completion-r1 llvm.org - -DESCRIPTION="Common files shared between multiple slots of clang" -HOMEPAGE="https://llvm.org/" - -LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA" -SLOT="0" -KEYWORDS="" -IUSE=" - default-compiler-rt default-libcxx default-lld llvm-libunwind - stricter -" - -PDEPEND=" - sys-devel/clang:* - default-compiler-rt? ( - sys-devel/clang-runtime[compiler-rt] - llvm-libunwind? ( sys-libs/llvm-libunwind ) - !llvm-libunwind? ( sys-libs/libunwind ) - ) - !default-compiler-rt? ( sys-devel/gcc ) - default-libcxx? ( >=sys-libs/libcxx-${PV} ) - !default-libcxx? ( sys-devel/gcc ) - default-lld? ( sys-devel/lld ) - !default-lld? ( sys-devel/binutils ) -" -IDEPEND=" - !default-compiler-rt? ( sys-devel/gcc-config ) - !default-libcxx? ( sys-devel/gcc-config ) -" - -LLVM_COMPONENTS=( clang/utils ) -llvm.org_set_globals - -pkg_pretend() { - [[ ${CLANG_IGNORE_DEFAULT_RUNTIMES} ]] && return - - local flag missing_flags=() - for flag in default-{compiler-rt,libcxx,lld}; do - if ! use "${flag}" && has_version "sys-devel/clang[${flag}]"; then - missing_flags+=( "${flag}" ) - fi - done - - if [[ ${missing_flags[@]} ]]; then - eerror "It seems that you have the following flags set on sys-devel/clang:" - eerror - eerror " ${missing_flags[*]}" - eerror - eerror "The default runtimes are now set via flags on sys-devel/clang-common." - eerror "The build is being aborted to prevent breakage. Please either set" - eerror "the respective flags on this ebuild, e.g.:" - eerror - eerror " sys-devel/clang-common ${missing_flags[*]}" - eerror - eerror "or build with CLANG_IGNORE_DEFAULT_RUNTIMES=1." - die "Mismatched defaults detected between sys-devel/clang and sys-devel/clang-common" - fi -} - -src_install() { - newbashcomp bash-autocomplete.sh clang - - insinto /etc/clang - newins - gentoo-runtimes.cfg <<-EOF - # This file is initially generated by sys-devel/clang-runtime. - # It is used to control the default runtimes using by clang. - - --rtlib=$(usex default-compiler-rt compiler-rt libgcc) - --unwindlib=$(usex default-compiler-rt libunwind libgcc) - --stdlib=$(usex default-libcxx libc++ libstdc++) - -fuse-ld=$(usex default-lld lld bfd) - EOF - - newins - gentoo-gcc-install.cfg <<-EOF - # This file is maintained by gcc-config. - # It is used to specify the selected GCC installation. - EOF - - newins - gentoo-common.cfg <<-EOF - # This file contains flags common to clang, clang++ and clang-cpp. - @gentoo-runtimes.cfg - @gentoo-gcc-install.cfg - EOF - - if use stricter; then - newins - gentoo-stricter.cfg <<-EOF - # This file increases the strictness of older clang versions - # to match the newest upstream version. - - # clang-16 defaults - -Werror=implicit-function-declaration - -Werror=implicit-int - -Werror=incompatible-function-pointer-types - EOF - - cat >> "${ED}/etc/clang/gentoo-common.cfg" <<-EOF || die - @gentoo-stricter.cfg - EOF - fi - - local tool - for tool in clang{,++,-cpp}; do - newins - "${tool}.cfg" <<-EOF - # This configuration file is used by ${tool} driver. - @gentoo-common.cfg - EOF - done -} - -pkg_preinst() { - if has_version -b sys-devel/gcc-config && has_version sys-devel/gcc - then - local gcc_path=$(gcc-config --get-lib-path 2>/dev/null) - if [[ -n ${gcc_path} ]]; then - cat >> "${ED}/etc/clang/gentoo-gcc-install.cfg" <<-EOF - --gcc-install-dir="${gcc_path%%:*}" - EOF - fi - fi -}