guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

smallerizing bootstrap guile?


From: Efraim Flashner
Subject: smallerizing bootstrap guile?
Date: Mon, 4 Nov 2019 12:57:56 +0200
User-agent: Mutt/1.12.2 (2019-09-21)

Ok, 'smallerizing' isn't a real word.

I'm trying again to see about porting Guix to 32-bit powerpc and I've
come across a problem with the static guile. static guile has bin/
share/ and lib/ outputs. Looking at (gnu packages bootstrap), the
make-guile-wrapper function around line 377 takes its own bin/guile to
wrap itself in the code from share and the precompiled go files in lib/.
Unfortunately on powerpc I'm getting the error:

/gnu/store/krb9h94g81f4xgsjwfs58p8fiir5gmpq-build-bootstrap-guile.sh: line 8:   
  5 Segmentation fault      GUILE_SYSTEM_PATH=$out/share/guile/2.2 
GUILE_SYSTEM_COMPILED_PATH=$out/lib/guile/2.2/ccache $out
/bin/guile -c "(begin (use-modules (ice-9 match)) (match (command-line) ((_ out 
bash) (let ((bin-dir (string-append out \"/bin\")) (guile (string-append out 
\"/bin/guile\")) (guile-real (string-append out
 \"/bin/.guile-real\")) (dollar (string (integer->char 36)))) (chmod bin-dir 
493) (rename-file guile guile-real) (call-with-output-file guile (lambda (p) 
(format p \"#!~a\\nexport GUILE_SYSTEM_PATH=~a/sha
re/guile/2.2\\nexport GUILE_SYSTEM_COMPILED_PATH=~a/lib/guile/2.2/ccache\\nexec 
-a \\\"~a0\\\" ~a \\\"~a@\\\"\\n\" bash out out dollar guile-real dollar))) 
(chmod guile 365) (chmod bin-dir 365)))))" $out
/gnu/store/rbz12p3wl7dlrn5gyk6yp62ixmcir3vb-bash
/gnu/store/krb9h94g81f4xgsjwfs58p8fiir5gmpq-build-bootstrap-guile.sh: line 11:  
   6 Segmentation fault      $out/bin/guile --version
builder for 
`/gnu/store/cr6anc23kmprmilvyhi721b5b4sacln5-guile-bootstrap-2.2.drv' failed 
with exit code 139

If I change it so that GUILE_SYSTEM_COMPILED_PATH="" then it seems to
recompile in memory the .go files for each subsequent thing it builds
and then throw them out.

Is there a good way to actually compile the .go files and use them to
replace the ones shipped in the guile-static tarball?
Can we do this on purpose and ship just the bin/ output, grab guile
sources and compile it for real? Or can I delete the .go files, take the
.scm files and compile them? Any hints on the guild invocation?


-- 
Efraim Flashner   <address@hidden>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]