On Thu, 5 Oct 2023 15:12:06 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: > > Fixed further places where win symbol files names expected the old > convention. make/CreateJmods.gmk line 83: > 81: ifneq ($(CMDS_DIR), ) > 82: DEPS += $(call FindFiles, $(CMDS_DIR)) > 83: ifeq ($(call isTargetOs, windows)+$(SHIP_DEBUG_SYMBOLS), true+public) Suggestion: ifeq ($(call isCompiler, microsoft)+$(SHIP_DEBUG_SYMBOLS), true+public) stripped pdbs (and pdbs in general) are only ever used with the VS toolchain make/CreateJmods.gmk line 84: > 82: DEPS += $(call FindFiles, $(CMDS_DIR)) > 83: ifeq ($(call isTargetOs, windows)+$(SHIP_DEBUG_SYMBOLS), true+public) > 84: # For public debug symbols on Windows, we have to use stripped pdbs > and rename them Suggestion: # For public debug symbols on VS, we have to use stripped pdbs and rename them ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/16039#discussion_r1348255963 PR Review Comment: https://git.openjdk.org/jdk/pull/16039#discussion_r1348256102