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
_______________________________________________
polyml mailing list
[email protected]
http://lists.inf.ed.ac.uk/mailman/listinfo/polyml

Reply via email to