From 83f413f8b181b20d35315c45544810007865e512 Mon Sep 17 00:00:00 2001 From: Andrea Fioraldi Date: Wed, 18 Aug 2021 10:45:50 +0200 Subject: [PATCH] Default weak fns impl on MSVC --- libafl_targets/src/common.h | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/libafl_targets/src/common.h b/libafl_targets/src/common.h index e2695fe16d..815ca4906c 100644 --- a/libafl_targets/src/common.h +++ b/libafl_targets/src/common.h @@ -62,6 +62,15 @@ Name) "=" WIN_SYM_PREFIX STRINGIFY(Default))) #define CHECK_WEAK_FN(Name) ((void*)Name != (void*)&Name##Def) + +#define EXT_FUNC_IMPL(NAME, RETURN_TYPE, FUNC_SIG, WARN) \ + RETURN_TYPE NAME##Def FUNC_SIG; \ + EXTERNAL_FUNC(NAME, NAME##Def) RETURN_TYPE NAME FUNC_SIG; \ + RETURN_TYPE NAME##Def FUNC_SIG \ + +#define EXT_FUNC(NAME, RETURN_TYPE, FUNC_SIG, WARN) \ + RETURN_TYPE (*NAME##Def) FUNC_SIG = NULL; \ + EXTERNAL_FUNC(NAME, NAME##Def) RETURN_TYPE NAME FUNC_SIG #else // Declare external functions as weak to allow them to default to a specified // function if not defined explicitly. We must use weak symbols because clang's @@ -71,7 +80,6 @@ __attribute__((weak, alias(STRINGIFY(Default)))) #define CHECK_WEAK_FN(Name) (Name != NULL) -#endif // _MSC_VER #define EXT_FUNC_IMPL(NAME, RETURN_TYPE, FUNC_SIG, WARN) \ EXT_FUNC(NAME, RETURN_TYPE, FUNC_SIG, WARN) @@ -79,6 +87,8 @@ #define EXT_FUNC(NAME, RETURN_TYPE, FUNC_SIG, WARN) \ RETURN_TYPE (*NAME##Def) FUNC_SIG = NULL; \ EXTERNAL_FUNC(NAME, NAME##Def) RETURN_TYPE NAME FUNC_SIG +#endif // _MSC_VER + #else #if defined(__APPLE__) @@ -103,6 +113,6 @@ #endif #define CHECK_WEAK_FN(Name) (Name != NULL) -#endif +#endif // _WIN32 #endif