https://bugs.winehq.org/show_bug.cgi?id=57308
--- Comment #7 from Bernhard Übelacker bernhardu@mailbox.org --- My comment 6 is wrong, as there the output contains always 52534453 / "RSDS", and seems part of a singature:
With a notepad.exe configured with plain `--enable-build-id`: llvm-readobj-14 --coff-debug-directory notepad.exe ... PDBSignature: 0x53445352 PDBGUID: (0C ED DF EF 5F 62 3C 69 FC 6B 7E D7 5F A9 D3 26) ...
Therefore a more correct version of comment 6 would be: x86_64-w64-mingw32-objcopy --output-target=binary \ --only-section=.buildid notepad.exe \ /dev/stdout | xxd -plain -seek 32 -l 16
Unfortunatley a test with `CROSSLDFLAGS=-Wl,--build-id=sha1` instead of the `--enable-build-id` did also just add a 16 bytes ".buildid" hash.
But it looks like dbghelp.dll ignores currently the ".buildid" section instead searches for a ".note.gnu.build-id" section.
Therefore I guess currently just the search via filename would work, if the globaldebugdir lookup would be modified like this:
dlls/dbghelp/module.c @@ static struct image_file_map* image_locate_debug_link lstrcpyW(p, module->real_path); + if (!_wcsnicmp(p, L"\??\Z:\", 7)) + memmove(p, p + 7, (wcslen(p) + 1 - 7) * sizeof(WCHAR)); slash = p;