Hi Aleksei,

Overall this all seems okay. A few minor comments below.

On 1/09/2020 9:41 pm, Aleksei Voitylov wrote:
Hi,

JEP 386 is now Candidate [1] and as we resolved all outstanding issues
within the Portola project I'd like to ask for comments from HotSpot,
Core Libs (changes in libjli/java_md.c), and Build groups before moving
the JEP to Proposed to Target:

http://cr.openjdk.java.net/~avoitylov/webrev.8247589.01/

src/hotspot/os/linux/os_linux.cpp

 624   os::Linux::set_libc_version("unknown");
 625   os::Linux::set_libpthread_version("unknown");

Surely we can do better than "unknown"? Surely different releases of Alpine linux must identify different version of the libraries?

--

The PaX related error message belongs in release notes not the source code - the error message should be much more succint:

"Failed to mark memory page as executable - check if grsecurity/PaX is enabled"

--

src/hotspot/os/linux/os_linux.hpp

numa_node_to_cpus is too big to be in the header file now.

---

src/hotspot/share/prims/whitebox.cpp

I would expect this to use the version string set in os_linux.cpp.

---

src/hotspot/share/runtime/abstract_vm_version.cpp

Ideally LIBC_STR would come from the build system - as we do for FLOAT_ARCH. See flags.m4.

---

src/java.base/unix/native/libjli/java_md.c

The comment is way too long - see the AIX case below it. :)

---

src/jdk.hotspot.agent/linux/native/libsaproc/ps_proc.c

 282     // To improve portability across platforms and avoid conflicts
283 // between GNU and XSI versions of strerror_r, plain strerror is used. 284 // It's safe because this code is not used in any multithreaded environment.

It is not at all clear to me that this code is not used in a multi-threaded environment. The VM is always multi-threaded. This usage was added here:

http://mail.openjdk.java.net/pipermail/serviceability-dev/2015-December/018419.html

But this code also uses strerror in another place (as does other code) so ...

---

test/hotspot/jtreg/runtime/StackGuardPages/exeinvoke.c

Why is this change needed?

---

In general the busybox changes are bit unpleasant in the tests. Pity Alpine didn't try to present a familiar binary environment. :(

---

test/jdk/java/lang/ProcessBuilder/RedirectWithLongFilename.java

@comment is not needed

That said I don't think that test should be using the Basic class.

---

Thanks,
David


Testing:

JTReg, VM TestBase on all platforms (Linux x86_64, Linux x86, Linux Arm,
Linux AArch64, Linux PPC, Windows x86_64, Windows x86, Mac) with no
regressions. A downport of these changes to 14 passes JCK 14 on these
platforms.

The port was tested on Alpine Linux 3.8 and 3.11 with JTReg, VM
TestBase. There are no differences with Linux x86_64  with the exception
of SA which is not supported as per the JEP. A downport of these changes
to 14 passes JCK 14 on Alpine Linux.

Thanks,

-Aleksei

[1] https://bugs.openjdk.java.net/browse/JDK-8229469


Reply via email to