mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-26 07:33:47 +00:00
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)
This commit is contained in:
parent
6e6c088153
commit
d48369db9c
@ -146,6 +146,7 @@ extern char *getenv ();
|
||||
in its system headers, and is not really compatible with values
|
||||
lower than 0x0500, so leave it alone. */
|
||||
#ifndef MINGW_W64
|
||||
# undef _WIN32_WINNT
|
||||
# define _WIN32_WINNT 0x0400
|
||||
#endif
|
||||
|
||||
|
@ -30,6 +30,14 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
|
||||
# define __MINGW_NOTHROW
|
||||
#endif
|
||||
|
||||
/* Prevent the MinGW stat.h header from being included, ever. */
|
||||
#ifndef _SYS_STAT_H
|
||||
# define _SYS_STAT_H
|
||||
#endif
|
||||
#ifndef _INC_STAT_H
|
||||
# define _INC_STAT_H
|
||||
#endif
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <time.h>
|
||||
|
||||
|
20
src/image.c
20
src/image.c
@ -9013,10 +9013,30 @@ 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
|
||||
|
||||
/* Restore the original definition of __MINGW_MAJOR_VERSION. */
|
||||
# ifdef W32_SAVE_MINGW_VERSION
|
||||
# undef __MINGW_MAJOR_VERSION
|
||||
# define __MINGW_MAJOR_VERSION W32_SAVE_MINGW_VERSION
|
||||
# ifdef __MINGW_MAJOR_VERSION
|
||||
# undef W32_SAVE_MINGW_VERSION
|
||||
# endif
|
||||
# endif
|
||||
|
||||
/* SVG library functions. */
|
||||
DEF_DLL_FN (RsvgHandle *, rsvg_handle_new, (void));
|
||||
DEF_DLL_FN (void, rsvg_handle_get_dimensions,
|
||||
|
Loading…
Reference in New Issue
Block a user