8192898: AIX build broken after 8190308
David Holmes
david.holmes at oracle.com
Sun Dec 3 02:06:04 UTC 2017
Hi Martin,
On 2/12/2017 12:03 AM, Doerr, Martin wrote:
> Hi,
>
> I have opened a new bug jdk-8192898.
> "MAP_NORESERVE" was introduced in os_posix.cpp. It is not POSIX and it is not defined on AIX. Not sure if any other OS is affected, too.
>
> Should non-POSIX code be in os_posix.cpp?
In principle not. That file is starting to become a common place to
mostly-share code that is mostly-common across non-Windows platforms. I
would prefer to see this file contain predominantly POSIX code with
necessary tweaks on a platform basis. Otherwise it may be better to
rename the file to avoid confusion.
> I can provide a trivial fix for AIX (see below). But maybe somebody has a better idea?
I would prefer to see the use of non-POSIX conforming code be
conditionalized on the platforms that are known to support it - ie
platforms have to specifically opt-in to using it because someone has
determined that it does in fact work, and is needed, for that platform.
That should have been done by the people who worked on 8190308. I can't
expect you to do that for the other platforms, so fixing AIX the way you
suggest is the most pragmatic thing to do right now.
Thanks,
David
> Best regards,
> Martin
>
>
> --- a/src/hotspot/os/posix/os_posix.cpp Thu Nov 30 18:05:57 2017 +0100
> +++ b/src/hotspot/os/posix/os_posix.cpp Thu Nov 30 18:55:02 2017 +0100
> @@ -200,7 +200,7 @@
>
> static char* reserve_mmapped_memory(size_t bytes, char* requested_addr) {
> char * addr;
> - int flags = MAP_PRIVATE | MAP_NORESERVE | MAP_ANONYMOUS;
> + int flags = MAP_PRIVATE NOT_AIX( | MAP_NORESERVE ) | MAP_ANONYMOUS;
> if (requested_addr != NULL) {
> assert((uintptr_t)requested_addr % os::vm_page_size() == 0, "Requested address should be aligned to OS page size");
> flags |= MAP_FIXED;
>
More information about the hotspot-runtime-dev
mailing list