On Wed, Jul 29, 2020 at 01:25:00AM -0400, Kurt Mosiejczuk wrote:
> On Tue, Jul 28, 2020 at 11:59:03PM -0400, George Koehler wrote:
>
> > This update might break sparc64. I don't have sparc64, but found a
> > bug in 20.4.24 on powerpc64 that might affect other 64-bit big-endian
> > arch (mips64 and sparc64). It's BROKEN-mips64, but the sparc64 snap
> > has packages of clic and maxima with ecl-16.1.3.p3.
>
> > The ecl update has been stuck because it breaks net/clic (as Solene
> > said). In other ways, the update looks good to me.
>
> > ecl-20.4.24 works on macppc, has the same number of failures as amd64:
>
> > Did 245 tests (0 crashed), 17999 checks.
> > Pass: 17912 (100%)
> > Fail: 87 ( 0%)
>
> > reed-alert seems to work on macppc.
>
> > I didn't try maxima on macppc. For maxima on amd64, I replicated the
> > test results that Timo posted, and I can run xmaxima.
>
> > For the bug in 20.4.24 that broke my powerpc64, I need to write a bug
> > report for upstream. ecl_min calls ecl_symbol_value() before
> > init_all_symbols(); reads p = q->data.value too early; gets p == 2 on
> > most arch, p == 0x200000000 on 64-bit big-endian; but if (p & 3) == 0
> > then ecl_min fails with SIGSEGV. (powerpc64 also needs a diff for
> > lang/boehm-gc that I intend to share later.) --George
>
> 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"
My mips64 is still updating, but I see the same on sparc64:
===> Building for ecl-20.4.24
cd build; gmake
gmake[1]: Entering directory '/usr/ports/pobj/ecl-20.4.24/ecl-20.4.24/build'
Building libeclmin.a...
gmake[2]: Entering directory '/usr/ports/pobj/ecl-20.4.24/ecl-20.4.24/build/c'
Makefile:90: warning: ignoring prerequisites on suffix rule definition
Makefile:90: warning: ignoring prerequisites on suffix rule definition
Makefile:90: warning: ignoring prerequisites on suffix rule definition
Makefile:90: warning: ignoring prerequisites on suffix rule definition
Makefile:87: warning: ignoring prerequisites on suffix rule definition
Makefile:85: warning: ignoring prerequisites on suffix rule definition
Makefile:85: warning: ignoring prerequisites on suffix rule definition
Makefile:87: warning: ignoring prerequisites on suffix rule definition
dpp: /usr/ports/pobj/ecl-20.4.24/ecl-20.4.24/src/c/main.d -> main.o.c
In file included from
/usr/ports/pobj/ecl-20.4.24/ecl-20.4.24/build/ecl/stacks.h:23,
from
/usr/ports/pobj/ecl-20.4.24/ecl-20.4.24/build/ecl/ecl.h:89,
from /usr/ports/pobj/ecl-20.4.24/ecl-20.4.24/src/c/main.d:17:
/usr/ports/pobj/ecl-20.4.24/ecl-20.4.24/build/ecl/ecl_atomics.h:39:4: error:
#error "ECL needs AO_fetch_compare_and_swap or an equivalent"
# error "ECL needs AO_fetch_compare_and_swap or an equivalent"
^~~~~
/usr/ports/pobj/ecl-20.4.24/ecl-20.4.24/build/ecl/ecl_atomics.h: In function
'ecl_compare_and_swap':
/usr/ports/pobj/ecl-20.4.24/ecl-20.4.24/build/ecl/ecl_atomics.h:45:21: warning:
implicit declaration of function 'AO_fetch_compare_and_swap'; did you mean
'AO_HAVE_compare_and_swap'? [-Wimplicit-function-declaration]
return (cl_object)AO_fetch_compare_and_swap((AO_t*)slot, (AO_t)old_val,
(AO_t)new_val);
^~~~~~~~~~~~~~~~~~~~~~~~~
AO_HAVE_compare_and_swap
/usr/ports/pobj/ecl-20.4.24/ecl-20.4.24/build/ecl/ecl_atomics.h:45:10: warning:
cast to pointer from integer of different size [-Wint-to-pointer-cast]
return (cl_object)AO_fetch_compare_and_swap((AO_t*)slot, (AO_t)old_val,
(AO_t)new_val);
^
/usr/ports/pobj/ecl-20.4.24/ecl-20.4.24/src/c/main.d: In function 'si_exit':
/usr/ports/pobj/ecl-20.4.24/ecl-20.4.24/src/c/main.d:856:19: warning: unused
variable 'the_env' [-Wunused-variable]
cl_object
^
gmake[2]: *** [Makefile:88: main.o] Error 1
gmake[2]: Leaving directory '/usr/ports/pobj/ecl-20.4.24/ecl-20.4.24/build/c'
gmake[1]: *** [Makefile:144: libeclmin.a] Error 2
gmake[1]: Leaving directory '/usr/ports/pobj/ecl-20.4.24/ecl-20.4.24/build'
gmake: *** [Makefile:65: all] Error 2
*** Error 2 in . (/usr/ports/infrastructure/mk/bsd.port.mk:2925
'/usr/ports/pobj/ecl-20.4.24/.build_done': @cd /usr/ports/pobj/ecl-20.4.24/e...)
*** Error 2 in /usr/ports/mystuff/lang/ecl
(/usr/ports/infrastructure/mk/bsd.port.mk:2584 'all': @lock=ecl-20.4.24;
export _LOCKS_HELD=" ec...)