From a2b2c9958a15a58287a24fd5bc8bfdef98e450ca Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Tue, 18 Apr 2023 10:13:44 +0200 Subject: [PATCH] Fixed huge_tlb flag on mac --- src/utils/fortran_mmap.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/utils/fortran_mmap.c b/src/utils/fortran_mmap.c index 52df2476..ea37c582 100644 --- a/src/utils/fortran_mmap.c +++ b/src/utils/fortran_mmap.c @@ -22,7 +22,11 @@ void* mmap_fortran(char* filename, size_t bytes, int* file_descr, int read_only) perror("Error opening mmap file for reading"); exit(EXIT_FAILURE); } +#ifdef _GNU_SOURCE map = mmap(NULL, bytes, PROT_READ, MAP_SHARED | MAP_HUGETLB, fd, 0); +#else + map = mmap(NULL, bytes, PROT_READ, MAP_SHARED, fd, 0); +#endif if (map == MAP_FAILED) { /* try again without huge pages */ map = mmap(NULL, bytes, PROT_READ, MAP_SHARED, fd, 0); @@ -53,7 +57,11 @@ void* mmap_fortran(char* filename, size_t bytes, int* file_descr, int read_only) exit(EXIT_FAILURE); } +#ifdef _GNU_SOURCE map = mmap(NULL, bytes, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_HUGETLB, fd, 0); +#else + map = mmap(NULL, bytes, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); +#endif if (map == MAP_FAILED) { /* try again without huge pages */ map = mmap(NULL, bytes, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);