JEP 449: Deprecate the Windows 32-bit x86 Port for Removal

AuthorGeorge Adams & Bruno Borges
OwnerGeorge Adams
TypeFeature
ScopeImplementation
StatusClosed / Delivered
Release21
Componenthotspot / other
Discussionjdk dash dev at openjdk dot org
EffortS
DurationS
Reviewed byJesper Wilhelmsson
Endorsed byDalibor Topic, Vladimir Kozlov
Created2023/02/24 15:30
Updated2023/08/18 18:03
Issue8303167

Summary

Deprecate the Windows 32-bit x86 port, with the intent to remove it in a future release.

Goals

Non-Goals

Motivation

Description

An attempt to configure a Windows x86-32 build will produce the following output:

$ bash ./configure
...
checking compilation type... native
configure: error: The Windows 32-bit x86 port is deprecated and may be removed in a future release. \
Use --enable-deprecated-ports=yes to suppress this error.
configure exiting with result code 1
$

The new build configuration option --enable-deprecated-ports=yes will suppress the error and continue:

$ bash ./configure --enable-deprecated-ports=yes
...
checking compilation type... native
configure: WARNING: The Windows 32-bit x86 port is deprecated and may be removed in a future release.
...
Build performance summary:
* Cores to use:   32
* Memory limit:   96601 MB

The following warnings were produced. Repeated here for convenience:
WARNING: The Windows 32-bit x86 port is deprecated and may be removed in a future release.
$

Alternatives

The alternative would be to continue to support Windows x86-32. This would require active maintainers who can provide a sustainable and performant implementation of Virtual Threads, as well as future JEPs, to ensure that the JDK on Windows x86-32 continues to meet the expectations of Java developers.

Risks and Assumptions

32-bit JVMs are still used on Windows due to integration with 32-bit native libraries (DLLs). Their users cannot migrate directly to 64-bit JVMs because a 64-bit process on Windows cannot load 32-bit DLLs. While Windows x64 is capable of running 32-bit applications by emulating an 32-bit environment through WOW64, applications will suffer dramatic performance degradation despite the assumed memory footprint benefits.

We therefore assume that