From: Daniel P. Berrange Date: Tue, 11 Jul 2017 14:24:06 +0000 (+0100) Subject: internal: don't use weak symbols for Win32 platform X-Git-Tag: v3.6.0-rc1~232 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b9473d8b11d79c8990dcbba13bbf7d4051288a1e;p=thirdparty%2Flibvirt.git internal: don't use weak symbols for Win32 platform The Win32 platform will fail to link if you use weak symbols because it is incompatible with exporting symbols in a DLL: Cannot export virRandomGenerateWWN: symbol wrong type (2 vs 3) We only need weak symbols for our test suite to do LD_PRELOAD and this doesn't work on Win32, so we can just drop the hack for Win32 Signed-off-by: Daniel P. Berrange --- diff --git a/src/internal.h b/src/internal.h index 00edd4fdeb..edc3587959 100644 --- a/src/internal.h +++ b/src/internal.h @@ -128,10 +128,14 @@ * */ # ifndef ATTRIBUTE_MOCKABLE -# if __GNUC_PREREQ(4, 5) -# define ATTRIBUTE_MOCKABLE __attribute__((__noinline__, __noclone__, __weak__)) +# if defined(WIN32) +# define ATTRIBUTE_MOCKABLE # else -# define ATTRIBUTE_MOCKABLE __attribute__((__noinline__, __weak__)) +# if __GNUC_PREREQ(4, 5) +# define ATTRIBUTE_MOCKABLE __attribute__((__noinline__, __noclone__, __weak__)) +# else +# define ATTRIBUTE_MOCKABLE __attribute__((__noinline__, __weak__)) +# endif # endif # endif