JDK-8214206 : Fix for JDK-8213419 is broken on 32-bit
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 11,12
  • Priority: P1
  • Status: Closed
  • Resolution: Fixed
  • Submitted: 2018-11-22
  • Updated: 2022-02-06
  • Resolved: 2018-11-23
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 11 JDK 12 Other
11.0.3Fixed 12 b22Fixed openjdk8u212Fixed
Related Reports
Relates :  
Description
The types int and intptr_t are the same for 32-bit so we fail here:

jib > /scratch/opt/mach5/mesos/work_dir/slaves/2dd962d0-8988-479b-a804-57ab764ada59-S1332/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/04d9a174-ce03-43b6-93a6-849d86569c65/runs/3885c68c-93b9-40fc-a119-0fef0231a1fe/workspace/open/src/hotspot/share/utilities/globalDefinitions.hpp:1067:12: error: redefinition of 'int log2_intptr(int)'
jib >  inline int log2_intptr(int x) {
jib >             ^~~~~~~~~~~
jib > /scratch/opt/mach5/mesos/work_dir/slaves/2dd962d0-8988-479b-a804-57ab764ada59-S1332/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/04d9a174-ce03-43b6-93a6-849d86569c65/runs/3885c68c-93b9-40fc-a119-0fef0231a1fe/workspace/open/src/hotspot/share/utilities/globalDefinitions.hpp:1063:12: note: 'int log2_intptr(intptr_t)' previously defined here
jib >  inline int log2_intptr(intptr_t x) {
jib >             ^~~~~~~~~~~
jib > /scratch/opt/mach5/mesos/work_dir/slaves/2dd962d0-8988-479b-a804-57ab764ada59-S1332/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/04d9a174-ce03-43b6-93a6-849d86569c65/runs/3885c68c-93b9-40fc-a119-0fef0231a1fe/workspace/open/src/hotspot/share/utilities/globalDefinitions.hpp: In function 'int log2_intptr(uint)':
jib > /scratch/opt/mach5/mesos/work_dir/slaves/2dd962d0-8988-479b-a804-57ab764ada59-S1332/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/04d9a174-ce03-43b6-93a6-849d86569c65/runs/3885c68c-93b9-40fc-a119-0fef0231a1fe/workspace/open/src/hotspot/share/utilities/globalDefinitions.hpp:1071:12: error: redefinition of 'int log2_intptr(uint)'
jib >  inline int log2_intptr(uint x) {
jib >             ^~~~~~~~~~~
jib > /scratch/opt/mach5/mesos/work_dir/slaves/2dd962d0-8988-479b-a804-57ab764ada59-S1332/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/04d9a174-ce03-43b6-93a6-849d86569c65/runs/3885c68c-93b9-40fc-a119-0fef0231a1fe/workspace/open/src/hotspot/share/utilities/globalDefinitions.hpp:1037:12: note: 'int log2_intptr(uintptr_t)' previously defined here
jib >  inline int log2_intptr(uintptr_t x) {
jib >             ^~~~~~~~~~~
Comments
Fix Request This is a follow up to JDK-8213419 for which I'm also requesting backport approval. The fix (together with initial bug JDK-8213419) reworks code with undefined behavior from hotspot. Note the synopsis of this bug is misleading as it fixes more than just the 32 bit build and is actually a rework of JDK-8213419. I verified that backport of this + JDK-8213419 builds on x86 (32 and 64 bits) and aarch64. Patch doesn't apply cleanly and I've requested a new review: https://mail.openjdk.java.net/pipermail/jdk-updates-dev/2019-February/000372.html
01-02-2019

URL: http://hg.openjdk.java.net/jdk/jdk/rev/7d3cde494494 User: roland Date: 2018-11-23 16:27:09 +0000
23-11-2018

32-bit builds are very important to parts of the OpenJDK community. While I would like to see additional early testing in this area it is simply a matter of resources. We do some builds at tier5. I will see if we can add a 32-bit build to the tier1 targets. Local 32-bit builds on Linux are easily attempted.
22-11-2018

If 32 bit builds are that important, maybe they should be enabled in the submit repo?
22-11-2018

Thanks [~dholmes], yes as suggested changing priority of this regression to P1.
22-11-2018

The priority of 8213419 is not relevant! This is breaking builds - should be at least a P2. ILW = High - 32-bit build is broken, High - happens for every 32-bit, High - no workaround. That actually would make a P1.
22-11-2018

ILW = same as 8213419 = HLM = P3
22-11-2018