RFR: 8239001: Hotspot build broken on linux-sparc after 8238281
Kim Barrett
kim.barrett at oracle.com
Thu Feb 13 19:35:19 UTC 2020
> On Feb 13, 2020, at 7:26 AM, John Paul Adrian Glaubitz <glaubitz at physik.fu-berlin.de> wrote:
>
> Hello!
>
> Hotspot fails to build on linux-sparc after 8238281 due to the redefinition
> of offset_of() in src/hotspot/share/prims/jvm.cpp [1]:
>
> /home/glaubitz/jdk/src/hotspot/cpu/sparc/macroAssembler_sparc.hpp: In static member function 'static int RegistersForDebugging::i_offset(int)':
> /home/glaubitz/jdk/src/hotspot/cpu/sparc/macroAssembler_sparc.hpp:488:74: error: 'j' cannot appear in a constant-expression
> 488 | static int i_offset(int j) { return offset_of(RegistersForDebugging, i[j]); }
> | ^
>
> Since offsetof() can only be used with constant expressions, I have reused
> the old definition of offset_of() in src/hotspot/cpu/sparc/macroAssembler_sparc.hpp
> to fix the issue.
>
> I couldn't come up with a more elegant solution, but I'm open for suggestions.
>
> Please review my change in [2].
>
> Thanks,
> Adrian
>
>> [1] https://bugs.openjdk.java.net/browse/JDK-8239001
>> [2] http://cr.openjdk.java.net/~glaubitz/8239001/webrev.00/
I don't think this is the right way to address this problem.
I think the JDK-8238281 change to offset_of and the associated
addition of -Wno-invalid-offsetof to the build configuration was a
mistake, and should be reverted. Those changes seem unrelated to the
purpose of JDK-8238281, which was to raise the minimum acceptable gcc
version.
More information about the build-dev
mailing list