Subject: bug#38055: patchelf: Assertion failed when setting interpreter

From: Ludovic Courtès <[email-masked]>
Date: Tue, 05 Nov 2019 15:12:23 +0100

Hi Ivan,

Ivan Vilata i Balaguer <[email-masked]> skribis:

> Hi, I'm using patchelf 0.8 from Guix commit 7f81cce3 on Debian Sid.  When
> trying to patch the `go` binary from
> <https://dl.google.com/go/go1.12.3.linux-amd64.tar.gz>, I get the following
> error:
>
>     ivan@sax /tmp/tmps2Cv6w [env]$ patchelf --print-interpreter $SHELL
>     /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/lib/ld-linux-x86-64.so.2
>     ivan@sax /tmp/tmps2Cv6w [env]$ patchelf --set-interpreter $(patchelf --print-interpreter $SHELL) /tmp/tmps2Cv6w/golang/bin/go
>     patchelf: patchelf.cc:701: void ElfFile<Elf_Ehdr, Elf_Phdr, Elf_Shdr, Elf_Addr, Elf_Off, Elf_Dyn, Elf_Sym>::rewriteSectionsExecutable() \
>      [with Elf_Ehdr = Elf64_Ehdr; Elf_Phdr = Elf64_Phdr; Elf_Shdr = Elf64_Shdr; Elf_Addr = long unsigned int; Elf_Off = long unsigned int; \
>      Elf_Dyn = Elf64_Dyn; Elf_Sym = Elf64_Sym]: Assertion `(off_t) rdi(hdr->e_shoff) >= startOffset' failed.
>     Aborted

I think it’s a bug you should report upstream to the PatchELF
maintainers; it’s probably not Guix-specific.

Thanks,
Ludo’.