From 1ebd0e3345fb6f66522e8c837174a3544e080aad Mon Sep 17 00:00:00 2001 From: John Baldwin Date: Sat, 18 Oct 2014 12:20:42 +0000 Subject: The MAP_NORESERVE flag to mmap() has never been implemented in FreeBSD and is being removed. No portrev bump needed since the kernel will continue to accept this flag for old binaries even after support for it in new binaries is removed. PR: 193961 Approved by: portmgr (antoine) --- java/openjdk6/files/patch-set | 29 +++++++++++++++++-- java/openjdk7/files/patch-src-os-bsd-vm-os_bsd.cpp | 33 ++++++++++++++++++++-- java/openjdk8/files/patch-bsd | 29 ++++++++++++++++++- 3 files changed, 85 insertions(+), 6 deletions(-) (limited to 'java') diff --git a/java/openjdk6/files/patch-set b/java/openjdk6/files/patch-set index 21767728e029..5f17ef0db3d2 100644 --- a/java/openjdk6/files/patch-set +++ b/java/openjdk6/files/patch-set @@ -1460,7 +1460,16 @@ // Add the appropriate client or server subdir len = strlen(buf); -@@ -2817,7 +2941,7 @@ +@@ -2752,7 +2876,7 @@ + if (::write(fd, "", 1) == 1) { + mmap(base, size, + PROT_READ|PROT_WRITE|PROT_EXEC, +- MAP_PRIVATE|MAP_FIXED|MAP_NORESERVE, fd, 0); ++ MAP_PRIVATE|MAP_FIXED, fd, 0); + } + } + ::close(fd); +@@ -2815,7 +2939,7 @@ } void os::free_memory(char *addr, size_t bytes, size_t alignment_hint) { @@ -1469,7 +1478,23 @@ } void os::numa_make_global(char *addr, size_t bytes) { -@@ -2997,9 +3121,10 @@ +@@ -2962,7 +3086,7 @@ + return ::mprotect(addr, size, PROT_NONE) == 0; + #else + uintptr_t res = (uintptr_t) ::mmap(addr, size, PROT_NONE, +- MAP_PRIVATE|MAP_FIXED|MAP_NORESERVE|MAP_ANONYMOUS, -1, 0); ++ MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0); + return res != (uintptr_t) MAP_FAILED; + #endif + } +@@ -2989,15 +3113,16 @@ + char * addr; + int flags; + +- flags = MAP_PRIVATE | MAP_NORESERVE | MAP_ANONYMOUS; ++ flags = MAP_PRIVATE | MAP_ANONYMOUS; + if (fixed) { + assert((uintptr_t)requested_addr % os::Bsd::page_size() == 0, "unaligned address"); flags |= MAP_FIXED; } diff --git a/java/openjdk7/files/patch-src-os-bsd-vm-os_bsd.cpp b/java/openjdk7/files/patch-src-os-bsd-vm-os_bsd.cpp index b2f8297af0ed..e490ef7ee7c2 100644 --- a/java/openjdk7/files/patch-src-os-bsd-vm-os_bsd.cpp +++ b/java/openjdk7/files/patch-src-os-bsd-vm-os_bsd.cpp @@ -1,8 +1,8 @@ $FreeBSD$ ---- hotspot/src/os/bsd/vm/os_bsd.cpp.orig 2010-02-21 20:07:54.000000000 -0800 -+++ hotspot/src/os/bsd/vm/os_bsd.cpp 2010-02-21 20:08:41.000000000 -0800 -@@ -358,7 +358,7 @@ +--- hotspot/src/os/bsd/vm/os_bsd.cpp.orig 2014-10-06 17:10:00.000000000 -0400 ++++ hotspot/src/os/bsd/vm/os_bsd.cpp 2014-10-08 10:23:14.000000000 -0400 +@@ -458,7 +458,7 @@ * 7: The default directories, normally /lib and /usr/lib. */ #ifndef DEFAULT_LIBPATH @@ -11,3 +11,30 @@ $FreeBSD$ #endif #define EXTENSIONS_DIR "/lib/ext" +@@ -2947,7 +2947,7 @@ + if (::write(fd, "", 1) == 1) { + mmap(base, size, + PROT_READ|PROT_WRITE|PROT_EXEC, +- MAP_PRIVATE|MAP_FIXED|MAP_NORESERVE, fd, 0); ++ MAP_PRIVATE|MAP_FIXED, fd, 0); + } + } + ::close(fd); +@@ -3196,7 +3196,7 @@ + return ::mprotect(addr, size, PROT_NONE) == 0; + #else + uintptr_t res = (uintptr_t) ::mmap(addr, size, PROT_NONE, +- MAP_PRIVATE|MAP_FIXED|MAP_NORESERVE|MAP_ANONYMOUS, -1, 0); ++ MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0); + return res != (uintptr_t) MAP_FAILED; + #endif + } +@@ -3223,7 +3223,7 @@ + char * addr; + int flags; + +- flags = MAP_PRIVATE | MAP_NORESERVE | MAP_ANONYMOUS; ++ flags = MAP_PRIVATE | MAP_ANONYMOUS; + if (fixed) { + assert((uintptr_t)requested_addr % os::Bsd::page_size() == 0, "unaligned address"); + flags |= MAP_FIXED; diff --git a/java/openjdk8/files/patch-bsd b/java/openjdk8/files/patch-bsd index 504658578a16..1b5cd37f810f 100644 --- a/java/openjdk8/files/patch-bsd +++ b/java/openjdk8/files/patch-bsd @@ -941,7 +941,34 @@ SEM_INIT(_semaphore, 0); } -@@ -2746,6 +2813,7 @@ +@@ -2128,7 +2195,7 @@ + if (::write(fd, "", 1) == 1) { + mmap(base, size, + PROT_READ|PROT_WRITE|PROT_EXEC, +- MAP_PRIVATE|MAP_FIXED|MAP_NORESERVE, fd, 0); ++ MAP_PRIVATE|MAP_FIXED, fd, 0); + } + } + ::close(fd); +@@ -2238,7 +2305,7 @@ + return ::mprotect(addr, size, PROT_NONE) == 0; + #else + uintptr_t res = (uintptr_t) ::mmap(addr, size, PROT_NONE, +- MAP_PRIVATE|MAP_FIXED|MAP_NORESERVE|MAP_ANONYMOUS, -1, 0); ++ MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0); + return res != (uintptr_t) MAP_FAILED; + #endif + } +@@ -2265,7 +2332,7 @@ + char * addr; + int flags; + +- flags = MAP_PRIVATE | MAP_NORESERVE | MAP_ANONYMOUS; ++ flags = MAP_PRIVATE | MAP_ANONYMOUS; + if (fixed) { + assert((uintptr_t)requested_addr % os::Bsd::page_size() == 0, "unaligned address"); + flags |= MAP_FIXED; +@@ -2743,6 +2810,7 @@ return OS_OK; #elif defined(__FreeBSD__) int ret = pthread_setprio(thread->osthread()->pthread_id(), newpri); -- cgit v1.2.3