On Wed, Jul 29, 2020 at 11:52:25PM -0400, Kurt Mosiejczuk wrote: > On Wed, Jul 29, 2020 at 11:05:31PM -0400, George Koehler wrote: > > On Wed, 29 Jul 2020 01:25:00 -0400 > > Kurt Mosiejczuk <k...@cranky.work> wrote: > > > > I gave building it a try, it died early on with: > > > > /usr/ports/pobj/ecl-20.4.24/ecl-20.4.24/build/ecl/ecl_atomics.h:39:4: > > > error: #er > > > ror "ECL needs AO_fetch_compare_and_swap or an equivalent" > > > # error "ECL needs AO_fetch_compare_and_swap or an equivalent" > > > Thank you for the speedy test. libatomic_ops in devel/boehm-gc is > > missing AO_fetch_compare_and_swap for sparc. It's still missing > > upstream: > > > https://github.com/ivmai/libatomic_ops/blob/master/src/atomic_ops/sysdeps/gcc/sparc.h#L64 > > > In this diff to devel/boehm-gc, I have tried to provide the missing > > function (by copying AO_compare_and_swap_full, guessing, and referring > > to SPARCV9.pdf, A.9 Compare and Swap, page 129), but I don't know > > whether it compiles. Even if it compiles, if sparc64 will have the > > ecl_symbol_value bug, we won't know if it works. I left my other > > local changes (mmap and powerpc64) in the diff. > > > I describe the 64-bit big-endian ecl_symbol_value bug at > > https://gitlab.com/embeddable-common-lisp/ecl/-/issues/604 > > Unfortunately, even with boehm-gc compiled with this, ecl fails to > build with the same message.
It built for me, did you install the new libatomic_ops package too? I notice that "make install" only installed the boehm-gc package. With George's patch, it segfaults in ecl_min as he predicted, similarly to mips64: Building ecl_min... libeclmin.a(unixfsys.o): In function `ecl_backup_open': unixfsys.o.c:(.text+0x4a8): warning: strcpy() is almost always misused, please use strlcpy() /usr/local/lib/libgmp.so.11.0: warning: vsprintf() is often misused, please use vsnprintf() libeclmin.a(num_rand.o): In function `init_random_state': num_rand.o.c:(.text+0x2ac): warning: rand() may return deterministic values, is that what you want? Internal or unrecoverable error in: Got signal before environment was installed on our thread Abort trap (core dumped) gmake[1]: *** [Makefile:99: bin/ecl] Error 134 (gdb) bt #0 *_libc_abort () at /usr/src/lib/libc/stdlib/abort.c:57 #1 0x0000006af5d32f4c in ecl_internal_error () #2 0x0000006af5d64194 in sigsegv_handler () #3 <signal handler called> #4 0x0000006af5d05154 in ecl_find_package_nolock () #5 0x0000006af5d054c0 in ecl_make_package () #6 0x0000006af5d022bc in cl_boot () #7 0x0000006af5d00f6c in main ()