This build was made with local root It contains patches in addition to posix_spawn which allows to build it on macOS 13 arm64 under rosetta:
--- unixport/makefile +++ unixport/makefile @@ -68,7 +68,7 @@ $(LSPDIR)/auto_new.lsp: $(LSPDIR)/auto.lsp echo "(AUTOLOAD 'init-readline '|readline|)" >>$@ libboot.so: ../o/boot.o - $(CC) -shared -Wl,-undefined -Wl,dynamic_lookup $< -o $@ + $(CC) $(CFLAGS) -shared -Wl,-undefined -Wl,dynamic_lookup $< -o $@ init_raw.lsp: init_raw.lsp.in @@ -84,7 +84,7 @@ boot.h: boot.ini rm $*.c $(DPP): ../bin/dpp.c - ${CC} ${DEFS} -o $@ $< + ${CC} ${CFLAGS} ${DEFS} -o $@ $< new_init.c: ${INI_FILES} echo '#include "make-init.h"' > $@ Can you consider to add it to the upstream? Thus, additionaly I've added patch below to catch the real place where it crashes: --- o/main.c +++ o/main.c @@ -665,10 +665,10 @@ main(int argc, char **argv, char **envp) { /* catch certain signals */ void install_segmentation_catcher(void) { - unblock_signals(SIGSEGV,SIGSEGV); - unblock_signals(SIGBUS,SIGBUS); - (void) gcl_signal(SIGSEGV,segmentation_catcher); - (void) gcl_signal(SIGBUS,segmentation_catcher); +/* unblock_signals(SIGSEGV,SIGSEGV); */ +/* unblock_signals(SIGBUS,SIGBUS); */ +/* (void) gcl_signal(SIGSEGV,segmentation_catcher); */ +/* (void) gcl_signal(SIGBUS,segmentation_catcher); */ } void -- wbr, Kirill > On 23. Dec 2023, at 19:24, Camm Maguire <c...@maguirefamily.org> wrote: > > Just checking my understanding : 'gcl-devel' crashes in a different > place, and both of these are only with the posix_spawn patch, right? > > Take care, > > "Kirill A. Korinsky" <kir...@korins.ky> writes: > >> I did a bit more wired things. I add to each line inside siLheap_report a >> printf like this: >> >> static void >> FFN(siLheap_report)(void) { >> >> int i; >> >> check_arg(0); >> printf("1\n");fflush(stdout); >> >> vs_check_push(make_fixnum(sizeof(fixnum)*CHAR_SIZE)); >> printf("2\n");fflush(stdout); >> vs_push(make_fixnum(PAGESIZE)); >> printf("3\n");fflush(stdout); >> vs_push(make_fixnum((ufixnum)data_start)); >> printf("4\n");fflush(stdout); >> vs_push(make_fixnum((ufixnum)data_start+(real_maxpage<<PAGEWIDTH))); >> printf("5\n");fflush(stdout); >> vs_push(make_fixnum(0));/*SHARED_LIB_HEAP_CEILING*/ >> printf("6\n");fflush(stdout); >> i=sizeof(fixnum)*CHAR_SIZE-2; >> printf("7\n");fflush(stdout); >> i=1<<i; >> printf("8\n");fflush(stdout); >> vs_push(make_fixnum(((unsigned long)cs_base+i-1)&-i)); >> printf("9\n");fflush(stdout); >> vs_push(make_fixnum(labs(cs_base-cs_org))); >> printf("10\n");fflush(stdout); >> vs_push(make_fixnum((CSTACK_DIRECTION+1)>>1)); >> printf("11\n");fflush(stdout); >> vs_push(make_fixnum(CSTACK_ALIGNMENT)); >> printf("12\n");fflush(stdout); >> vs_push(make_fixnum(labs(cs_limit-cs_org)));/*CSSIZE*/ >> printf("13\n");fflush(stdout); >> vs_push(make_fixnum(phys_pages)); >> ... >> >> and it fails at the end like this. >> >> SYSTEM>(init-system) >> loading >> /opt/local/var/macports/build/_opt_local_var_macports_sources_github.com_catap_macports-ports_lang_gcl/gcl-devel/work/01ed2e0b2f540031171d2258ddccb951735827e7/gcl/unixport/../lsp/gcl_s.lsp >> loading >> /opt/local/var/macports/build/_opt_local_var_macports_sources_github.com_catap_macports-ports_lang_gcl/gcl-devel/work/01ed2e0b2f540031171d2258ddccb951735827e7/gcl/unixport/../lsp/gcl_sf.lsp >> loading >> /opt/local/var/macports/build/_opt_local_var_macports_sources_github.com_catap_macports-ports_lang_gcl/gcl-devel/work/01ed2e0b2f540031171d2258ddccb951735827e7/gcl/unixport/../lsp/gcl_rm.lsp >> loading >> /opt/local/var/macports/build/_opt_local_var_macports_sources_github.com_catap_macports-ports_lang_gcl/gcl-devel/work/01ed2e0b2f540031171d2258ddccb951735827e7/gcl/unixport/../lsp/gcl_dl.lsp >> loading >> /opt/local/var/macports/build/_opt_local_var_macports_sources_github.com_catap_macports-ports_lang_gcl/gcl-devel/work/01ed2e0b2f540031171d2258ddccb951735827e7/gcl/unixport/../lsp/gcl_fle.lsp >> loading >> /opt/local/var/macports/build/_opt_local_var_macports_sources_github.com_catap_macports-ports_lang_gcl/gcl-devel/work/01ed2e0b2f540031171d2258ddccb951735827e7/gcl/unixport/../lsp/gcl_defmacro.lsp >> loading >> /opt/local/var/macports/build/_opt_local_var_macports_sources_github.com_catap_macports-ports_lang_gcl/gcl-devel/work/01ed2e0b2f540031171d2258ddccb951735827e7/gcl/unixport/../lsp/gcl_hash.lsp >> loading >> /opt/local/var/macports/build/_opt_local_var_macports_sources_github.com_catap_macports-ports_lang_gcl/gcl-devel/work/01ed2e0b2f540031171d2258ddccb951735827e7/gcl/unixport/../lsp/gcl_evalmacros.lsp >> loading >> /opt/local/var/macports/build/_opt_local_var_macports_sources_github.com_catap_macports-ports_lang_gcl/gcl-devel/work/01ed2e0b2f540031171d2258ddccb951735827e7/gcl/unixport/../lsp/gcl_module.lsp >> loading >> /opt/local/var/macports/build/_opt_local_var_macports_sources_github.com_catap_macports-ports_lang_gcl/gcl-devel/work/01ed2e0b2f540031171d2258ddccb951735827e7/gcl/unixport/../lsp/gcl_predlib.lsp >> 1 >> 2 >> 3 >> 4 >> 5 >> 6 >> 7 >> 8 >> zsh: illegal hardware instruction ./raw_pre_gcl >> catap@Kirills-mini-m1 unixport % >> >> So, it seems clear which line triggers an issue O:-) >> >> Thus, I've changed the problem line to >> >> printf("8\n");fflush(stdout); >> make_fixnum(((unsigned long)cs_base+i-1)&-i); >> printf("9\n");fflush(stdout); >> >> and it crashes the same way. > > -- > Camm Maguire c...@maguirefamily.org > ========================================================================== > "The earth is but one country, and mankind its citizens." -- Baha'u'llah
signature.asc
Description: Message signed with OpenPGP