unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
From: Ivan Vilata i Balaguer <ivan@selidor.net>
To: Efraim Flashner <efraim@flashner.co.il>
Cc: 38055@debbugs.gnu.org, Ivan Vilata i Balaguer <ivan@selidor.net>
Subject: bug#38055: patchelf: Assertion failed when setting interpreter
Date: Wed, 6 Nov 2019 16:42:21 -0500	[thread overview]
Message-ID: <20191106214221.GL17621@sax.terramar.selidor.net> (raw)
In-Reply-To: <20191105161822.GG14453@E5400>

Efraim Flashner (2019-11-05 18:18:22 +0200) wrote:

> On Tue, Nov 05, 2019 at 03:12:23PM +0100, Ludovic Courtès wrote:
> > 
> > Ivan Vilata i Balaguer <ivan@selidor.net> 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.
> 
> On the other hand, if I were the patchelf maintainers, I'd suggest
> upgrading our package from 0.8 to a newer version.

Yeah, as I mentioned in the original mail that particular problem does indeed
seem to be fixed in 0.10.  However when I try to build that source with `guix
build patchelf --with-source=…`, tests fail.

If I run `guix environment -C --pure patchelf` then unpack and build the
source, the only test that actually fails is `no-rpath.sh`.  If I run `sh -x
no-rpath.sh` I get this:

```
++ basename no-rpath.sh .sh
+ SCRATCH=scratch/no-rpath
+ rm -rf scratch/no-rpath
+ mkdir -p scratch/no-rpath
+ cp no-rpath scratch/no-rpath/
++ ../src/patchelf --print-rpath scratch/no-rpath/no-rpath
+ oldRPath=/gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/lib:/gnu/store/2plcy91lypnbbysb18ymnhaw3zwk8pg1-gcc-7.4.0-lib/lib:/gnu/store/2plcy91lypnbbysb18ymnhaw3zwk8pg1-gcc-7.4.0-lib/lib/gcc/x86_64-unknown-linux-gnu/7.4.0/../../..:/gnu/store/dcrwf5irwh39knld1wim1qkny659af9g-profile/lib
+ test -n /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/lib:/gnu/store/2plcy91lypnbbysb18ymnhaw3zwk8pg1-gcc-7.4.0-lib/lib:/gnu/store/2plcy91lypnbbysb18ymnhaw3zwk8pg1-gcc-7.4.0-lib/lib/gcc/x86_64-unknown-linux-gnu/7.4.0/../../..:/gnu/store/dcrwf5irwh39knld1wim1qkny659af9g-profile/lib
+ exit 1
```

To succeed, the output of `…/patchelf --print-rpath …/no-rpath`
(i.e. `oldRPath`) should be empty.  I'm not that familiar with Guix's GNU
build system, but is that at all possible under Guix?  I mean, maybe the test
is pointless or must be altered in some Guix-specific way for the `no-rpath`
binary not to have an rpath.

Cheers,

-- 
Ivan Vilata i Balaguer -- https://elvil.net/

  reply	other threads:[~2019-11-06 21:44 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-04  4:56 bug#38055: patchelf: Assertion failed when setting interpreter Ivan Vilata i Balaguer
2019-11-05 14:12 ` Ludovic Courtès
2019-11-05 16:18   ` Efraim Flashner
2019-11-06 21:42     ` Ivan Vilata i Balaguer [this message]
2019-11-07 20:55       ` Ludovic Courtès
2019-11-09 18:25 ` bug#38055: (no subject) Efraim Flashner
2019-11-10 14:14   ` bug#38055: none Ludovic Courtès
2019-11-11  9:27     ` Efraim Flashner
2019-11-11 15:10       ` Ivan Vilata i Balaguer
2019-11-11 15:30         ` Ivan Vilata i Balaguer
2019-11-12  5:19         ` Ivan Vilata i Balaguer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20191106214221.GL17621@sax.terramar.selidor.net \
    --to=ivan@selidor.net \
    --cc=38055@debbugs.gnu.org \
    --cc=efraim@flashner.co.il \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).