gnu: dtc: Fix tests.

* gnu/packages/patches/dtc-fix-test.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/bootloaders.scm (dtc)[source]: Use it.

Change-Id: I70d593ff55c677df9aae46ba289a0888bab73f12
This commit is contained in:
Zheng Junjie 2025-06-24 00:22:42 +08:00 committed by Andreas Enge
parent 7d3fd78e84
commit f51070cb70
No known key found for this signature in database
GPG key ID: F7D5C9BF765C61E3
3 changed files with 41 additions and 1 deletions

View file

@ -1218,6 +1218,7 @@ dist_patch_DATA = \
%D%/packages/patches/dovecot-trees-support-dovecot-2.3.patch \
%D%/packages/patches/dstat-fix-crash-when-specifying-delay.patch \
%D%/packages/patches/dstat-skip-devices-without-io.patch \
%D%/packages/patches/dtc-fix-test.patch \
%D%/packages/patches/duc-fix-test-sh.patch \
%D%/packages/patches/dune-common-skip-failing-tests.patch \
%D%/packages/patches/durden-shadow-arcan.patch \

View file

@ -754,7 +754,8 @@ The SUBDIR argument defaults to \"efi/Guix\", as it is also the case for
"dtc-" version ".tar.gz"))
(sha256
(base32
"1x609axqpkw5d47pz3ag34ycy3w7y1d0i8q4715hvlmgszmya07j"))))
"1x609axqpkw5d47pz3ag34ycy3w7y1d0i8q4715hvlmgszmya07j"))
(patches (search-patches "dtc-fix-test.patch"))))
(build-system meson-build-system)
(arguments
(list

View file

@ -0,0 +1,38 @@
from https://git.kernel.org/pub/scm/utils/dtc/dtc.git/patch/?id=ce1d8588880aecd7af264e422a16a8b33617cef7
From ce1d8588880aecd7af264e422a16a8b33617cef7 Mon Sep 17 00:00:00 2001
From: David Gibson <david@gibson.dropbear.id.au>
Date: Wed, 5 Feb 2025 13:39:43 +1100
Subject: [PATCH] tests: When building .so from -O asm output mark as
non-executable stack
For certain tests, we take the output from dtc -O asm and build it into
a .so shared library which we then dlopen() for further tests. Because we
don't mark it otherwise, it's treated as requiring an executable stack,
which dlopen() refuses to open as of glibc-2.41.
Of course, the library is pure data, no code, so it certainly doesn't need
an executable stack. Add the -znoexecstack linker option to avoid the
error.
Fixes: https://github.com/dgibson/dtc/issues/163
Reported-by: Xi Ruoyao <xry111@xry111.site>
Signed-off-by: David Gibson <david@gibson.dropbear.id.a>
---
tests/run_tests.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests/run_tests.sh b/tests/run_tests.sh
index 937b1288..f0b51c04 100755
--- a/tests/run_tests.sh
+++ b/tests/run_tests.sh
@@ -201,7 +201,7 @@ run_dtc_test () {
}
asm_to_so () {
- $CC -shared -o $1.test.so "$SRCDIR/data.S" $1.test.s
+ $CC -shared -Wl,-znoexecstack -o $1.test.so "$SRCDIR/data.S" $1.test.s
}
asm_to_so_test () {