On Mon, 9 Oct 2023 10:21:58 GMT, Frederic Thevenet <ftheve...@openjdk.org> 
wrote:

>> When building OpenJDK on Windows using "--with-native-debug-info=external", 
>> the resulting debug symbols are saved in files located in the same folder as 
>> the corresponding executable or library and named by swapping the extension 
>> ".exe" or ".dll" for a ".pdb" one (or "diz" if option 
>> "--with-native-debug-info=zipped" is used), which means that in the event of 
>> an exe and a dll file sharing the same target folder and file name (e.g. 
>> `bin\java.exe` and `bin\java.dll`), we have to choose whether symbols in 
>> `bin\java.pdb` will refer to the exe or the dll; we can't have both.
>> 
>> This PR addresses this issue by adopting a different naming strategy for the 
>> resulting symbol files where we keep the full name of every file - including 
>> its `dll` or `exe` extension) and then add the appropriate `.pdb`, `.map` or 
>> `.diz` extension .
>> 
>> For instance,  `jvm.dll` symbols are no longer called `jvm.pdb` but instead 
>> `jvm.dll.pdb`. Similarly, it is now `jvm.dll.diz` when using zipped symbols, 
>> and "jvm.dll.stripped.pdb" for stripped symbols (i.e. when 
>> "--with-external-symbols-in-bundles=public" is used).
>> 
>> The PR also removes the existing filtering for java.pdb, jimage.pdb and 
>> jpackage.pdb used to guaranty the dll symbols were bundled over the ones 
>> from the exe, since we no longer need that.
>
> Frederic Thevenet has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   Added a test to verify that symbols are available

The root cause for this test failing turns out to be indeed related to MSYS2 ; 
namely checks made to determine whether or not we're running on Windows return 
"false", so all Windows specific code is ignored.
In this case, we simply jump over the part where _NT_SYMBOL_PATH is set.

I opened https://bugs.openjdk.org/browse/JDK-8318669 to make the logic that 
auto detects the target OS when running pre-built test  in 
"RunTestsPrebuilt.gmk" aware of MSYS2, but I am now wondering if it might not 
be best to just set OPENJDK_TARGET_OS explicitly to  "windows" in the command 
line that launch the tests?

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

PR Comment: https://git.openjdk.org/jdk/pull/16039#issuecomment-1775618562

Reply via email to