RFR: 8330520: linux ppc64le clang build fails in os_linux.cpp with static_assert with no message is a C++17 extension

Matthias Baesken mbaesken at openjdk.org
Wed Apr 17 15:09:00 UTC 2024


On Wed, 17 Apr 2024 15:02:15 GMT, Stefan Karlsson <stefank at openjdk.org> wrote:

>> We run into the following build error when compiling on Linux ppc64le with the clang toolchain
>> 
>> 
>> jdk/src/hotspot/os/linux/os_linux.cpp:2975:65: error: 'static_assert' with no message is a C++17 extension [-Werror,-Wc++17-extensions]
>> static_assert(MADV_POPULATE_WRITE == MADV_POPULATE_WRITE_value);
>> 
>> 
>> Currently it is not clear when "8314488: Compile the JDK as C++17" will be in the codebase so better fix the static_assert .
>
> src/hotspot/os/linux/os_linux.cpp line 2975:
> 
>> 2973: #else
>> 2974:   // Sanity-check our assumed default value if we build with a new enough libc.
>> 2975:   static_assert(MADV_POPULATE_WRITE == MADV_POPULATE_WRITE_value, "MADV_POPULATE_WRITE != MADV_POPULATE_WRITE_value");
> 
> Maybe use this instead?
> Suggestion:
> 
>   STATIC_ASSERT(MADV_POPULATE_WRITE == MADV_POPULATE_WRITE_value);

This would look very strange, considering we have another very similar static_assert with message at  line 2985  just 10 lines below .

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

PR Review Comment: https://git.openjdk.org/jdk/pull/18816#discussion_r1569007084


More information about the hotspot-runtime-dev mailing list