[MacPorts] #65188: sbcl: fatal error encountered in SBCL pid 16153: dynamic space too small for core
MacPorts
noreply at macports.org
Tue May 17 16:17:25 UTC 2022
#65188: sbcl: fatal error encountered in SBCL pid 16153: dynamic space too small
for core
---------------------------+----------------------
Reporter: barracuda156 | Owner: easye
Type: defect | Status: assigned
Priority: Normal | Milestone:
Component: ports | Version: 2.7.2
Resolution: | Keywords:
Port: sbcl |
---------------------------+----------------------
Comment (by barracuda156):
Replying to [comment:4 easye]:
> @barracuda156 Thanks for the hard work here. Of course I wish I had
access to a PPC system to help, but perhaps I can coordinate more fully
with the SBCL crew on IRC <irc://libera.chat/#sbcl> or the SBCL bug
tracker <https://launchpad.net/sbcl> if you need something? Feel free to
contact me "out of band".
Thank you for replying!
There are two immediate problems I face, and any help will be greatly
appreciated here:
1. There is a section in `src/runtime/ppc-assem.S` which has never been
fixed for Darwin ABI:
{{{
/* Call out to obtain our TLS block. */
load(reg_NL0,CSYMBOL(specials))
/* This won't work on darwin: wrong fixup style. And is it
* supposed to be lis/ori or lis/addi? Or does it differ
* between darwin and everything else again? */
lis reg_CFUNC,CSYMBOL(pthread_getspecific)@h
ori reg_CFUNC,reg_CFUNC,CSYMBOL(pthread_getspecific)@l
mtctr reg_CFUNC
bctrl
mr reg_THREAD, reg_NL0
}}}
Those suffices @ are invalid, of course, and the code fails. However it is
required in order to build with threads enabled.
I tried patching it to:
{{{
+#ifdef LISP_FEATURE_DARWIN
+ lis reg_CFUNC,hi16(CSYMBOL(pthread_getspecific))
+ ori reg_CFUNC,reg_CFUNC,lo16(CSYMBOL(pthread_getspecific))
+#else
lis reg_CFUNC,CSYMBOL(pthread_getspecific)@h
ori reg_CFUNC,reg_CFUNC,CSYMBOL(pthread_getspecific)@l
+#endif
}}}
This fails however:
{{{
ld: absolute address to symbol _pthread_getspecific in a different linkage
unit not supported in _call_into_lisp from ppc-assem.o
collect2: ld returned 1 exit status
make: *** [sbcl] Error 1
}}}
This is why I had to build without threads (well, I don't promise threads
will work if this is fixed, but at least this must be fixed in some way in
order to proceed).
It has been broken forever: from @1.0.47 up to @2.2.2 this chunk of code
remains unchanged, and in @2.2.3 upstream, sadly, just threw away Darwin-
specific parts. (So I think it has never been built for PPC at all.)
2. The issue in the ticket above:
{{{
fatal error encountered in SBCL pid 16153:
dynamic space too small for core: 31044KiB required, 0KiB available.
}}}
Since it is not pointing to a specific error in the code, I have no hint
how to try fixing it.
--
Ticket URL: <https://trac.macports.org/ticket/65188#comment:5>
MacPorts <https://www.macports.org/>
Ports system for macOS
More information about the macports-tickets
mailing list