RFR: 8311064: Windows builds fail without precompiled headers after JDK-8310728

David Holmes dholmes at openjdk.org
Thu Jun 29 08:01:07 UTC 2023


On Wed, 28 Jun 2023 21:13:50 GMT, Daniel Jeliński <djelinski at openjdk.org> wrote:

> Please review this change to fix Windows build without precompiled headers.
> 
> After JDK-8310728:
>> the compiler enforces the C++11 requirement that all functions declared inline must have a definition available in the same translation unit if they're used
> 
> When precompiled headers are used, more headers are automatically included, which allowed the build to pass without this change.
> 
> This PR adds 2 includes and un-inlines `PlatformMutex` destructor, which was needed by 3 files and not easily exposed.
> 
> Windows build passes with this change, both with and without precompiled headers. Full tier1-5 build in progress.

This error:

zPhysicalMemory.obj : error LNK2001: unresolved external symbol "public: __cdecl ZListNode<class ZMemory>::~ZListNode<class ZMemory>(void)" (??1?$[ZListNode at VZMemory](mailto:ZListNode at VZMemory)@@@@[QEAA at XZ](mailto:QEAA at XZ))

certainly suggests to me that zPhysicalMemory.cpp needs the ZListNode header file.

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

PR Comment: https://git.openjdk.org/jdk/pull/14701#issuecomment-1612587682


More information about the hotspot-dev mailing list