glib-private: fix build under Cygwin

fb58d55187 added weak linking for ASAN,
skipping it for MinGW because weak symbols are broken there.
The same is true for Cygwin, so skip things there too.

This fixes the following build error under MSYS2:

/usr/lib/gcc/x86_64-pc-msys/13.3.0/../../../../x86_64-pc-msys/bin/ld:
    glib/msys-glib-2.0-0.dll.p/gutils.c.o:gutils.c:
        (.rdata$.refptr.__lsan_enable[.refptr.__lsan_enable]+0x0): undefined reference to `__lsan_enable'
This commit is contained in:
Christoph Reiter 2024-07-09 20:34:02 +02:00 committed by Philip Withnall
parent 0e1647c0cb
commit 61c9204df4

View File

@ -47,14 +47,14 @@
/* If GLib itself is not compiled with ASAN sanitizer we may still want to
* control it in case it's linked by the loading application, so we need to
* do this check dynamically.
* However MinGW doesn't support weak attribute properly (even if it advertises
* However MinGW/Cygwin doesn't support weak attribute properly (even if it advertises
* it), so we ignore it in such case since it's not convenient to go through
* dlsym().
* Under MSVC we could use alternatename, but it doesn't seem to be as reliable
* as we'd like: https://stackoverflow.com/a/11529277/210151 and
* https://devblogs.microsoft.com/oldnewthing/20200731-00/?p=104024
*/
#elif defined (G_OS_UNIX) && !defined (__APPLE__) && g_macro__has_attribute (weak)
#elif defined (G_OS_UNIX) && !defined (__APPLE__) && !defined(__CYGWIN__) && g_macro__has_attribute (weak)
#define HAS_DYNAMIC_ASAN_LOADING