diff options
author | Eli Zaretskii <eliz@gnu.org> | 2016-10-06 18:08:31 +0300 |
---|---|---|
committer | Eli Zaretskii <eliz@gnu.org> | 2016-10-06 18:08:31 +0300 |
commit | 34b6df19a4dafe0227ab663c971079e68e17f393 (patch) | |
tree | 0de552eb621d62e870215cab1b0c2db9530b649f /src | |
parent | 4ef9ea2b2ad0db53d674ce6c691b605d894ae558 (diff) | |
download | emacs-34b6df19a4dafe0227ab663c971079e68e17f393.tar.gz |
Fix compilation with MinGW runtime 3.22.2 and w32api 3.18.2
* nt/inc/ms-w32.h (_WIN32_WINNT) [!MINGW_W64]: Undefine before
defining to avoid redefinition warnings.
* nt/inc/sys/stat.h (_SYS_STAT_H, _INC_STAT_H): Define, to avoid
inclusion of sys/stat.h from the system headers, which could then
lead to compilation errors due to redefinition of 'struct stat'
etc. This is needed because latest versions of MinGW runtime
include sys/stat.h from wchar.h.
* src/image.c (__MINGW_MAJOR_VERSION) [WINDOWSNT]: Temporarily
redefine to 4 to avoid conflict between 2 definitions of
MemoryBarrier. (Bug#24613)
Do not merge to master!
Diffstat (limited to 'src')
-rw-r--r-- | src/image.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/image.c b/src/image.c index a85d5149e7e..78539d91d2b 100644 --- a/src/image.c +++ b/src/image.c @@ -8994,10 +8994,27 @@ svg_image_p (Lisp_Object object) return fmt[SVG_FILE].count + fmt[SVG_DATA].count == 1; } +/* Some versions of glib's gatomic.h define MemoryBarrier, but MinGW + w32api 3.18 and later has its own definition. The following gross + hack avoids the clash. */ +# ifdef WINDOWSNT +# if (__W32API_MAJOR_VERSION + (__W32API_MINOR_VERSION >= 18)) >= 4 +# define W32_SAVE_MINGW_VERSION __MINGW_MAJOR_VERSION +# undef __MINGW_MAJOR_VERSION +# define __MINGW_MAJOR_VERSION 4 +# endif +# endif + # include <librsvg/rsvg.h> # ifdef WINDOWSNT +# ifdef W32_SAVE_MINGW_VERSION +# undef __MINGW_MAJOR_VERSION +# define __MINGW_MAJOR_VERSION W32_SAVE_MINGW_VERSION +# undef W32_SAVE_MINGW_VERSION +# endif + /* SVG library functions. */ DEF_DLL_FN (RsvgHandle *, rsvg_handle_new, (void)); DEF_DLL_FN (void, rsvg_handle_get_dimensions, |