JEP 503: Remove the 32-bit x86 Port

OwnerAleksey Shipilev
TypeFeature
ScopeImplementation
StatusCandidate
Componenthotspot / other
Discussionhotspot dash dev at openjdk dot org
EffortM
DurationM
Relates toJEP 501: Deprecate the 32-bit x86 Port for Removal
Reviewed byMark Reinhold
Created2024/11/28 09:59
Updated2025/02/26 22:49
Issue8345168

Summary

Remove the source code and build support for the 32-bit x86 port. This port was deprecated for removal in JDK 24 (JEP 501) with the express intent to remove it in a future release.

Goals

Non-Goals

Motivation

As noted when we deprecated this port in JEP 501:

The cost of maintaining this port outweighs the benefits. Maintaining parity with new features, such as Loom, the Foreign Function & Memory API (FFM), the Vector API, late GC barrier expansion, etc., is a major opportunity cost. Deprecating and eventually removing the port would allow OpenJDK developers to accelerate the development of new features and enhancements.

Description

At present the 32-bit x86 port can still be be built, although it is not supported and not guaranteed to perform well.

We will find and remove most, if not all, code paths in the code base that apply to 32-bit x86 only. Given the high cohesion between the 32-bit and 64-bit portions of the x86-specific code in the HotSpot JVM, we expect this to take considerable time and have many on-going conflicts with the ever-changing HotSpot code. This is why we intend to start early in the JDK 25 timeframe, before large features begin integrating.

We will modify the JDK build system to remove support for compiling on 32-bit x86 platforms, as well as update the JDK documentation to reflect the removal of 32-bit x86 support.

Risks and Assumptions

The original risks and assumptions from JEP 501 apply here:

Additionally, we assume that JEP 501 gave sufficient warning for vendors and users to consider migration paths from 32-bit x86.