RFR: 8345265: Fix gcc LTO without disabling LTO for g1ParScanThreadState.cpp

Julian Waters jwaters at openjdk.org
Tue Dec 17 14:54:04 UTC 2024


On Mon, 9 Dec 2024 10:30:01 GMT, Matthias Baesken <mbaesken at openjdk.org> wrote:

> > This needs a name and description change, I'll do so later. @MBaesken does this fix LTO on your end? Kim also reports that LTO hangs indefinitely alongside several warning messages, do you have similar issues when you try to enable LTO?
> 
> When I try to build with this change (with and without lto enabled) I run into
> 
> ```
> /openjdk/tools/devkits/x86_64-linux-gnu-to-x86_64-linux-gnu-fedora27-gcc11.3.0/x86_64-linux-gnu/sysroot/usr/include/unistd.h:520:14: error: conflicting declaration of 'char* get_current_dir_name()' with 'C' linkage
>   520 | extern char *get_current_dir_name (void) __THROW;
>       |              ^~~~~~~~~~~~~~~~~~~~
> ```
> 
> (maybe it is related to the devkit, maybe to pch I don't know)

It's related to the subtle change in FORBID_C_FUNCTION, I think unistd.h is being included before compilerWarnings.hpp somewhere. Well, at least I now know the current approach has this issue

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

PR Comment: https://git.openjdk.org/jdk/pull/22464#issuecomment-2527675965


More information about the build-dev mailing list