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 <[email protected]> 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" <[email protected]> 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 [email protected]
> ==========================================================================
> "The earth is but one country, and mankind its citizens." -- Baha'u'llah
signature.asc
Description: Message signed with OpenPGP
