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 <[email protected]> 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 ()