Hi folks, I could use a hand with some interesting problems with some of the basics of our VM and its support code.
1.) Upgrade of (parts) of the embedded gnulib. lib-src is part gnulib and part custom. We should update the gnulib parts to address compiler warnings to work better with the current toolchain. gnulib: https://www.gnu.org/software/gnulib/ 2.) Sporadic crashes when resuming an image When running the testsuite (docker container on arm64) I do see sporadic failures when resuming the image. Somehow we _sometimes_ trigger a global GC when loading the _same_ image. #0 0x0000ffffa21c42ac in raise () from /lib/aarch64-linux-gnu/libc.so.6 #1 0x0000ffffa21b0ea0 in abort () from /lib/aarch64-linux-gnu/libc.so.6 #2 0x0000ffffa23fe2e0 in oldspace_sigsegv_handler (fault_address=0x0, serious=<optimized out>) at oop.c:961 #3 0x0000ffffa2179ea8 in ?? () from /usr/lib/aarch64-linux-gnu/libsigsegv.so.2 #4 <signal handler called> #5 empty_context_stack () at interp.c:746 #6 0x0000ffffa2442d40 in _gst_fixup_object_pointers () at interp.c:2461 #7 0x0000ffffa24001b0 in _gst_global_gc (next_allocation=4096) at oop.c:1101 #8 0x0000ffffa240078c in oldspace_nomemory (h=<optimized out>, sz=<optimized out>) at oop.c:919 #9 0x0000ffffa2421268 in _gst_mem_alloc (h=0x2968f20, sz=sz@entry=2080) at alloc.c:264 #10 0x0000ffffa2410e64 in load_normal_oops (imageFd=3) at save.c:644 #11 load_snapshot (imageFd=imageFd@entry=3) at save.c:511 #12 0x0000ffffa2411528 in _gst_load_from_file (fileName=<optimized out>) at save.c:473 #13 0x0000ffffa23e4938 in _gst_initialize (kernel_dir=0x29555f0 "/smalltalk/smalltalk/tests/kernel", image_file=<optimized out>, flags=0) at files.c:498 #14 0x0000ffffa23e3f44 in gst_initialize (kernel_dir=<optimized out>, image_file=<optimized out>, flags=<optimized out>) at gstpub.c:156 #15 0x00000000004012d8 in main (argc=<optimized out>, argv=<optimized out>) at main.c:386 3.) bison, genbc and modern linkers When linking genbc we start to see a linker error about multiple definitions with ld.gold. This is because we have two grammars and try to link them into a single binary. bison allows us to prefix these symbols but then the tooling needs to handle this. /usr/bin/ld: genbc-impl.o:/smalltalk/libgst/genbc-impl.c:927: multiple definition of `yynerrs'; genbc-decl.o:/smalltalk/libgst/genbc-decl.c:1030: first defined here /usr/bin/ld: genbc-impl.o:/smalltalk/libgst/genbc-impl.c:925: multiple definition of `yylval'; genbc-decl.o:/smalltalk/libgst/genbc-decl.c:1028: first defined here /usr/bin/ld: genbc-impl.o:/smalltalk/libgst/genbc-impl.c:922: multiple definition of `yychar'; genbc-decl.o:/smalltalk/libgst/genbc-decl.c:1025: first defined here 4.) Support for darwin on Apple silicon Apple does not support executable stacks on the M1 and when linking without it, gst does start crashing early. This problem is interesting but not a release blocker.