Blocks :
|
The workaround was added to fix: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=27724 New code added by JDK-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.