commit:     4fa8d71be382cc4342280c654958441a1ef1e9fb
Author:     Matt Jolly <kangie <AT> gentoo <DOT> org>
AuthorDate: Sat Nov 30 03:35:01 2024 +0000
Commit:     Matt Jolly <kangie <AT> gentoo <DOT> org>
CommitDate: Sat Nov 30 04:08:42 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4fa8d71b

www-client/chromium: do a better job of forcing Clang

When enabling the Rust eclass, we started directly using
`llvm-r1_pkg_setup`, assuming that this combination would be
sufficicent, however due to forcing `CC` (etc) to variations
on `${CHOST}-clang" _before_ calling `llvm-r1_pkg_setup`,
these would always be forced to the newest version in
`PATH` instead of the one matching `LLVM_SLOT` due to
the eclass fixing the version before doing any `PATH`
manipulation.

To ensure a consistent build environment, we will:

1. Explicitly include `-${LLVM_SLOT}` in `CC`, `CPP`, `CXX`
2. Set these variables (and `AR` and `NM`) after `llvm-r1_pkg_setup`
   has done its PATH manipulation.

Bug: https://bugs.gentoo.org/935689
Signed-off-by: Matt Jolly <kangie <AT> gentoo.org>

 .../chromium/chromium-130.0.6723.116-r1.ebuild       | 20 ++++++++------------
 www-client/chromium/chromium-131.0.6778.85.ebuild    | 16 ++++++++--------
 www-client/chromium/chromium-132.0.6834.15.ebuild    | 16 ++++++++--------
 www-client/chromium/chromium-133.0.6847.2.ebuild     | 16 ++++++++--------
 4 files changed, 32 insertions(+), 36 deletions(-)

diff --git a/www-client/chromium/chromium-130.0.6723.116-r1.ebuild 
b/www-client/chromium/chromium-130.0.6723.116-r1.ebuild
index 4c3745081087..7d3695283e2d 100644
--- a/www-client/chromium/chromium-130.0.6723.116-r1.ebuild
+++ b/www-client/chromium/chromium-130.0.6723.116-r1.ebuild
@@ -50,7 +50,6 @@ if [[ ${SLOT} != "0/dev" ]]; then
        KEYWORDS="~amd64 ~arm64 ~ppc64"
 fi
 
-
 IUSE_SYSTEM_LIBS="+system-harfbuzz +system-icu +system-png +system-zstd"
 IUSE="+X ${IUSE_SYSTEM_LIBS} bindist cups debug ffmpeg-chromium gtk4 +hangouts 
headless kerberos +official pax-kernel pgo +proprietary-codecs pulseaudio"
 IUSE+=" qt5 qt6 +screencast selinux test +vaapi +wayland +widevine 
cpu_flags_ppc_vsx3"
@@ -309,24 +308,21 @@ pkg_setup() {
                        die "Please switch to a different linker."
                fi
 
-               # We're forcing Clang here. User choice is respected via 
llvm_slot_# USE flags.
+               llvm-r1_pkg_setup
+               rust_pkg_setup
+
+               # Forcing clang; respect llvm_slot_x to enable selection of 
impl from LLVM_COMPAT
                AR=llvm-ar
-               CPP="${CHOST}-clang++ -E"
+               CPP="${CHOST}-clang++-${LLVM_SLOT} -E"
                NM=llvm-nm
-               CC=${CHOST}-clang
-               CXX=${CHOST}-clang++
+               CC="${CHOST}-clang-${LLVM_SLOT}"
+               CXX="${CHOST}-clang++-${LLVM_SLOT}"
 
                if tc-is-cross-compiler; then
                        use pgo && die "The pgo USE flag cannot be used when 
cross-compiling"
-                       CPP="${CBUILD}-clang++ -E"
+                       CPP="${CBUILD}-clang++-${LLVM_SLOT} -E"
                fi
 
-               llvm-r1_pkg_setup
-               rust_pkg_setup
-
-               einfo "Using LLVM/Clang slot ${LLVM_SLOT} to build"
-               einfo "Using Rust slot ${RUST_SLOT}, ${RUST_TYPE} to build"
-
                # I hate doing this but upstream Rust have yet to come up with 
a better solution for
                # us poor packagers. Required for Split LTO units, which are 
required for CFI.
                export RUSTC_BOOTSTRAP=1

diff --git a/www-client/chromium/chromium-131.0.6778.85.ebuild 
b/www-client/chromium/chromium-131.0.6778.85.ebuild
index d33fbf3daff5..2cf96bc2284c 100644
--- a/www-client/chromium/chromium-131.0.6778.85.ebuild
+++ b/www-client/chromium/chromium-131.0.6778.85.ebuild
@@ -311,21 +311,21 @@ pkg_setup() {
                        die "Please switch to a different linker."
                fi
 
-               # Forcing clang; user choice respected by llvm_slot_x USE
+               llvm-r1_pkg_setup
+               rust_pkg_setup
+
+               # Forcing clang; respect llvm_slot_x to enable selection of 
impl from LLVM_COMPAT
                AR=llvm-ar
-               CPP="${CHOST}-clang++ -E"
+               CPP="${CHOST}-clang++-${LLVM_SLOT} -E"
                NM=llvm-nm
-               CC=${CHOST}-clang
-               CXX=${CHOST}-clang++
+               CC="${CHOST}-clang-${LLVM_SLOT}"
+               CXX="${CHOST}-clang++-${LLVM_SLOT}"
 
                if tc-is-cross-compiler; then
                        use pgo && die "The pgo USE flag cannot be used when 
cross-compiling"
-                       CPP="${CBUILD}-clang++ -E"
+                       CPP="${CBUILD}-clang++-${LLVM_SLOT} -E"
                fi
 
-               llvm-r1_pkg_setup
-               rust_pkg_setup
-
                # I hate doing this but upstream Rust have yet to come up with 
a better solution for
                # us poor packagers. Required for Split LTO units, which are 
required for CFI.
                export RUSTC_BOOTSTRAP=1

diff --git a/www-client/chromium/chromium-132.0.6834.15.ebuild 
b/www-client/chromium/chromium-132.0.6834.15.ebuild
index aa8e823dc2a0..d2ff0ec11a6d 100644
--- a/www-client/chromium/chromium-132.0.6834.15.ebuild
+++ b/www-client/chromium/chromium-132.0.6834.15.ebuild
@@ -310,21 +310,21 @@ pkg_setup() {
                        die "Please switch to a different linker."
                fi
 
-               # Forcing clang; user choice respected by llvm_slot_x USE
+               llvm-r1_pkg_setup
+               rust_pkg_setup
+
+               # Forcing clang; respect llvm_slot_x to enable selection of 
impl from LLVM_COMPAT
                AR=llvm-ar
-               CPP="${CHOST}-clang++ -E"
+               CPP="${CHOST}-clang++-${LLVM_SLOT} -E"
                NM=llvm-nm
-               CC=${CHOST}-clang
-               CXX=${CHOST}-clang++
+               CC="${CHOST}-clang-${LLVM_SLOT}"
+               CXX="${CHOST}-clang++-${LLVM_SLOT}"
 
                if tc-is-cross-compiler; then
                        use pgo && die "The pgo USE flag cannot be used when 
cross-compiling"
-                       CPP="${CBUILD}-clang++ -E"
+                       CPP="${CBUILD}-clang++-${LLVM_SLOT} -E"
                fi
 
-               llvm-r1_pkg_setup
-               rust_pkg_setup
-
                # I hate doing this but upstream Rust have yet to come up with 
a better solution for
                # us poor packagers. Required for Split LTO units, which are 
required for CFI.
                export RUSTC_BOOTSTRAP=1

diff --git a/www-client/chromium/chromium-133.0.6847.2.ebuild 
b/www-client/chromium/chromium-133.0.6847.2.ebuild
index 455597b1a1c8..c74866a48601 100644
--- a/www-client/chromium/chromium-133.0.6847.2.ebuild
+++ b/www-client/chromium/chromium-133.0.6847.2.ebuild
@@ -319,21 +319,21 @@ pkg_setup() {
                        die "Please switch to a different linker."
                fi
 
-               # Forcing clang; user choice respected by llvm_slot_x USE
+               llvm-r1_pkg_setup
+               rust_pkg_setup
+
+               # Forcing clang; respect llvm_slot_x to enable selection of 
impl from LLVM_COMPAT
                AR=llvm-ar
-               CPP="${CHOST}-clang++ -E"
+               CPP="${CHOST}-clang++-${LLVM_SLOT} -E"
                NM=llvm-nm
-               CC=${CHOST}-clang
-               CXX=${CHOST}-clang++
+               CC="${CHOST}-clang-${LLVM_SLOT}"
+               CXX="${CHOST}-clang++-${LLVM_SLOT}"
 
                if tc-is-cross-compiler; then
                        use pgo && die "The pgo USE flag cannot be used when 
cross-compiling"
-                       CPP="${CBUILD}-clang++ -E"
+                       CPP="${CBUILD}-clang++-${LLVM_SLOT} -E"
                fi
 
-               llvm-r1_pkg_setup
-               rust_pkg_setup
-
                # I hate doing this but upstream Rust have yet to come up with 
a better solution for
                # us poor packagers. Required for Split LTO units, which are 
required for CFI.
                export RUSTC_BOOTSTRAP=1

Reply via email to