On Wed, Nov 06, 2019 at 06:35:09PM +0100, Ludovic Courtès wrote: > Hi! > > Efraim Flashner <efr...@flashner.co.il> 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 <efr...@flashner.co.il> אפרים פלשנר GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted
execve("./bin/guile", ["./bin/guile", "-q"], 0xbfeb83ec /* 27 vars */) = 0 brk(NULL) = 0x1076b000 brk(0x1076bd48) = 0x1076bd48 uname({sysname="Linux", nodename="g4", ...}) = 0 set_tid_address(0x1076b068) = 2734 set_robust_list(0x1076b070, 12) = 0 rt_sigaction(SIGRTMIN, {sa_handler=0x100f50f8, sa_mask=[], sa_flags=SA_SIGINFO}, NULL, 8) = 0 rt_sigaction(SIGRT_1, {sa_handler=0x100f51dc, sa_mask=[], sa_flags=SA_RESTART|SA_SIGINFO}, NULL, 8) = 0 rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0 ugetrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0 readlink("/proc/self/exe", "/home/efraim/guile-static/bin/gu"..., 4096) = 35 brk(0x1078cd48) = 0x1078cd48 brk(0x1078d000) = 0x1078d000 openat(AT_FDCWD, "/run/current-system/locale/2.29/locale-archive", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/gnu/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-glibc-cross-powerpc-linux-gnu-2.29/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/run/current-system/locale/2.29/en_US.UTF-8/LC_IDENTIFICATION", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/run/current-system/locale/2.29/en_US.utf8/LC_IDENTIFICATION", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/run/current-system/locale/2.29/en_US/LC_IDENTIFICATION", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/run/current-system/locale/2.29/en.UTF-8/LC_IDENTIFICATION", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/run/current-system/locale/2.29/en.utf8/LC_IDENTIFICATION", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/run/current-system/locale/2.29/en/LC_IDENTIFICATION", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) write(2, "guile: warning: failed to instal"..., 41) = 41 futex(0x1034dd54, FUTEX_WAKE_PRIVATE, 2147483647) = 0 openat(AT_FDCWD, "/proc/self/maps", O_RDONLY|O_CLOEXEC) = 3 ugetrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0 fstat64(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0 read(3, "00100000-00103000 r-xp 00000000 "..., 1024) = 380 close(3) = 0 sched_getaffinity(2734, 32, [0]) = 4 brk(0x1079d000) = 0x1079d000 brk(0x107ad000) = 0x107ad000 brk(0x107bd000) = 0x107bd000 brk(0x107cd000) = 0x107cd000 brk(0x107dd000) = 0x107dd000 rt_sigaction(SIGPWR, {sa_handler=0x100e6590, sa_mask=~[INT QUIT ABRT TERM RTMIN RT_1], sa_flags=SA_RESTART|SA_SIGINFO}, NULL, 8) = 0 rt_sigaction(SIGXCPU, {sa_handler=0x100e6280, sa_mask=~[INT QUIT ABRT TERM RTMIN RT_1], sa_flags=SA_RESTART}, NULL, 8) = 0 rt_sigprocmask(SIG_UNBLOCK, [XCPU PWR], NULL, 8) = 0 openat(AT_FDCWD, "/proc/stat", O_RDONLY) = 3 read(3, "cpu 2783050 8294 428571 3066401"..., 4096) = 1344 close(3) = 0 swapcontext(0xbff823d8, 0) = 0 brk(0x1085d000) = 0x1085d000 pipe2([3, 4], O_CLOEXEC) = 0 futex(0x1034dca8, FUTEX_WAKE_PRIVATE, 2147483647) = 0 clock_gettime(CLOCK_PROCESS_CPUTIME_ID, {tv_sec=0, tv_nsec=10033856}) = 0 openat(AT_FDCWD, "/dev/urandom", O_RDONLY|O_LARGEFILE) = 5 fstat64(5, {st_mode=S_IFCHR|0666, st_rdev=makedev(0x1, 0x9), ...}) = 0 ioctl(5, TCGETS, 0xbff82848) = -1 EINVAL (Invalid argument) read(5, "#ms\22\0\230\376\224Q\0011g\223\305}\201\5=\n\23\315Y\t\213\270\16]\217#\351\326Y"..., 4096) = 4096 close(5) = 0 brk(0x1086d000) = 0x1086d000 openat(AT_FDCWD, "/gnu/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-glibc-cross-powerpc-linux-gnu-2.29/lib/gconv/gconv-modules.cache", O_RDONLY) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/gnu/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-glibc-cross-powerpc-linux-gnu-2.29/lib/gconv/gconv-modules", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) futex(0x10360970, FUTEX_WAKE_PRIVATE, 2147483647) = 0 ioctl(0, TCGETS, {B38400 opost isig icanon echo ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7c3e000 fcntl64(0, F_GETFL) = 0x2 (flags O_RDWR) _llseek(0, 0, 0xbff823b8, SEEK_CUR) = -1 ESPIPE (Illegal seek) ioctl(1, TCGETS, {B38400 opost isig icanon echo ...}) = 0 fcntl64(1, F_GETFL) = 0x2 (flags O_RDWR) _llseek(1, 0, 0xbff823b8, SEEK_CUR) = -1 ESPIPE (Illegal seek) ioctl(2, TCGETS, {B38400 opost isig icanon echo ...}) = 0 fcntl64(2, F_GETFL) = 0x2 (flags O_RDWR) _llseek(2, 0, 0xbff823b8, SEEK_CUR) = -1 ESPIPE (Illegal seek) readlink("/proc/self/exe", "/home/efraim/guile-static/bin/gu"..., 256) = 35 lstat64("/home", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 lstat64("/home/efraim", {st_mode=S_IFDIR|0755, st_size=12288, ...}) = 0 lstat64("/home/efraim/guile-static", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 lstat64("/home/efraim/guile-static/bin", {st_mode=S_IFDIR|0555, st_size=4096, ...}) = 0 stat64("/home/efraim/guile-static/share/guile/2.2/ice-9/eval.scm", {st_mode=S_IFREG|0444, st_size=25718, ...}) = 0 stat64("/home/efraim/guile-static/lib/guile/2.2/ccache/ice-9/eval.go", {st_mode=S_IFREG|0444, st_size=87205, ...}) = 0 openat(AT_FDCWD, "/home/efraim/guile-static/lib/guile/2.2/ccache/ice-9/eval.go", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 5 _llseek(5, 0, [87205], SEEK_END) = 0 mmap2(NULL, 87205, PROT_READ, MAP_PRIVATE, 5, 0) = 0xb7c28000 close(5) = 0 mprotect(0xb7c38000, 1892, PROT_READ|PROT_WRITE) = 0 prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0 stat64("/home/efraim/guile-static/share/guile/2.2/init.scm", 0xbff829c8) = -1 ENOENT (No such file or directory) stat64("/home/efraim/guile-static/share/guile/2.2/ice-9/boot-9.scm", {st_mode=S_IFREG|0444, st_size=147395, ...}) = 0 stat64("/home/efraim/guile-static/lib/guile/2.2/ccache/ice-9/boot-9.go", {st_mode=S_IFREG|0444, st_size=516405, ...}) = 0 openat(AT_FDCWD, "/home/efraim/guile-static/lib/guile/2.2/ccache/ice-9/boot-9.go", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 5 _llseek(5, 0, [516405], SEEK_END) = 0 mmap2(NULL, 516405, PROT_READ, MAP_PRIVATE, 5, 0) = 0xb7ba9000 close(5) = 0 mprotect(0xb7bf9000, 73376, PROT_READ|PROT_WRITE) = 0 stat64("/home/efraim/guile-static/share/guile/2.2/ice-9/psyntax-pp.scm", {st_mode=S_IFREG|0444, st_size=184880, ...}) = 0 stat64("/home/efraim/guile-static/lib/guile/2.2/ccache/ice-9/psyntax-pp.go", {st_mode=S_IFREG|0444, st_size=472565, ...}) = 0 openat(AT_FDCWD, "/home/efraim/guile-static/lib/guile/2.2/ccache/ice-9/psyntax-pp.go", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 5 _llseek(5, 0, [472565], SEEK_END) = 0 mmap2(NULL, 472565, PROT_READ, MAP_PRIVATE, 5, 0) = 0xb7b35000 close(5) = 0 mprotect(0xb7b85000, 34352, PROT_READ|PROT_WRITE) = 0 --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x31e8c378} --- +++ killed by SIGSEGV +++
signature.asc
Description: PGP signature