[[PGP Signed Part:Undecided]]
On 12-09-2023 20:32:19 +0100, Alexey Sokolov wrote:
Bug: https://bugs.gentoo.org/758167
Full PR is at https://github.com/gentoo/gentoo/pull/32730
Several LLVM packages require this early return, otherwise they fail to
build on Darwin. I'll also need this USE-flag for
sys-devel/clang-common, to distinguish between stage2 and stage3 of
bootstrap-prefix.sh to configure clang differently.
--
Best regards,
Alexey "DarthGandalf" Sokolov
From de2bd1abc3e5c7607413633d132c604c6a801802 Mon Sep 17 00:00:00 2001
From: Alexey Sokolov <alexey+gentoo@asokolov.org>
Date: Mon, 11 Sep 2023 23:26:49 +0100
Subject: [PATCH] llvm.eclass: add global USE flag bootstrap-prefix
Mask it everywhere except for prefix profiles
Without this, stage2's LLVM packages fail to build.
Bug: https://bugs.gentoo.org/758167
Signed-off-by: Alexey Sokolov <alexey+gentoo@asokolov.org>
---
eclass/llvm.eclass | 7 +++++++
profiles/base/use.mask | 4 ++++
profiles/features/prefix/use.mask | 4 ++++
profiles/use.desc | 1 +
4 files changed, 16 insertions(+)
diff --git a/eclass/llvm.eclass b/eclass/llvm.eclass
index 8198650aad9a7..87c2cedb3a376 100644
--- a/eclass/llvm.eclass
+++ b/eclass/llvm.eclass
@@ -64,6 +64,8 @@ esac
if [[ ! ${_LLVM_ECLASS} ]]; then
_LLVM_ECLASS=1
+IUSE="bootstrap-prefix"
+
# make sure that the versions installing straight into /usr/bin
# are uninstalled
DEPEND="!!sys-devel/llvm:0"
@@ -242,6 +244,11 @@ llvm_fix_tool_path() {
llvm_pkg_setup() {
debug-print-function ${FUNCNAME} "${@}"
+ if use bootstrap-prefix; then
+ # AppleClang has unparseable version numbers, but it's irrelevant anyway
+ return
+ fi
+
I might misunderstand this, but is this USE-flag supposed to be set only during bootstrap, e.g. when host-provided Clang is used? If so, would
it be possible to use has_version or something instead?
Thanks,
Fabian
Bug: https://bugs.gentoo.org/758167
Full PR is at https://github.com/gentoo/gentoo/pull/32730
Several LLVM packages require this early return, otherwise they fail to build on Darwin. I'll also need this USE-flag for
sys-devel/clang-common, to distinguish between stage2 and stage3 of bootstrap-prefix.sh to configure clang differently.
--
Best regards,
Alexey "DarthGandalf" Sokolov
From de2bd1abc3e5c7607413633d132c604c6a801802 Mon Sep 17 00:00:00 2001
From: Alexey Sokolov <alexey+gentoo@asokolov.org>
Date: Mon, 11 Sep 2023 23:26:49 +0100
Subject: [PATCH] llvm.eclass: add global USE flag bootstrap-prefix
Mask it everywhere except for prefix profiles
Without this, stage2's LLVM packages fail to build.
Bug: https://bugs.gentoo.org/758167
Signed-off-by: Alexey Sokolov <alexey+gentoo@asokolov.org>
---
eclass/llvm.eclass | 7 +++++++
profiles/base/use.mask | 4 ++++
profiles/features/prefix/use.mask | 4 ++++
profiles/use.desc | 1 +
4 files changed, 16 insertions(+)
diff --git a/eclass/llvm.eclass b/eclass/llvm.eclass
index 8198650aad9a7..87c2cedb3a376 100644
--- a/eclass/llvm.eclass
+++ b/eclass/llvm.eclass
@@ -64,6 +64,8 @@ esac
if [[ ! ${_LLVM_ECLASS} ]]; then
_LLVM_ECLASS=1
+IUSE="bootstrap-prefix"
+
# make sure that the versions installing straight into /usr/bin
# are uninstalled
DEPEND="!!sys-devel/llvm:0"
@@ -242,6 +244,11 @@ llvm_fix_tool_path() {
llvm_pkg_setup() {
debug-print-function ${FUNCNAME} "${@}"
+ if use bootstrap-prefix; then
+ # AppleClang has unparseable version numbers, but it's irrelevant anyway
+ return
+ fi
+
if [[ ${MERGE_TYPE} != binary ]]; then
LLVM_SLOT=$(get_llvm_slot "${LLVM_MAX_SLOT}")
diff --git a/profiles/base/use.mask b/profiles/base/use.mask
index 1d4f5b92865df..cc86fde21097a 100644
--- a/profiles/base/use.mask
+++ b/profiles/base/use.mask
@@ -8,6 +8,10 @@
# eudev is masked for removal
eudev
+# Alexey Sokolov <alexey+gentoo@asokolov.org> (2023-09-11)
+# Only needed during bootstrap of prefix
+bootstrap-prefix
+
# David Seifert <soap@gentoo.org> (2023-09-09)
# EOL upstream in 2 months, causes major headaches for OpenSSL 1.1
# masking. Removal on 2023-10-09.
diff --git a/profiles/features/prefix/use.mask b/profiles/features/prefix/use.mask
index 482ce57f04485..1f43ca23fd101 100644
--- a/profiles/features/prefix/use.mask
+++ b/profiles/features/prefix/use.mask
@@ -4,6 +4,10 @@
# prefix USE flag should always be unmasked in prefix profiles
-prefix
+# Alexey Sokolov <alexey+gentoo@asokolov.org> (2023-09-11)
+# Allow bootstrapping the prefix
+-bootstrap-prefix
+
# USE flags inherited by the base/use.defaults file that shouldn't be in Prefix
gpm
diff --git a/profiles/use.desc b/profiles/use.desc
index 6034f3bf6fc31..37c64f43759da 100644
--- a/profiles/use.desc
+++ b/profiles/use.desc
@@ -29,6 +29,7 @@ big-endian - Big-endian toolchain support
bindist - Flag to enable or disable options for prebuilt (GRP) packages (eg. due to licensing issues)
blas - Add support for the virtual/blas numerical library
bluetooth - Enable Bluetooth Support
+bootstrap-prefix - !!internal use only!! DO NOT SET THIS FLAG YOURSELF!, used for bootstrapping Gentoo Prefix
branding - Enable Gentoo specific branding
build - !!internal use only!! DO NOT SET THIS FLAG YOURSELF!, used for creating build images and the first half of bootstrapping [make stage1]
bzip2 - Use the bzlib compression library
Fabian Groffen <grobian@gentoo.org> writes:
[[PGP Signed Part:Undecided]]
On 12-09-2023 20:32:19 +0100, Alexey Sokolov wrote:
Bug: https://bugs.gentoo.org/758167
Full PR is at https://github.com/gentoo/gentoo/pull/32730
Several LLVM packages require this early return, otherwise they fail to
build on Darwin. I'll also need this USE-flag for
sys-devel/clang-common, to distinguish between stage2 and stage3 of
bootstrap-prefix.sh to configure clang differently.
--
Best regards,
Alexey "DarthGandalf" Sokolov
From de2bd1abc3e5c7607413633d132c604c6a801802 Mon Sep 17 00:00:00 2001
From: Alexey Sokolov <alexey+gentoo@asokolov.org>
Date: Mon, 11 Sep 2023 23:26:49 +0100
Subject: [PATCH] llvm.eclass: add global USE flag bootstrap-prefix
Mask it everywhere except for prefix profiles
Without this, stage2's LLVM packages fail to build.
Bug: https://bugs.gentoo.org/758167
Signed-off-by: Alexey Sokolov <alexey+gentoo@asokolov.org>
---
eclass/llvm.eclass | 7 +++++++
profiles/base/use.mask | 4 ++++
profiles/features/prefix/use.mask | 4 ++++
profiles/use.desc | 1 +
4 files changed, 16 insertions(+)
diff --git a/eclass/llvm.eclass b/eclass/llvm.eclass
index 8198650aad9a7..87c2cedb3a376 100644
--- a/eclass/llvm.eclass
+++ b/eclass/llvm.eclass
@@ -64,6 +64,8 @@ esac
if [[ ! ${_LLVM_ECLASS} ]]; then
_LLVM_ECLASS=1
+IUSE="bootstrap-prefix"
+
# make sure that the versions installing straight into /usr/bin
# are uninstalled
DEPEND="!!sys-devel/llvm:0"
@@ -242,6 +244,11 @@ llvm_fix_tool_path() {
llvm_pkg_setup() {
debug-print-function ${FUNCNAME} "${@}"
+ if use bootstrap-prefix; then
+ # AppleClang has unparseable version numbers, but it's irrelevant anyway
+ return
+ fi
+
I might misunderstand this, but is this USE-flag supposed to be set only
during bootstrap, e.g. when host-provided Clang is used? If so, would
it be possible to use has_version or something instead?
Another option is something I think we've done in the past - check
for use prefix and then some extra env var we set in the bootstrap
script.
I think I'd prefer either your idea or the one I just mention
to a USE, but I don't think I feel very strongly between any of it.
(but given mgorny isn't keen on the USE in the PR at https://github.com/gentoo/gentoo/pull/32730,
that's a vote against it)
Thanks,
Fabian
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 475 |
Nodes: | 16 (2 / 14) |
Uptime: | 18:12:52 |
Calls: | 9,487 |
Calls today: | 6 |
Files: | 13,617 |
Messages: | 6,121,091 |