commit:     b7c4eb1b798b791446313398ac949be011aca3a1
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Tue Mar 26 15:01:52 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu Apr  4 01:06:39 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b7c4eb1b

sys-apps/systemd-utils: add workaround for no-multilib

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 <AT> gentoo.org>
Signed-off-by: Eli Schwartz <eschwartz93 <AT> gmail.com>
Signed-off-by: Sam James <sam <AT> 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 a4f60f47e7f3..4c64afbd80c1 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() {

Reply via email to