Hi Chris, Chris Marusich <cmmarus...@gmail.com> writes:
(snip) > It seems fishy that on aarch64-linux, there is no NEEDED entry for > ld-linux-aarch64.so.1 in the ELF files under consideration. As shown > above, a similar entry DOES exist on both x86_64-linux and > powerpc64le-linux. For this reason, it seems plausible that maybe the > missing NEEDED entry is bad. However, I don't really know enough to say > whether it's indicative of a problem with our aarch64-linux port. Is > there an aarch64-linux or ELF expert in the room who can help? :-) > > It also seems fishy that, on powerpc64le-linux, file-needed/recursive > apparently resolves ld64.so.2 successfully, even though it > simultaneously includes it in the "failed to resolve" list. Confusing > as that is to me, I don't know if that's really related to the > aarch64-linux issue. > > More investigation is needed... I'm afraid I don't have any new insight if this is an issue or just working as intended. Given we have a limited bandwidth to address this thoroughly, would it make sense to apply a temporary work-around in the mean time? I'd be good for at least guix to build on aarch64 in the 1.4 release. I have the attached patch in my tree for instance (along with an update of the guix package), and I've not noticed any issues on a rockpro64, running cgit, DHCP and dnsmasq. That's just anecdotal :-), but I'm also thinking if we unblock the guix package then the farm might catch other issues that could help getting to the bottom of this. WDYT? Thanks, Pierre
signature.asc
Description: PGP signature
From cdd2c995b7c03400a9702a6b354655b0584b727c Mon Sep 17 00:00:00 2001 From: Pierre Langlois <pierre.langl...@gmx.com> Date: Wed, 22 Dec 2021 22:02:08 +0000 Subject: [PATCH] gremlin: Adjust test for aarch64. --- tests/gremlin.scm | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/tests/gremlin.scm b/tests/gremlin.scm index 9e0017337a..c9b05ae21a 100644 --- a/tests/gremlin.scm +++ b/tests/gremlin.scm @@ -20,9 +20,11 @@ (define-module (test-gremlin) #:use-module (guix elf) #:use-module (guix tests) - #:use-module ((guix utils) #:select (call-with-temporary-directory)) + #:use-module ((guix utils) #:select (call-with-temporary-directory + target-aarch64?)) #:use-module (guix build utils) #:use-module (guix build gremlin) + #:use-module (gnu packages bootstrap) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) #:use-module (srfi srfi-34) @@ -99,7 +101,12 @@ (define ground-truth (or (string-prefix? "linux-vdso.so" entry) (string-prefix? "linux-vdso32.so" entry) ;32-bit powerpc (string-prefix? "linux-vdso64.so" entry) ;64-bit powerpc - (string-prefix? "linux-gate.so" entry))) ;i386 + (string-prefix? "linux-gate.so" entry) ;i386 + ;; FIXME: Binaries on aarch64 do not always include the + ;; dynamic linker in their NEEDED section, it's unclear if that's OK, see + ;; ttps://bugs.gnu.org/52943. + (and (target-aarch64?) + (string-contains entry (glibc-dynamic-linker))))) (read-ldd-output pipe))) (and (zero? (close-pipe pipe)) -- 2.34.0