summaryrefslogtreecommitdiff
path: root/gcc/config.in
diff options
context:
space:
mode:
authorak <ak@138bc75d-0d04-0410-961f-82ee72b054a4>2011-10-17 14:43:37 +0000
committerak <ak@138bc75d-0d04-0410-961f-82ee72b054a4>2011-10-17 14:43:37 +0000
commitc5db973fdab3db3e13db575e5650c0bcfd3630f4 (patch)
treeb0f5ec12dbc9d0cd2f36e94c063c914fbfe5bb72 /gcc/config.in
parenta67520a94129bfa4f6943e9dc20d68a30d3f596d (diff)
downloadgcc-c5db973fdab3db3e13db575e5650c0bcfd3630f4.tar.gz
Use MADV_DONTNEED for freeing in garbage collector
Use the Linux MADV_DONTNEED call to unmap free pages in the garbage collector.Then keep the unmapped pages in the free list. This avoid excessive memory fragmentation on large LTO bulds, which can lead to gcc bumping into the Linux vm_max_map limit per process. gcc/: 2011-10-08 Andi Kleen <ak@linux.intel.com> PR other/50636 * config.in, configure: Regenerate. * configure.ac (madvise): Add to AC_CHECK_FUNCS. * ggc-page.c (USING_MADVISE): Add. (page_entry): Add discarded field. (alloc_page): Check for discarded pages. (release_pages): Add USING_MADVISE branch. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180093 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config.in')
-rw-r--r--gcc/config.in6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/config.in b/gcc/config.in
index f2847d87895..e8148b6d571 100644
--- a/gcc/config.in
+++ b/gcc/config.in
@@ -1276,6 +1276,12 @@
#endif
+/* Define to 1 if you have the `madvise' function. */
+#ifndef USED_FOR_TARGET
+#undef HAVE_MADVISE
+#endif
+
+
/* Define to 1 if you have the <malloc.h> header file. */
#ifndef USED_FOR_TARGET
#undef HAVE_MALLOC_H