-
Enhancement
-
Resolution: Fixed
-
P2
-
9
-
b92
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8143462 | emb-9 | Christian Thalinger | P2 | Resolved | Fixed | team |
JDK-8251919 | 8u281 | David Buck | P2 | Closed | Fixed | b01 |
JDK-8257275 | emb-8u281 | David Buck | P2 | Resolved | Fixed | team |
The workaround was added to fix:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=27724
New code added byJDK-8139170 breaks builds on 32-bit platforms:
/opt/jprt/T/P1/235039.cthaling/s/hotspot/src/share/vm/runtime/vmStructs.cpp:3102:30: error: large integer implicitly truncated to unsigned type [-Werror=overflow]
{ name, cast_uint64_t(value) },
^
/opt/jprt/T/P1/235039.cthaling/s/hotspot/src/cpu/x86/vm/vmStructs_x86.hpp:86:3: note: in expansion of macro 'GENERATE_PREPROCESSOR_VM_LONG_CONSTANT_ENTRY'
declare_preprocessor_constant("VM_Version::CPU_AVX512VL", CPU_AVX512VL)
^
/opt/jprt/T/P1/235039.cthaling/s/hotspot/src/share/vm/runtime/vmStructs.cpp:3340:3: note: in expansion of macro 'VM_LONG_CONSTANTS_CPU'
VM_LONG_CONSTANTS_CPU(GENERATE_VM_LONG_CONSTANT_ENTRY,
^
The reason is that cast_uint64_t takes a size_t as argument:
static inline uint64_t cast_uint64_t(size_t x)
{
return x;
}
but the passed value is an unsigned 64-bit constant value:
#define CPU_AVX512VL UCONST64(0x100000000)
GCC bug 27724 is a serious bug and we should not build the JDK with that version. I am proposing to remove the workaround and add a check in the Makefiles to not allow GCC 4.1.1 to build HotSpot.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=27724
New code added by
/opt/jprt/T/P1/235039.cthaling/s/hotspot/src/share/vm/runtime/vmStructs.cpp:3102:30: error: large integer implicitly truncated to unsigned type [-Werror=overflow]
{ name, cast_uint64_t(value) },
^
/opt/jprt/T/P1/235039.cthaling/s/hotspot/src/cpu/x86/vm/vmStructs_x86.hpp:86:3: note: in expansion of macro 'GENERATE_PREPROCESSOR_VM_LONG_CONSTANT_ENTRY'
declare_preprocessor_constant("VM_Version::CPU_AVX512VL", CPU_AVX512VL)
^
/opt/jprt/T/P1/235039.cthaling/s/hotspot/src/share/vm/runtime/vmStructs.cpp:3340:3: note: in expansion of macro 'VM_LONG_CONSTANTS_CPU'
VM_LONG_CONSTANTS_CPU(GENERATE_VM_LONG_CONSTANT_ENTRY,
^
The reason is that cast_uint64_t takes a size_t as argument:
static inline uint64_t cast_uint64_t(size_t x)
{
return x;
}
but the passed value is an unsigned 64-bit constant value:
#define CPU_AVX512VL UCONST64(0x100000000)
GCC bug 27724 is a serious bug and we should not build the JDK with that version. I am proposing to remove the workaround and add a check in the Makefiles to not allow GCC 4.1.1 to build HotSpot.
- backported by
-
JDK-8143462 remove VMStructs cast_uint64_t workaround for GCC 4.1.1 bug
- Resolved
-
JDK-8257275 remove VMStructs cast_uint64_t workaround for GCC 4.1.1 bug
- Resolved
-
JDK-8251919 remove VMStructs cast_uint64_t workaround for GCC 4.1.1 bug
- Closed
- blocks
-
JDK-8139170 JVMCI refresh
- Resolved