Nixpkgs Stdenv | 234 Members | |
| 75 Servers |
| Sender | Message | Time |
|---|---|---|
| 7 Mar 2023 | ||
ld.wrapper sets it in pkgs/build-support/bintools-wrapper/ld-wrapper.sh: extraBefore+=("-dynamic-linker" "$NIX_DYNAMIC_LINKER_@suffixSalt@") | 07:20:01 | |
In reply to @trofi:matrix.orgi don't think that's true entirely (either that or patchelf is bugged on aarch64)? x86_64-linux also has the interpreter set, but patchelf --print-needed does not show it. | 12:41:29 | |
| which is why i ask, it just seems strange and nonobvious | 12:41:49 | |
| (by "true entirely" i mean that doesn't explain what i'm seeing here) | 12:44:50 | |
| i checked an aarch64-linux binary not from Nixpkgs and it doesn't have the interpreter in print-needed either, so i think that rules out being a patchelf issue | 12:45:54 | |
| i just don't know where else the interpreter would get added to needed other than in ld-wrapper, and i do not see it there | 12:46:30 | |
| just seems very very strange that this is only happening on aarch64 🙃 | 12:54:05 | |
| apologies for the maybe nonsensical rambling trofi, but hopefully those clarifications make the issue(?) clear that it's not the interpreter i'm talking about. i really don't know where to go from here, though, so any help is appreciated. thank you! | 15:37:24 | |
| Do you have an 'lddtree' output on problematic file? Does it show ldso output anywhere except the interpreter? | 17:45:31 | |
| I generally have less faith in patchelf than readelf or objdump when it comes to parsing elves. | 17:49:47 | |
| Oh, it's really added via DT_NEEDED /o\ | 17:55:54 | |
That looks very wrong. patchelf might not have shrunk NEEDED section size and spilled over to INTERP. I'll try to reproduce using qemu-user locally. | 18:02:11 | |
| Thank you! If you'd like, I can get an lddtree output sometime today. | 18:39:12 | |
| * Thank you for looking into it! If you'd like, I can get an lddtree output sometime today. | 18:45:48 | |
| though I suppose you don't need it since you can just get it with qemu-user | 18:45:59 | |
Yeah, x86_64-linux lddtree works as is on aarch64-linux binary from hydra and shows the same unexpected dependency. | 19:35:49 | |
| Got it, wasn't sure if lddtree used ldd or not. | 20:51:28 | |
| Definitely odd that this only happens on aarch64-linux... are ELF headers really that different between the architectures? | 20:52:13 | |
| Most header types are the same and mainly differ only by endianness or by field sizes (32 vs 64 bits). But some sections are architecture-specific, like relocations (.rela / .rela.dyn). | 22:15:13 | |
Looks like it's intentional after all: It's added by ...-glibc-2.35-224/lib/libc.so: GROUP ( ...-glibc-2.35-224/lib/libc.so.6 ...-glibc-2.35-224/lib/libc_ nonshared.a AS_NEEDED ( ...-glibc-2.35-224/lib/ld-linux-aarch64.so.1 ) ) and provides __stack_chk_guard@@GLIBC_2.17 symbol. | 22:26:15 | |
| 8 Mar 2023 | ||
In reply to @trofi:matrix.orgWhere did you find this info? Now I'm curious why I don't see the stack check guard in e.g. Guix's hello binary 🤔 | 02:22:13 | |
| Thanks for looking into it by the way | 02:22:23 | |
In reply to @trofi:matrix.org* Where did you find this info? | 02:53:19 | |
In reply to @winterqt:nixos.devThat's the libc.so text-file. | 07:23:25 | |
In reply to @winterqt:nixos.dev Ran
Then explore unstripped/unpatchelf-ed | 07:30:07 | |
In reply to @winterqt:nixos.dev* Ran
Then explored unstripped/unpatchelf-ed | 07:36:32 | |
In reply to @winterqt:nixos.dev* That's the libc.so text-file. | 08:09:19 | |
| 14 Mar 2023 | ||
| 01:09:43 | ||
| 18 Mar 2023 | ||
| 10:48:18 | ||
| 20 Mar 2023 | ||
not sure if the fetchers are stdenv material, but looks like fetchpatch2 changes have broken curls passthru tests 🙂 cc Artturin | 15:07:53 | |