On Wed, Nov 06, 2019 at 06:35:09PM +0100, Ludovic Courtès wrote: > Hi! > > Efraim Flashner skribis: > > > 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 > > Indeed, here’s what I see: > > --8<---------------cut here---------------start------------->8--- > $ ./pre-inst-env guix build guile-static-stripped --target=powerpc-linux-gnu > 5.5 MB will be downloaded: > /gnu/store/nsscff8a2yic1x4cgdqlzd5829asln4w-guile-static-stripped-2.2.6 > substituting /gnu/store/nsscff8a2yic1x4cgdqlzd5829asln4w-guile-static-stripped-2.2.6... > downloading from https://ci.guix.gnu.org/nar/lzip/nsscff8a2yic1x4cgdqlzd5829asln4w-guile-static-stripped-2.2.6... > guile-static-stripped-2.2.6 5.2MiB 2.2MiB/s 00:02 [##################] 100.0% > > /gnu/store/nsscff8a2yic1x4cgdqlzd5829asln4w-guile-static-stripped-2.2.6 > $ qemu-ppc /gnu/store/nsscff8a2yic1x4cgdqlzd5829asln4w-guile-static-stripped-2.2.6/bin/guile -q > guile: warning: failed to install locale > qemu: uncaught target signal 11 (Segmentation fault) - core dumped > Adres-eraro > $ git log |head -1 > commit 198a7ac02fe52acfed996cb66d3c79e2e8595747 > --8<---------------cut here---------------end--------------->8--- > > I’d need a cross-gdb for powerpc-linux-gnu to actually get a backtrace, > though. > > Are you able to get a backtrace on the actual PowerPC machine? > strace was easy to do, I have that attached. I haven't used gdb very much. Here's the initial "I figured out how to make it do something": (ins)efraim@g4:~/guile-static$ gdb -q ./bin/guile Reading symbols from ./bin/guile... (No debugging symbols found in ./bin/guile) (ins)(gdb) run Starting program: /home/efraim/guile-static/bin/guile guile: warning: failed to install locale Program received signal SIGSEGV, Segmentation fault. 0x10073d90 in ?? () I figured it was worth trying with other architectures, so I built %guile-static-stripped for x86_64-linux: ./pre-inst-env guix build -e '(@@ (gnu packages make-bootstrap) %guile-static-stripped)' but that one didn't have any problems. Now I'm building it for i686-linux. After that I'll try again with the bootstrap-tarballs, but i686-linux -> powerpc-linux and see if that changes anything. > Thanks, > Ludo’. -- Efraim Flashner אפרים פלשנר GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted