Subject: Re: bug#47125: 28.0.50; pdumper assumes compile time page size remains valid

From: Eli Zaretskii <[email-masked]>
Date: Sun, 14 Mar 2021 07:37:07 +0200

> From: Pip Cet <[email-masked]>
> Date: Sat, 13 Mar 2021 21:38:16 +0000
> 
> I'm running Debian GNU/Linux (the Linux part is not provided by
> Debian) on an Apple M1-based machine. This currently involves running
> a kernel compiled with a 16 KB page size (the only fully functional
> kernel is currently available as a binary as recompilation of the
> alleged source fails to produce a fully working kernel).
> 
> The Debian-packaged Emacs version does not start. Compiling from
> scratch works fine.
> 
> After some investigation, this is because pdumper assumes that an
> address aligned according to the page size at build time is
> sufficiently aligned for mmap to work with the MAP_FIXED flag, when it
> comes to loading the dump. That's not true because the Debian Emacs
> was apparently built with a 4 KB page size, so it will not run on a
> system with a 16 KB page size.
> 
> I've confirmed that I get the same error on current master if I modify
> getpagesize to return 4096 rather than the correct value.
> 
> I think it would be best to handle this case gracefully, and I thought
> pdumper already did that, but it appears to simply fail.
> 
> There are good reasons for increasing the page size, so this is likely
> to happen more often and on other architectures with varying page
> sizes.

CC'ing Daniel, in case he has comments and/or suggestions.

> We're currently enforcing a page size of 64 KB on Windows

We do? can you point me to the code which does that?

> so maybe it already has.