RFR: 8345169: Implement JEP 503: Remove the 32-bit x86 Port

Vladimir Ivanov vlivanov at openjdk.org
Wed Mar 5 23:22:51 UTC 2025


On Tue, 4 Mar 2025 16:52:16 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:

> This PR implements JEP 503: Remove the 32-bit x86 Port.
> 
> The JEP is proposed to target 25, we would not integrate until JEP is ready. Reviews are appreciated meanwhile.
> 
> This is only the removal of obvious 32-bit x86 parts, mostly files with `x86_32` in their name.  Those are only built when build system knows we are compiling for x86_32. There is therefore no impact on x86_64. The approach for removing x86_32 files only also makes this PR borderline trivial, and requires no additional testing beyond normal pre-integration checks.
> 
> The rest of the code is quite heavily intertwined with x86_64 and/or Zero, and would require accurate untangling. It would be much easier to review and test once we purge the free-standing parts of 32-bit x86 port, which is also a bulk of the port. The tangling with 32-bit x86 Zero is also why I did not touch most of the build system paths that handle x86. There is [JDK-8351148](https://bugs.openjdk.org/browse/JDK-8351148) umbrella that tracks further cleanup work. One can peek the final state that can be reached with all the cleanups in my earlier exploratory https://github.com/openjdk/jdk/pull/22567.
> 
> Additional testing:
>  - [x] Linux x86_32 Server fastdebug, `make bootcycle-images` (now fails configure)
>  - [x] Linux x86_64 Server fastdebug, `make bootcycle-images` (still works)
>  - [x] Linux x86_32 Zero fastdebug, `make bootcycle-images` (still works)
>  - [x] Linux x86_64 Zero fastdebug, `make bootcycle-images` (still works)

There's a wide variety of options to justify the goal of the JEP. A bare minimum would be to just remove x86-32 build support. And on the other side of the spectrum the current patch would be accompanied by all x86-32-specific code and all the features used exclusively by x86-32 port.

During previous round of discussions I expressed my preference as keeping JEP implementation simple and perform all non-trivial cleanups as follow-up RFEs. IMO it enables swift removal (and eliminates the burden to keep x86-32 port alive during ongoing development work) while keeping incremental cleanup activities at comfortable pace. 

Proposed patch perfectly justifies my preference.

-------------

PR Comment: https://git.openjdk.org/jdk/pull/23906#issuecomment-2702299307


More information about the build-dev mailing list