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

Reply via email to