[RFC] Proposal to backport JEP 386 (Alpine Linux Port) to 11u

Aleksei Voitylov aleksei.voitylov at bell-sw.com
Thu Feb 17 14:12:17 UTC 2022


Following recent backports of JEP 388 (Windows/AArch64 Port) and JEP 391
(macOS/AArch64 Port), I’d like to propose a backport of JEP 386 (Alpine
Linux Port) [1] to OpenJDK 11u. Support for this port was baked in the
Portola project and integrated into OpenJDK 16.

Motivation for 11u backport: the importance of this platform is
explained by wide adoption of Alpine Linux in container environments
[2]. Several OpenJDK vendors (Liberica, Corretto, Zulu) include patches
that enable Alpine/MUSL for 11u and 8u for quite some time, without any
issues. Others (MS) have recently added it. In our case the user demand
for Alpine/musl support for both 11u and 8u was at least as strong as
Mac/AArch64 and Windows/AArch64, I’d also like to hear if other OpenJDK
vendors share our view of the importance of this platform in 11u.

The set of JBS issues required to be backported for Alpine/MUSL support
in 11u is:

JDK-8217340 Compilation failed: tools/launcher/Test7029048.java
-    Test-only fix
JDK-8247592 refactor test/jdk/tools/launcher/Test7029048.java
-    Test-only fix
JDK-8245938 Remove unused print_stack(void) method from XToolkit.c
-    Code fix, removal of dead code, applies cleanly
JDK-8252248 __SIGRTMAX is not declared in musl libc
-    Code fix
JDK-8252250 isnanf is obsolete
-    Code fix, substitutes isnanf with isnan which was proven to be ok
at least since GLIBC 2.8/GCC 4.6 on Linux and any reasonable LLVM
version – see the discussion in JDK-8178689 for further details.
JDK-8247589 Implementation of Alpine Linux/x64 Port
-    The actual build and code changes that tidy up code for MUSL
JDK-8247591 Document Alpine Linux build steps in OpenJDK build guide
-    Docs only fix

All patches combined: +480 lines, -146 lines.
All source code changes: +133 lines, -43 lines.

For risk assessment and preliminary examination of the 11u maintainers,
the full patchset can be observed in [3], separate 11u backports can be
found in [4]. I plan to submit the actual PRs for individual backports
one by one unless I hear reasonable concerns from 11u maintainers on the
proposed changes.

The patchset passes full JCK+jtreg set without any regressions to other
platforms (Windows, Linux, Mac, Solaris), including non-Intel where
applicable. During integration of JEP 386 SAP kindly verified that these
changes do not break AIX/XLC.

On the maintenance side, BellSoft will be happy to support this platform
in 11u. But I’ll equally happily share the burden with other OpenJDK
vendors that currently support Alpine/MUSL.


[1] https://openjdk.java.net/jeps/386
[2] https://hub.docker.com/_/alpine

More information about the jdk-updates-dev mailing list