JEP 503: Remove the 32-bit x86 Port

OwnerAleksey Shipilev
TypeFeature
ScopeImplementation
StatusTargeted
Release25
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/03/25 12:26
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 build and code support for 32-bit x86. Given the high cohesion between the 32-bit and 64-bit portions of the x86-specific code in the HotSpot JVM, we expect the deeper cleanups to take considerable time and have many on-going conflicts with the ever-changing HotSpot code. This is why we intend to remove the 32-bit x86 port early in the JDK 25 timeframe and then perform a series of follow-up cleanups in shared code, 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.