The purpose of these headers is to fix issues with mingw v4.0, as described in #9246.
This works by adding this directory to GCC include search path before mingw system headers directories, so we can intercept their inclusions and add missing definitions without having to modify files in mingw/include.
This commit is contained in:
parent
d1c05504ba
commit
c3fd430603
@ -28,7 +28,7 @@ LLVM_STAMP_$(1) = $$(CFG_LLVM_BUILD_DIR_$(1))/llvm-auto-clean-stamp
|
||||
|
||||
$$(LLVM_CONFIG_$(1)): $$(LLVM_DEPS) $$(LLVM_STAMP_$(1))
|
||||
@$$(call E, make: llvm)
|
||||
$$(Q)$$(MAKE) -C $$(CFG_LLVM_BUILD_DIR_$(1)) $$(CFG_LLVM_BUILD_ENV)
|
||||
$$(Q)$$(MAKE) -C $$(CFG_LLVM_BUILD_DIR_$(1)) $$(CFG_LLVM_BUILD_ENV_$(1))
|
||||
$$(Q)touch $$(LLVM_CONFIG_$(1))
|
||||
endif
|
||||
|
||||
|
@ -352,7 +352,7 @@ AR_i686-pc-mingw32=$(AR)
|
||||
CFG_LIB_NAME_i686-pc-mingw32=$(1).dll
|
||||
CFG_LIB_GLOB_i686-pc-mingw32=$(1)-*.dll
|
||||
CFG_LIB_DSYM_GLOB_i686-pc-mingw32=$(1)-*.dylib.dSYM
|
||||
CFG_GCCISH_CFLAGS_i686-pc-mingw32 := -Wall -Werror -g -m32 -march=i686 -D_WIN32_WINNT=0x0600
|
||||
CFG_GCCISH_CFLAGS_i686-pc-mingw32 := -Wall -Werror -g -m32 -march=i686 -D_WIN32_WINNT=0x0600 -I$(CFG_SRC_DIR)src/etc/mingw-fix-include
|
||||
CFG_GCCISH_CXXFLAGS_i686-pc-mingw32 := -fno-rtti
|
||||
CFG_GCCISH_LINK_FLAGS_i686-pc-mingw32 := -shared -fPIC -g -m32
|
||||
CFG_GCCISH_DEF_FLAG_i686-pc-mingw32 :=
|
||||
@ -361,6 +361,7 @@ CFG_GCCISH_POST_LIB_FLAGS_i686-pc-mingw32 :=
|
||||
CFG_DEF_SUFFIX_i686-pc-mingw32 := .mingw32.def
|
||||
CFG_INSTALL_NAME_i686-pc-mingw32 =
|
||||
CFG_LIBUV_LINK_FLAGS_i686-pc-mingw32 := -lWs2_32 -lpsapi -liphlpapi
|
||||
CFG_LLVM_BUILD_ENV_i686-pc-mingw32 := CPATH=$(CFG_SRC_DIR)src/etc/mingw-fix-include
|
||||
CFG_EXE_SUFFIX_i686-pc-mingw32 := .exe
|
||||
CFG_WINDOWSY_i686-pc-mingw32 := 1
|
||||
CFG_UNIXY_i686-pc-mingw32 :=
|
||||
|
2
mk/rt.mk
2
mk/rt.mk
@ -24,7 +24,7 @@
|
||||
# working under these assumptions).
|
||||
|
||||
# Hack for passing flags into LIBUV, see below.
|
||||
LIBUV_FLAGS_i386 = -m32 -fPIC
|
||||
LIBUV_FLAGS_i386 = -m32 -fPIC -I$(S)src/etc/mingw-fix-include
|
||||
LIBUV_FLAGS_x86_64 = -m64 -fPIC
|
||||
ifeq ($(OSTYPE_$(1)), linux-androideabi)
|
||||
LIBUV_FLAGS_arm = -fPIC -DANDROID -std=gnu99
|
||||
|
6
src/etc/mingw-fix-include/README.txt
Normal file
6
src/etc/mingw-fix-include/README.txt
Normal file
@ -0,0 +1,6 @@
|
||||
The purpose of these headers is to fix issues with mingw v4.0, as described in #9246.
|
||||
|
||||
This works by adding this directory to GCC include search path before mingw system headers directories,
|
||||
so we can intercept their inclusions and add missing definitions without having to modify files in mingw/include.
|
||||
|
||||
Once mingw fixes all 3 issues mentioned in #9246, this directory and all references to it from rust/mk/* may be removed.
|
8
src/etc/mingw-fix-include/bits/c++config.h
Normal file
8
src/etc/mingw-fix-include/bits/c++config.h
Normal file
@ -0,0 +1,8 @@
|
||||
#ifndef _FIX_CXXCONFIG_H
|
||||
#define _FIX_CXXCONFIG_H 1
|
||||
|
||||
#define _GLIBCXX_HAVE_FENV_H 1
|
||||
|
||||
#include_next <bits/c++config.h>
|
||||
|
||||
#endif
|
8
src/etc/mingw-fix-include/winbase.h
Normal file
8
src/etc/mingw-fix-include/winbase.h
Normal file
@ -0,0 +1,8 @@
|
||||
#ifndef _FIX_WINBASE_H
|
||||
#define _FIX_WINBASE_H 1
|
||||
|
||||
#define NTDDK_VERSION NTDDI_VERSION
|
||||
|
||||
#include_next <winbase.h>
|
||||
|
||||
#endif
|
12
src/etc/mingw-fix-include/winsock2.h
Normal file
12
src/etc/mingw-fix-include/winsock2.h
Normal file
@ -0,0 +1,12 @@
|
||||
#ifndef _FIX_WINSOCK2_H
|
||||
#define _FIX_WINSOCK2_H 1
|
||||
|
||||
#include_next <winsock2.h>
|
||||
|
||||
typedef struct pollfd {
|
||||
SOCKET fd;
|
||||
short events;
|
||||
short revents;
|
||||
} WSAPOLLFD, *PWSAPOLLFD, *LPWSAPOLLFD;
|
||||
|
||||
#endif
|
Loading…
Reference in New Issue
Block a user