On Mon, Mar 06, 2017 at 08:41:56PM +0100, Andy Wingo wrote: > On Thu 02 Mar 2017 10:13, szgyg <sz...@ludens.elte.hu> writes: > > > load_thunk_from_memory doesn't call mprotect because in loader.c > > line 436 the ELF segment is aligned to 4k while page size is 64k. > > Ah, thank you for tracking this down. I think we were going to just > change the page size to 64K for .go files but I can't remember. I think > libc's loader doesn't actually align the pages on disk but projects > segments of the file onto the memory image.
Changing *page-size* to 64k in linker.scm solves the problem. Size of bootstrap/ goes from 17MB to 20MB. > What platform is this that has 64K pages? IIUC cygwin's usual size is > 4096 bytes. Pagesize is 4k on windows, but we can't allocate a single page, only batches of 16 pages. Cygwin is hiding this abomination by using 64k as pagesize.