[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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

From: Paul Eggert
Subject: bug#24892: {s, }brk removed from FreeBSD 11.x and later, arm64 architecture
Date: Thu, 10 Nov 2016 08:23:40 -0800
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0

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);
    new_break = (byte *) old_bss_addr + old_bss_size + 17851608;

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?

Would it work if we copied the old sbrk.S from the ARM64 C library, assemble and linked that, and then just call sbrk? (I don't have easy access to this platform so I can't try tricks like this myself.)

reply via email to

[Prev in Thread] Current Thread [Next in Thread]