Sorry, I've missed the local root: 01ed2e0b2f540031171d2258ddccb951735827e7
-- wbr, Kirill > On 23. Dec 2023, at 19:52, Kirill A. Korinsky <kir...@korins.ky> wrote: > > 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 >> <mailto: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 <mailto: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 >> <mailto:c...@maguirefamily.org> >> ========================================================================== >> "The earth is but one country, and mankind its citizens." -- Baha'u'llah >
signature.asc
Description: Message signed with OpenPGP