ARM port consolidation
david.holmes at oracle.com
Thu Jun 7 04:56:08 UTC 2018
On 7/06/2018 2:23 PM, Gil Tene wrote:
> This makes sense to me on the Aarch64 side.
> However, on the ARM32 side, I don't think the situation is as straightforward as
> what is being presented below, and I think more discussion and exploration of
> alternatives is needed.
> Much like with AArch64, there is an existing, active, community-developed and
> community-supported AArch32 port in OpenJDK that predates Oracle's open
> sourcing of their ARM32 version. That port is being used by multiple downstream
> builds and, at least for the past year+, it seems to have had more attention and
> ongoing engineering commitment around it than the Oracle variant.
"AArch32 is the 32-bit sub-architecture within the ARMv8 architecture.
The port will be fully compatible with ARMv7 and may support ARMv6
depending on community interest." 
whereas the 32-bit ARM port that Oracle contributed is for ARMv5, v6 and
v7. There's obviously some overlap. If the Aarch32 project reaches a
point (like Aarch64) where it is desirable to bring it into the mainline
OpenJDK then that would seem like the opportune time to reevaluate the
co-existence (or not) of the two ports.
> Before making a choice of one AArch32 port vs the other (if such a choice
> even needs to be made), I would like to hear more about the resources being
> committed towards maintaining each, keeping each up to date, testing them on
> various platforms (e.g. including building, testing, and supporting the popular
> softfloat ABI variants imposed by some OS packages) and working on bug
> fixes as needs appear.
> — Gil.
>> On Jun 4, 2018, at 6:24 PM, David Holmes <david.holmes at oracle.com> wrote:
>> Hi Bob,
>> Looping in porters-dev, aarch32-port-dev and aarch64-port-dev.
>> I think this is a good idea.
>> On 5/06/2018 6:34 AM, Bob Vandette wrote:
>>> During the JDK 9 time frame, Oracle open sourced its 32-bit and 64-bit
>>> ARM ports and contributed them to OpenJDK. These ports have been used for
>>> years in the embedded and mobile market, making them very stable and
>>> having the benefit of a single source base which can produce both 32 and
>>> 64-bit binaries. The downside of this contribution is that it resulted
>>> in two 64-bit ARM implementations being available in OpenJDK.
>>> I'd like to propose that we eliminate one of the 64-bit ARM ports and
>>> encourage everyone to enhance and support the remaining 32 and 64 bit
>>> ARM ports. This would avoid the creation of yet another port for these chip
>>> architectures. The reduction of competing ports will allow everyone
>>> to focus their attention on a single 64-bit port rather than diluting
>>> our efforts. This will result in a higher quality and a more performant
>>> The community at large (especially RedHat, BellSoft, Linaro and Cavium)
>>> have done a great job of enhancing and keeping the AArch64 port up to
>>> date with current and new Hotspot features. As a result, I propose that
>>> we standardize the 64-bit ARM implementation on this port.
>>> If there are no objections, I will file a JEP to remove the 64-bit ARM
>>> port sources that reside in jdk/open/src/hotspot/src/cpu/arm
>>> along with any build logic. This will leave the Oracle contributed
>>> 32-bit ARM port and the AArch64 64-bit ARM port.
>>> Let me know what you all think,
>>> Bob Vandette
More information about the porters-dev