Hello! As reported in [1], guile segfaults on 32-bit big-endian targets with:
guild compile --target="hppa-unknown-linux-gnu" \ -W0 -O1 \ -L "/<<PKGBUILDDIR>>/module" \ -L "/<<PKGBUILDDIR>>/guile-readline" \ -o "language/tree-il/eta-expand.go" "../module/language/tree-il/eta-expand.scm" make[4]: *** [Makefile:1927: language/tree-il/eta-expand.go] Segmentation fault make[4]: *** Waiting for unfinished jobs.... make[4]: *** [Makefile:1927: language/tree-il/debug.go] Segmentation fault make[4]: *** [Makefile:1927: language/tree-il/analyze.go] Segmentation fault still going make[4]: *** [Makefile:1927: language/tree-il/effects.go] Segmentation fault make[4]: Leaving directory '/<<PKGBUILDDIR>>/bootstrap' make[3]: *** [Makefile:1851: all-recursive] Error 1 make[3]: Leaving directory '/<<PKGBUILDDIR>>' make[2]: *** [Makefile:1737: all] Error 2 make[2]: Leaving directory '/<<PKGBUILDDIR>>' make[1]: *** [debian/rules:192: override_dh_auto_build] Error 2 make[1]: Leaving directory '/<<PKGBUILDDIR>>' make: *** [debian/rules:104: build-arch] Error 2 dpkg-buildpackage: error: debian/rules build-arch subprocess returned exit status 2 Full build log in [2]. This affects hppa, m68k and powerpc (32-bit). Backtrace: #0 0x006e3e9c in scm_sum (x=x@entry=0x0, y=0x6) at numbers.c:7569 7569 else if (SCM_BIGP (x)) [Current thread is 1 (Thread 0xf7c34480 (LWP 529732))] (gdb) bt #0 0x006e3e9c in scm_sum (x=x@entry=0x0, y=0x6) at numbers.c:7569 #1 0x006cd498 in add_immediate (a=0x0, b=<optimized out>) at intrinsics.c:80 #2 0x00749818 in vm_regular_engine (thread=0xf7971e00) at vm-engine.c:1583 #3 0x0074c2f4 in scm_call_n (proc=proc@entry=0xeffbf148, argv=argv@entry=0x0, nargs=nargs@entry=0) at vm.c:1608 #4 0x006a70fc in scm_call_0 (proc=proc@entry=0xeffbf148) at eval.c:490 #5 0x006d39d8 in scm_primitive_load_path (args=<optimized out>) at load.c:1259 #6 0x006d3f28 in scm_c_primitive_load_path (filename=filename@entry=0x776458 "ice-9/boot-9") at load.c:1275 #7 0x006c9310 in scm_load_startup_files () at init.c:222 #8 0x006c96a8 in scm_i_init_guile (base=base@entry=0xffecfb18) at init.c:505 #9 0x0073b858 in scm_i_init_thread_for_guile (base=base@entry=0xffecfb18, dynamic_state=dynamic_state@entry=0x0) at threads.c:570 #10 0x0073ba1c in scm_i_init_thread_for_guile (dynamic_state=0x0, base=0xffecfb18) at threads.c:677 #11 with_guile (base=0xffecfb18, data=0xffecfb38) at threads.c:638 #12 0x003e17e4 in GC_call_with_stack_base () from /usr/lib/powerpc-linux-gnu/libgc.so.1 #13 0x0073bfb8 in scm_i_with_guile (dynamic_state=<optimized out>, data=0xffecfb28, func=0x6c90c0 <invoke_main_func>) at threads.c:688 #14 scm_with_guile (func=func@entry=0x6c90c0 <invoke_main_func>, data=data@entry=0xffecfb58) at threads.c:694 #15 0x006c93c8 in scm_boot_guile (argc=argc@entry=16, argv=argv@entry=0xffecfe14, main_func=main_func@entry=0x800950 <inner_main>, closure=closure@entry=0x0) at init.c:290 #16 0x00800754 in main (argc=16, argv=0xffecfe14) at guile.c:95 (gdb) I assume the crash has got something to do how values are packed and unpacked into the SCM object type. I have not been able to find the problem yet myself, unfortunately which is why I am reporting this issue here. For anyone willing to debug this, access to a fast POWER machine running a big-endian Debian unstable can be obtained through the GCC compile farm [3]. Thanks, Adrian > [1] https://lists.gnu.org/archive/html/guile-devel/2020-12/msg00003.html > [2] > https://buildd.debian.org/status/fetch.php?pkg=guile-3.0&arch=hppa&ver=3.0.4-3&stamp=1607546304&raw=0 > [3] https://gcc.gnu.org/wiki/CompileFarm -- .''`. John Paul Adrian Glaubitz : :' : Debian Developer - glaub...@debian.org `. `' Freie Universitaet Berlin - glaub...@physik.fu-berlin.de `- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913