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