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 ()

Reply via email to