From: David Tenty Date: Tue, 4 Jan 2022 16:42:18 +0000 (-0600) Subject: [AIX][z/OS][Support] Provide alternate no-op mapped_file_region::dontNeedImpl impleme... X-Git-Tag: upstream/15.0.7~21539 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b2f34d6af1b814734518539542dbae5b599b0ef3;p=platform%2Fupstream%2Fllvm.git [AIX][z/OS][Support] Provide alternate no-op mapped_file_region::dontNeedImpl implementation mapped_file_region::dontNeedImpl added in D116366 calls madvise, which causes problems for z/OS and AIX. For z/OS, we don't have either madvise, so treat this as a no-op, same as Windows does. For AIX, it doesn't have any effect, doesn't have a standardized signature, and it needs certain feature test macros (i.e. _ALL_SOURCE) we don't set by default for LLVM on AIX, so just make it a no-op too. Differential Revision: https://reviews.llvm.org/D116603 --- diff --git a/llvm/lib/Support/Unix/Path.inc b/llvm/lib/Support/Unix/Path.inc index a18650a..97b280b 100644 --- a/llvm/lib/Support/Unix/Path.inc +++ b/llvm/lib/Support/Unix/Path.inc @@ -872,8 +872,13 @@ void mapped_file_region::unmapImpl() { void mapped_file_region::dontNeedImpl() { assert(Mode == mapped_file_region::readonly); +#if defined(__MVS__) || defined(_AIX) + // If we don't have madvise, or it isn't beneficial, treat this as a no-op. + return; +#else if (Mapping) ::madvise(Mapping, Size, MADV_DONTNEED); +#endif } int mapped_file_region::alignment() {