diff options
author | Sergei Trofimovich <slyfox@gentoo.org> | 2017-04-23 11:44:45 +0100 |
---|---|---|
committer | Sergei Trofimovich <slyfox@gentoo.org> | 2017-04-23 12:00:58 +0100 |
commit | 745032dd02da511067c2939259ed212852187e0f (patch) | |
tree | acbe17d77ef83edc6baf47296c2875cfc6a57977 /HACKING.md | |
parent | fe37e2c6ab9dae6a522735114fea4dde9509250f (diff) | |
download | haskell-745032dd02da511067c2939259ed212852187e0f.tar.gz |
rts: tweak cross-compilation to mingw32
Found the problem on x86_64-linux host where
I tried to cross-compile GHC to windows as:
$ ./configure --target=i686-w64-mingw32 \
Windres=i686-w64-mingw32-windres \
DllWrap=i686-w64-mingw32-dllwrap
As a result build failed as POSIX bits of RTS.
For example 'rts/posix/OSMem.c' contains unix-specific
mmap() syscalls and constants and thus can't be compiled
by i686-w64-mingw32 toolchain.
It's caused by the following part of 'rts/ghc.mk':
ifeq "$(HostOS_CPP)" "mingw32"
ALL_DIRS += win32
else
ALL_DIRS += posix
endif
In our case _CPP variables are defined this way (project.mk):
BuildOS_CPP = linux
HostOS_CPP = linux
TargetOS_CPP = mingw32
RTS should never be built for 'BuildOS' or 'HostOS' as it's
always built by ghc-stage1 (targeted at TargetOS).
The change is to flip 'HostOS_CPP' to 'TargetOS_CPP' in 'rts/ghc.mk'.
Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
Diffstat (limited to 'HACKING.md')
0 files changed, 0 insertions, 0 deletions