build, meson, gitlab: Generate native .pdb CodeView symbols on Windows

Reverts dc21fb76

The CodeView format introduces some advantages to our Windows build:
- It is way smaller than DWARF, reducing the .exe installer. With
  the strip of COFF symbols too, the installation is 120MB smaller.
- Can be uploaded as .appxsym to be used on demand by MSIX (in thesis)
- Works better with DIA and DbgHelp debuggers like WinDbg and DrMingW,
  respectively. LLDB also works by using LLDB_USE_NATIVE_PDB_READER=1

Context: that was not working before because DrMingw and LLDB seems to
only search for the build-time .pdb path in '.buildid' section of bins.
See: https://github.com/jrfonseca/drmingw/issues/91 and
https://github.com/llvm/llvm-project/issues/125355. So, we will set
_NT_SYMBOL_PATH at least for $PREFIX/bin for now as workaround.
This commit is contained in:
Bruno Lopes 2025-04-13 14:50:37 -03:00
parent 19bb4a5251
commit 63f5ea9dc5
No known key found for this signature in database
11 changed files with 68 additions and 91 deletions

View file

@ -226,10 +226,17 @@ gimp_main (GType plug_in_type,
/* Use Dr. Mingw (dumps backtrace on crash) if it is available. */
{
time_t t;
gchar *codeview_path;
gchar *filename;
gchar *dir;
wchar_t *plug_in_backtrace_path_utf16;
/* FIXME: https://github.com/jrfonseca/drmingw/issues/91 */
codeview_path = g_build_filename (gimp_installation_directory (),
"bin", NULL);
g_setenv ("_NT_SYMBOL_PATH", codeview_path, TRUE);
g_free (codeview_path);
/* This has to be the non-roaming directory (i.e., the local
* directory) as backtraces correspond to the binaries on this
* system.