RFR: Fix Optimized builds
Aleksey Shipilev
shade at openjdk.java.net
Thu Sep 30 09:19:51 UTC 2021
On Mon, 27 Sep 2021 12:13:00 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:
> The usual trap in Hotspot code is the belief that `ASSERT <=> !PRODUCT`, but that's not actually true. You would not see this in regular release (`!ASSERT`, `PRODUCT`) or fastdebug (`ASSERT`, `!PRODUCT`) builds, but you would see it in optimized (`!ASSERT`, `!PRODUCT`) builds. See for example GHA: https://github.com/shipilev/loom/runs/3717294006?check_suite_focus=true
>
> The use of `ASSERT` and `PRODUCT` should be consistent to avoid build failures in optimized builds.
>
> Additional testing:
> - [x] Linux x86_64 optimized now builds
> - [x] Linux x86_64 release still builds
> - [x] Linux x86_64 fastdebug still builds
Forgot to say this: notice that `log_develop_trace` is `!PRODUCT` rather than `ASSERT`. So if you reference a field in that logging statement, you need to either make that field `NOT_PRODUCT`, or wrap the `log_develop_trace` into `DEBUG_ONLY`. I believe `NOT_PRODUCT` is less awkward.
-------------
PR: https://git.openjdk.java.net/loom/pull/69
More information about the loom-dev
mailing list