Hello Oskar, I've had another look and it seems that sometimes mprotect fails on previously unused areas leaving the memory unwritable. There doesn't seem to be any logic to it so instead the whole of the code region is allocated at the start. That could result in the poly process requiring a large swap space at the start but there doesn't seem to be any alternative. This is in commit c92c335.
David
On 01/11/2021 14:22, Oskar Abrahamsson wrote:
Hello David,
Unfortunately the fix has caused the arm64 bootstrap to die during its 6th stage on my machine. Here is an example of this error:
Making Lex Making LEX_ Making SymbolsSig Created signature SymbolsSig Created functor LEX_ Making Pretty Created structure Pretty Making Symbols Created structure Symbols Making Debug /bin/sh: line 1: 47319 Bus error: 10 ./polyimport ./bootstrap/bootstrap64.txt -I . < ./bootstrap/Stage1.sml make[2]: *** [polyexport.o] Error 138 make[1]: *** [all-recursive] Error 1 make: *** [all] Error 2
This happens after running ./configure and then make in a freshly checked out repository. It also seems to fail at different places in the 6th bootstrap stage (but always during that stage) if I run make again.
I also attempted building the compiler with arch -x86_64, and that works fine.
? Oskar