https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90312
--- Comment #3 from Bence Szabó <sbence92 at gmail dot com> --- Thank you for the patch! The main blocker is some msvc specific code in sanitizer_win_defs.h. WIN_FORCE_LINK, WIN_WEAK_ALIAS, WIN_EXPORT AFAIK the sanitizer is from LLVM (or google?) and the official llvm build for windows is using msvc. So probably no-one has ever tried to compile this for windows with gcc. The build dies early in libsanitizer with: libtool: compile: /c/GIT/gcc/trunk_build/./gcc/xgcc -shared-libgcc -B/c/GIT/gcc/trunk_build/./gcc -nostdinc++ -L/c/GIT/gcc/trunk_build/x86_64-w64-mingw32/libstdc++-v3/src -L/c/GIT/gcc/trunk_build/x86_64-w64-mingw32/libstdc++-v3/src/.libs -L/c/GIT/gcc/trunk_build/x86_64-w64-mingw32/libstdc++-v3/libsupc++/.libs -L/c/mingw_83_build/x86_64-w64-mingw32/lib -L/c/mingw_83_build/mingw/lib -isystem /c/mingw_83_build/x86_64-w64-mingw32/include -isystem /c/mingw_83_build/mingw/include -B/c/mingw_83_build/x86_64-w64-mingw32/bin/ -B/c/mingw_83_build/x86_64-w64-mingw32/lib/ -isystem /c/mingw_83_build/x86_64-w64-mingw32/include -isystem /c/mingw_83_build/x86_64-w64-mingw32/sys-include -D_GNU_SOURCE -D_DEBUG -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -DHAVE_RPC_XDR_H=0 -DHAVE_TIRPC_RPC_XDR_H=0 -I. -I../../../../trunk_src/libsanitizer/sanitizer_common -I.. -I ../../../../trunk_src/libsanitizer/include -isystem ../../../../trunk_src/libsanitizer/include/system -Wall -W -Wno-unused-parameter -Wwrite-strings -pedantic -Wno-long-long -fPIC -fno-builtin -fno-exceptions -fno-rtti -fomit-frame-pointer -funwind-tables -fvisibility=hidden -Wno-variadic-macros -I../../libstdc++-v3/include -I../../libstdc++-v3/include/x86_64-w64-mingw32 -I../../../../trunk_src/libsanitizer/../libstdc++-v3/libsupc++ -std=gnu++11 -g -O2 -pipe -fno-ident -I/c/GIT/gcc/prerequisites/x86_64-w64-mingw32-static/include -MT sanitizer_common.lo -MD -MP -MF .deps/sanitizer_common.Tpo -c ../../../../trunk_src/libsanitizer/sanitizer_common/sanitizer_common.cc -DDLL_EXPORT -DPIC -o .libs/sanitizer_common.o In file included from c:\git\gcc\trunk_src\libsanitizer\sanitizer_common\sanitizer_internal_defs.h:58, from c:\git\gcc\trunk_src\libsanitizer\sanitizer_common\sanitizer_flags.h:15, from c:\git\gcc\trunk_src\libsanitizer\sanitizer_common\sanitizer_common.h:17, from ../../../../trunk_src/libsanitizer/sanitizer_common/sanitizer_common.cc:12: c:\git\gcc\trunk_src\libsanitizer\sanitizer_common\sanitizer_win_defs.h:66:11: error: expected constructor, destructor, or type conversion before '(' token 66 | __pragma(comment(linker, "/alternatename:" WIN_SYM_PREFIX STRINGIFY(Name) "="\ | ^ c:\git\gcc\trunk_src\libsanitizer\sanitizer_common\sanitizer_win_defs.h:94:3: note: in expansion of macro 'WIN_WEAK_ALIAS' 94 | WIN_WEAK_ALIAS(Name, WEAK_DEFAULT_NAME(Name)) \ | ^~~~~~~~~~~~~~ c:\git\gcc\trunk_src\libsanitizer\sanitizer_common\sanitizer_internal_defs.h:60:3: note: in expansion of macro 'WIN_WEAK_EXPORT_DEF' 60 | WIN_WEAK_EXPORT_DEF(ReturnType, Name, __VA_ARGS__) | ^~~~~~~~~~~~~~~~~~~ ../../../../trunk_src/libsanitizer/sanitizer_common/sanitizer_common.cc:328:1: note: in expansion of macro 'SANITIZER_INTERFACE_WEAK_DEF' 328 | SANITIZER_INTERFACE_WEAK_DEF(void, __sanitizer_report_error_summary, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ make[4]: *** [Makefile:663: sanitizer_common.lo] Error 1 Same goes for WIN_FORCE_LINK