public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
From: Mike Gilbert <floppym@gentoo.org>
To: gentoo-dev@lists.gentoo.org
Cc: Mike Gilbert <floppym@gentoo.org>
Subject: [gentoo-dev] [PATCH 2/2] sys-apps/systemd-utils: add workaround for no-multilib
Date: Tue, 26 Mar 2024 11:01:52 -0400	[thread overview]
Message-ID: <20240326150152.1932785-2-floppym@gentoo.org> (raw)
In-Reply-To: <20240326150152.1932785-1-floppym@gentoo.org>

meson.build has some logic to build ia32 EFI binaries on x86_64 if the
toolchain is compatible. Rather than trying to reproduce this logic in
the ebuild, just try to build it and ignore any failures.

If meson.build actually defines the targets but we have some other
compile error, this will move the failure to the install phase instead.

Signed-off-by: Mike Gilbert <floppym@gentoo.org>
---
 sys-apps/systemd-utils/systemd-utils-255.4.ebuild | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/sys-apps/systemd-utils/systemd-utils-255.4.ebuild b/sys-apps/systemd-utils/systemd-utils-255.4.ebuild
index b258f5748243..7f17b37aa3ea 100644
--- a/sys-apps/systemd-utils/systemd-utils-255.4.ebuild
+++ b/sys-apps/systemd-utils/systemd-utils-255.4.ebuild
@@ -253,7 +253,7 @@ multilib_src_configure() {
 }
 
 multilib_src_compile() {
-	local targets=()
+	local targets=() optional_targets=()
 	if multilib_is_native_abi; then
 		if use boot; then
 			local efi_arch= efi_arch_alt=
@@ -275,7 +275,10 @@ multilib_src_compile() {
 				src/boot/efi/addon${efi_arch}.efi.stub
 			)
 			if [[ -n ${efi_arch_alt} ]]; then
-				targets+=(
+				# If we have a multilib toolchain, meson.build will build the
+				# "alt" arch (ia32). There's no easy way to detect this, so try
+				# to build it and ignore failure.
+				optional_targets+=(
 					src/boot/efi/systemd-boot${efi_arch_alt}.efi
 					src/boot/efi/linux${efi_arch_alt}.efi.stub
 					src/boot/efi/addon${efi_arch_alt}.efi.stub
@@ -392,9 +395,12 @@ multilib_src_compile() {
 			)
 		fi
 	fi
-	if multilib_is_native_abi || use udev; then
+	if [[ ${#targets[@]} -ne 0 ]]; then
 		meson_src_compile "${targets[@]}"
 	fi
+	if [[ ${#optional_targets[@]} -ne 0 ]]; then
+		nonfatal meson_src_compile "${optional_targets[@]}"
+	fi
 }
 
 multilib_src_test() {
-- 
2.44.0



  reply	other threads:[~2024-03-26 15:02 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-26 15:01 [gentoo-dev] [PATCH 1/2] meson.eclass: call die -n in phase helpers Mike Gilbert
2024-03-26 15:01 ` Mike Gilbert [this message]
2024-03-26 16:51   ` [gentoo-dev] [PATCH 2/2] sys-apps/systemd-utils: add workaround for no-multilib Michał Górny
2024-03-26 16:57     ` Mike Gilbert

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240326150152.1932785-2-floppym@gentoo.org \
    --to=floppym@gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox