Re: posix_spawn

"Kirill A. Korinsky" <[email protected]>
Newsgroups gmane.lisp.gcl.devel
Message-ID <[email protected]>
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 (application/pgp-signature, 833 B)
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEE3/KLNtcfWfLw7JxqmNjZhndZIm4FAmWHLHEACgkQmNjZhndZ
Im4uug/+P5xO/jbxhXf9k3YUoOdzAeEyH2BCmCA5ICAle/+N19O2qgeYPKRqU6mO
uACu0yQSQgcmYp35wAKbw4rIK3BczPTgZHZ7pkPSg/dEP7F+LyBY7uitSN2d6vzU
DUCnV4/kL4JziEnKpju7+XbqlLITw9q4VY10+Q4t9SNStWl6eRzOZe+RVeDQIHRu
SAjOFQ9tGQyR9KzfojvM5KwW3dcVMYDt7DHyO/r61IkbDF1zdQV2lqSP4rfxDtLp
cyzoHyH7G4kl3Y+tFX6YCHHs9HmaP8NI62M7gTmVZmCO0xDXFjQwrMwMyMbu5+U6
PeNVXKcnmmN116Ghe0FxcBUPw9PlBoeuXxp4Yhk2FiqY1mPGXHBzXU6JfoqAwdel
H6OIaJizg1f/y6HnKQ2xhOkLhvrKmwTdrdMfb/q3YPuAlU1HXwDQwT10Cv1cI27A
8qxsq4RyU41vF/cVyeq1vBhRmA7XN+rxVkn25Qvqj/EdDy2jJy+3TZJBBhBxcB3R
EQ626Unp2yPP1sVUHwDGUrPVWmSGK48MQeX0RCJVTJ2XDqVrg+BpjcNpBHykLanV
Lb8Jn3cpqWSG+pNi2Kt3s0kzvwpTbarxe1KtwGpuVPuj5FxHAiwSmdUmfbbi5xQ4
MJkcM5bI2cGFGX15zHHgxXRsHnC/gZLWI/dQq9fyn3pql2PAf20=
=S0do
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.