diff options
author | LIU Hao <lh_mouse@126.com> | 2022-05-10 13:19:07 +0800 |
---|---|---|
committer | Jonathan Yong <10walls@gmail.com> | 2023-03-01 13:46:45 +0000 |
commit | f769d22ab685671095525d09ef29eeeed0ae3cee (patch) | |
tree | b846c1947ad258cfd66aa25cb36bca92936ca0fd /gcc | |
parent | 560f1db37130c07f1e8a0788fac9a800640c59ad (diff) | |
download | gcc-f769d22ab685671095525d09ef29eeeed0ae3cee.zip gcc-f769d22ab685671095525d09ef29eeeed0ae3cee.tar.gz gcc-f769d22ab685671095525d09ef29eeeed0ae3cee.tar.bz2 |
gcc: Remove size limit of PCH for *-*-mingw32 hosts
PCHs can now be relocated, so the size limit makes no sense any more.
This patch was submited to MSYS2 9 months ago for GCC 12. No issue has been reported so far.
Reference: https://github.com/msys2/MINGW-packages/blob/717d5a5a09e2370e3bd7e12b393a26dbfbe48921/mingw-w64-gcc/0010-Fix-using-large-PCH.patch
Signed-off-by: LIU Hao <lh_mouse@126.com>
gcc/ChangeLog:
PR pch/14940
* config/i386/host-mingw32.cc (mingw32_gt_pch_get_address):
Remove the size limit `pch_VA_max_size`
Signed-off-by: Jonathan Yong <10walls@gmail.com>
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/i386/host-mingw32.cc | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/gcc/config/i386/host-mingw32.cc b/gcc/config/i386/host-mingw32.cc index aeee956..acff613 100644 --- a/gcc/config/i386/host-mingw32.cc +++ b/gcc/config/i386/host-mingw32.cc @@ -44,9 +44,6 @@ static size_t mingw32_gt_pch_alloc_granularity (void); static inline void w32_error(const char*, const char*, int, const char*); -/* FIXME: Is this big enough? */ -static const size_t pch_VA_max_size = 128 * 1024 * 1024; - /* Granularity for reserving address space. */ static size_t va_granularity = 0x10000; @@ -88,9 +85,6 @@ static void * mingw32_gt_pch_get_address (size_t size, int) { void* res; - size = (size + va_granularity - 1) & ~(va_granularity - 1); - if (size > pch_VA_max_size) - return NULL; /* FIXME: We let system determine base by setting first arg to NULL. Allocating at top of available address space avoids unnecessary @@ -100,7 +94,7 @@ mingw32_gt_pch_get_address (size_t size, int) If we allocate at bottom we need to reserve the address as early as possible and at the same point in each invocation. */ - res = VirtualAlloc (NULL, pch_VA_max_size, + res = VirtualAlloc (NULL, size, MEM_RESERVE | MEM_TOP_DOWN, PAGE_NOACCESS); if (!res) @@ -150,7 +144,7 @@ mingw32_gt_pch_use_address (void *&addr, size_t size, int fd, /* Offset must be also be a multiple of allocation granularity for this to work. We can't change the offset. */ - if ((offset & (va_granularity - 1)) != 0 || size > pch_VA_max_size) + if ((offset & (va_granularity - 1)) != 0) return -1; |