[Bug target/55610] cc1 is calling munmap() on part of itself on darwin

cvs-commit at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Dec 2 19:45:16 GMT 2021


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55610

--- Comment #11 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Iain D Sandoe <iains@gcc.gnu.org>:

https://gcc.gnu.org/g:22a982409323feb203401d345488a5a9c18e6733

commit r12-5759-g22a982409323feb203401d345488a5a9c18e6733
Author: Iain Sandoe <iain@sandoe.co.uk>
Date:   Sat Nov 13 12:39:09 2021 +0000

    Darwin: Rewrite host PCH support [PR 55610].

    We need to revise the PCH memory allocation scheme to enable
    support for PIE on aarch64.  The rewrite uses a similar scheme
    to the one used on Linux.

    We attempt to identify VM segments for each arch/OS version that
    are always available to the compiler (note this is not general,
    it only needs to work for the cc1* exes).

    If we cannot find the preferred segment we fall back to allowing
    the kernel to supply one - this is more likely to fail when the
    PCH read-in occurs (but that is trapped).

    In doing this we obviate the need to unmap any part of the
    compiler __DATA segment - thus fixing PR 55610.

    Signed-off-by: Iain Sandoe <iain@sandoe.co.uk>

    gcc/ChangeLog:

            PR target/55610
            * config/host-darwin.c (TRY_EMPTY_VM_SPACE,
            SAFE_ALLOC_SIZE): New.
            (darwin_gt_pch_get_address): Rewrite to use nominated
            memory segments rather than part of the compiler __DATA
            segment.
            (darwin_gt_pch_use_address): Likewise.


More information about the Gcc-bugs mailing list