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

--- Comment #3 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Rainer Orth <r...@gcc.gnu.org>:

https://gcc.gnu.org/g:32f99225bcaae9b792aec143239d17f2b7e2c54b

commit r15-927-g32f99225bcaae9b792aec143239d17f2b7e2c54b
Author: Rainer Orth <r...@cebitec.uni-bielefeld.de>
Date:   Thu May 30 15:00:59 2024 +0200

    ggc: Reduce GGC_QUIRE_SIZE on Solaris/SPARC [PR115031]

    g++.dg/modules/pr99023_b.X currently FAILs on 32-bit Solaris/SPARC:

    FAIL: g++.dg/modules/pr99023_b.X -std=c++2a  1 blank line(s) in output
    FAIL: g++.dg/modules/pr99023_b.X -std=c++2a (test for excess errors)

    Excess errors:
    cc1plus: out of memory allocating 1048344 bytes after a total of 7913472
bytes

    It turns out that this exhaustion of the 32-bit address space happens
    due to a combination of three issues:

    * the SPARC pagesize of 8 kB,

    * ggc-page.cc's chunk size of 512 * pagesize, i.e. 4 MB, and

    * mmap adding two 8 kB unmapped red-zone pages to each mapping

    which result in the 4 MB mappings to actually consume 4.5 MB of address
    space.

    To avoid this, this patch reduces the chunk size so it remains at 4 MB
    even when combined with the red-zone pages, as recommended by mmap(2).

    Tested on sparc-sun-solaris2.11 and sparcv9-sun-solaris2.11.

    2024-05-29  Rainer Orth  <r...@cebitec.uni-bielefeld.de>

            gcc:
            PR c++/115031
            * config/sparc/sol2.h (GGC_QUIRE_SIZE): Define as 510.

Reply via email to