diff options
author | Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | 2024-05-30 15:00:59 +0200 |
---|---|---|
committer | Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | 2024-05-30 15:00:59 +0200 |
commit | 32f99225bcaae9b792aec143239d17f2b7e2c54b (patch) | |
tree | 73a34c13d0e4a8bfa2d31a5de25f720132cbf7b3 /gcc/ira.h | |
parent | 0b3a3a66eb816b7c7e6bcb6f720813284e3eb0ef (diff) | |
download | gcc-32f99225bcaae9b792aec143239d17f2b7e2c54b.zip gcc-32f99225bcaae9b792aec143239d17f2b7e2c54b.tar.gz gcc-32f99225bcaae9b792aec143239d17f2b7e2c54b.tar.bz2 |
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 <ro@CeBiTec.Uni-Bielefeld.DE>
gcc:
PR c++/115031
* config/sparc/sol2.h (GGC_QUIRE_SIZE): Define as 510.
Diffstat (limited to 'gcc/ira.h')
0 files changed, 0 insertions, 0 deletions