From mboxrd@z Thu Jan 1 00:00:00 1970 From: Michael Zucchi Subject: bug#40740: guix build problem, no RUNPATH on libpthread.so Date: Wed, 22 Apr 2020 10:05:28 +0930 Message-ID: <379a0838-8c5a-29cf-f8d5-cf9a6d7b2c76@gmail.com> References: <2cab4e5f-c9f5-f05a-625f-01e1b02ae4ce@gmail.com> <20200421053635.GC10788@E5400> Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="------------509AE652076AD61837E345E1" Return-path: Received: from eggs.gnu.org ([2001:470:142:3::10]:36220) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jR3N2-0000lR-GF for bug-guix@gnu.org; Tue, 21 Apr 2020 20:36:11 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.90_1) (envelope-from ) id 1jR3Mz-000088-9B for bug-guix@gnu.org; Tue, 21 Apr 2020 20:36:06 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:39412) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jR3Mw-0008QV-Pp for bug-guix@gnu.org; Tue, 21 Apr 2020 20:36:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1jR3Mw-0001cU-C8 for bug-guix@gnu.org; Tue, 21 Apr 2020 20:36:02 -0400 Sender: "Debbugs-submit" Resent-Message-ID: In-Reply-To: Content-Language: en-AU List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guix-bounces+gcggb-bug-guix=m.gmane-mx.org@gnu.org Sender: "bug-Guix" To: zimoun , Efraim Flashner Cc: 40740@debbugs.gnu.org, help-guix This is a multi-part message in MIME format. --------------509AE652076AD61837E345E1 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit 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 --------------509AE652076AD61837E345E1 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: 8bit

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


    

--------------509AE652076AD61837E345E1--