aboutsummaryrefslogtreecommitdiff
path: root/libgcc/libgcov-driver.c
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2021-01-13 11:17:03 +0100
committerMartin Liska <mliska@suse.cz>2021-03-03 14:21:45 +0100
commit00d79dc4be0b86ec564cfa2b32c47de6c07449e6 (patch)
treee8a0decbad8ba16951cd9f0861e09b67063d8f1c /libgcc/libgcov-driver.c
parent8cfa06570dd5eae2f074e1a1388004a60edfd01f (diff)
downloadgcc-00d79dc4be0b86ec564cfa2b32c47de6c07449e6.zip
gcc-00d79dc4be0b86ec564cfa2b32c47de6c07449e6.tar.gz
gcc-00d79dc4be0b86ec564cfa2b32c47de6c07449e6.tar.bz2
gcov: use mmap pools for KVP.
gcc/ChangeLog: PR gcov-profile/97461 * gcov-io.h (GCOV_PREALLOCATED_KVP): Remove. libgcc/ChangeLog: PR gcov-profile/97461 * config.in: Regenerate. * configure: Likewise. * configure.ac: Check sys/mman.h header file * libgcov-driver.c (struct gcov_kvp): Remove static pre-allocated pool and use a dynamic one. * libgcov.h (MMAP_CHUNK_SIZE): New. (gcov_counter_add): Use mmap to allocate pool for struct gcov_kvp.
Diffstat (limited to 'libgcc/libgcov-driver.c')
-rw-r--r--libgcc/libgcov-driver.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/libgcc/libgcov-driver.c b/libgcc/libgcov-driver.c
index e474e03..9146235 100644
--- a/libgcc/libgcov-driver.c
+++ b/libgcc/libgcov-driver.c
@@ -588,11 +588,14 @@ struct gcov_root __gcov_root;
struct gcov_master __gcov_master =
{GCOV_VERSION, 0};
-/* Pool of pre-allocated gcov_kvp strutures. */
-struct gcov_kvp __gcov_kvp_pool[GCOV_PREALLOCATED_KVP];
+/* Dynamic pool for gcov_kvp structures. */
+struct gcov_kvp *__gcov_kvp_dynamic_pool;
-/* Index to first free gcov_kvp in the pool. */
-unsigned __gcov_kvp_pool_index;
+/* Index into __gcov_kvp_dynamic_pool array. */
+unsigned __gcov_kvp_dynamic_pool_index;
+
+/* Size of _gcov_kvp_dynamic_pool array. */
+unsigned __gcov_kvp_dynamic_pool_size;
void
__gcov_exit (void)