waf supports executing binaries via a wrapper for cross-compiling. This
may already be handled by a QEMU outside this environment if binfmt_misc
has been used with the F flag, and we cannot add a cross-only dependency
on QEMU. For these reasons, this sets the prefix using QEMU_LD_PREFIX
rather adding QEMU's -L arg to the --cross-execute option, and it checks whether QEMU is present before trying to use it.
I have used this to cross-compile Samba and its waf-based dependencies.
Signed-off-by: James Le Cuirot <
[email protected]>
---
eclass/waf-utils.eclass | 19 +++++++++++++++----
1 file changed, 15 insertions(+), 4 deletions(-)
diff --git a/eclass/waf-utils.eclass b/eclass/waf-utils.eclass
index 377b455de736..01e62d88bd81 100644
--- a/eclass/waf-utils.eclass
+++ b/eclass/waf-utils.eclass
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# @ECLASS: waf-utils.eclass
@@ -23,7 +23,7 @@ esac
if [[ -z ${_WAF_UTILS_ECLASS} ]]; then
_WAF_UTILS_ECLASS=1
-inherit multilib toolchain-funcs multiprocessing
+inherit multilib sysroot toolchain-funcs multiprocessing
# @ECLASS_VARIABLE: WAF_VERBOSE
# @USER_VARIABLE
@@ -79,7 +79,7 @@ waf-utils_src_configure() {
: "${WAF_BINARY:="${S}/waf"}"
- local conf_args=()
+ local conf_args=() CMD=()
local waf_help=$("${WAF_BINARY}" --help 2>/dev/null)
if [[ ${waf_help} == *--docdir* ]]; then
@@ -95,9 +95,20 @@ waf-utils_src_configure() {
conf_args+