Subject: bug#24892: {s, }brk removed from FreeBSD 11.x and later, arm64 architecture

From: Andreas Schwab <[email-masked]>
Date: Thu, 10 Nov 2016 18:00:41 +0100

On Nov 10 2016, Paul Eggert <[email-masked]> wrote:

> On 11/10/2016 01:52 AM, Andreas Schwab wrote:
>>> I'm curious about what the difference actually is,
>> 17851608 bytes.
>
> Thanks, and now I'm curious about where that difference comes from. I
> assume that unexelf.c code like this:
>
>   #ifdef HAVE_SBRK
>     new_break = sbrk (0);
>   #else
>     new_break = (byte *) old_bss_addr + old_bss_size + 17851608;
>   #endif
>
> would not be a good idea, even if it happens to work on this particular
> ARM64 build, as the number 17851608 must be specific to the platform
> and/or the build. (The number is 0 on x86-64, for example.) But how can I
> compute the number?

If you don't dump the heap then you miss everything allocated through
lisp_malloc that isn't explicitly copied to pure space.

Andreas.

-- 
Andreas Schwab, SUSE Labs, [email-masked]
GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE  1748 E4D4 88E3 0EEA B9D7
"And now for something completely different."