Index: lib/sanitizer_common/sanitizer_internal_defs.h =================================================================== --- lib/sanitizer_common/sanitizer_internal_defs.h +++ lib/sanitizer_common/sanitizer_internal_defs.h @@ -22,7 +22,11 @@ // Only use SANITIZER_*ATTRIBUTE* before the function return type! #if SANITIZER_WINDOWS +#if SANITIZER_IMPORT_INTERFACE +# define SANITIZER_INTERFACE_ATTRIBUTE __declspec(dllimport) +#else # define SANITIZER_INTERFACE_ATTRIBUTE __declspec(dllexport) +#endif # define SANITIZER_WEAK_ATTRIBUTE #elif SANITIZER_GO # define SANITIZER_INTERFACE_ATTRIBUTE Index: lib/sanitizer_common/sanitizer_win_defs.h =================================================================== --- lib/sanitizer_common/sanitizer_win_defs.h +++ lib/sanitizer_common/sanitizer_win_defs.h @@ -73,6 +73,12 @@ // Name for exported implementation of weak function. # define WEAK_EXPORT_NAME(Name) Name##__dll +#if SANITIZER_IMPORT_INTERFACE +# define WIN_INTERFACE_ATTRIBUTE __declspec(dllimport) +#else +# define WIN_INTERFACE_ATTRIBUTE __declspec(dllexport) +#endif + // Use this macro when you need to define and export a weak function from a // library. For example: // WIN_WEAK_EXPORT_DEF(bool, compare, int a, int b) { return a > b; } @@ -87,7 +93,7 @@ // WIN_WEAK_EXPORT_DECL(bool, compare, int a, int b); # define WIN_WEAK_EXPORT_DECL(ReturnType, Name, ...) \ extern "C" ReturnType Name(__VA_ARGS__); \ - extern "C" __declspec(dllexport) \ + extern "C" WIN_INTERFACE_ATTRIBUTE \ ReturnType WEAK_EXPORT_NAME(Name)(__VA_ARGS__) // Use this macro when you need to import a weak function from a library. It