Subject: bug#40740: guix build problem, no RUNPATH on libpthread.so

From: Michael Zucchi <[email-masked]>
Date: Wed, 22 Apr 2020 10:05:28 +0930

G'day Simon,

On 21/4/20 5:25 pm, zimoun wrote:
> Dear Michael,
>
>> On Tue, Apr 21, 2020 at 09:41:47AM +0930, Michael Zucchi wrote:
>>> But the first guix pull fails because it tries to run a 32 bit binary, so
>>> ultimately fails for the the same reason as detailed in my previous email.
> To be sure to understand,
>   - your machine is 64bit
>   - and you are running Guix on the top of Slackware
>   - Guix has been installed using this script
> https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh
> Right?

Correct although I can't remember if i ran the script or used the steps 
in the manual 
[https://guix.gnu.org/manual/en/html_node/Binary-Installation.html].   
slackware doesn't use one of the supported init systems and all the 
steps it performs are trivial so i might've skipped it.  guix with 
substitutions was working ok for the limited use I made of it.

> Then, something screws up and some 32bit stuff shows up, right?

Well yes and no - nothing screws up and the behaviour is intended it 
just doesn't work.   As i found[2] 4 months ago, the bootstrap package 
explicitly uses i686 binaries for amd64 because (I presume) they are 
statically linked and all amd64 hardware supports executing 32-bit mode 
code.  But my linux configuration disables it because i don't need or 
want it.

It all happens here:

https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/bootstrap.scm#n128

|(define bootstrap-executable (mlambda (program system) "Return an 
origin for PROGRAM, a statically-linked bootstrap executable built for 
SYSTEM." ;>>>>>>>>>>>>>>  (let ((system (if (string=? system 
"x86_64-linux") "i686-linux" system))) ;<<<<<<<<<<<<<<  (match 
(assoc-ref (assoc-ref %bootstrap-executables system) program) (#f (raise 
(condition (&message (message (format #f (G_ "could not find bootstrap 
binary '~a' \ for system '~a'") program system)))))) ((sha256) (origin 
(method url-fetch/executable) (uri (bootstrap-executable-url program 
system)) (file-name program) (sha256 sha256))))))) |

||
||
|I attempted modifying this to use 64-bit binaries at the time but it 
wouldn't use the ones i supplied when it|
|came to executing the tests.  So I dropped it as it was going nowhere 
fast, nobody seemed interested, and had
other things to do like xmas. ||Those failed attempts are long gone.|
||
||
||
> The previous emails related to this topic you mentioned ("I posted
> about this months ago but I think I got no answers") in this thread
> are [1] and [2], right?
>
> [1] https://lists.gnu.org/archive/html/help-guix/2019-12/msg00111.html
> [2] https://lists.gnu.org/archive/html/help-guix/2019-12/msg00131.html
>
Yeah.

> All the best,
> simon

Cheers,
  Z