--- old/src/os/linux/vm/os_linux.cpp 2017-05-03 09:14:08.081997424 -0700 +++ new/src/os/linux/vm/os_linux.cpp 2017-05-03 09:14:07.917994454 -0700 @@ -4753,7 +4753,7 @@ int res = ::mprotect(p, size, PROT_WRITE|PROT_EXEC); if (res == -1) { - vm_exit_during_initialization("failed to mark memory page as executable", + vm_exit_during_initialization("Failed to mark memory page as executable", "Please check if grsecurity/PaX is enabled in your kernel.\n" "\n" "For example, you can do this by running (note: you may need root privileges):\n" @@ -4770,7 +4770,14 @@ "generation the JVM relies on. Specifically, the MPROTECT functionality as\n" "described on https://pax.grsecurity.net/docs/mprotect.txt is not compatible\n" "with the JVM. If you want to allow the JVM to run you will have to disable PaX.\n" - "You can do this on a per-executable basis using the paxctl tool.\n"); + "You can do this on a per-executable basis using the paxctl tool, for example:\n" + "\n" + " paxctl -cm bin/java\n" + "\n" + "Please note that this modifies the executable binary in-place, so may want\n" + "to make a backup of it first. Also note that you have to repeat this for other\n" + "executables like javac, jar, jcmd, etc.\n" + ); }