-
Notifications
You must be signed in to change notification settings - Fork 0
/
Dockerfile.mingw.x86
34 lines (29 loc) · 1.38 KB
/
Dockerfile.mingw.x86
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
FROM 05nelsonm/build-env.linux-libc.base:latest
RUN echo 'Installing packages for mingw i686' && \
apt-get update --yes && \
apt-get install --yes \
binutils-mingw-w64-i686 \
g++-mingw-w64-i686 \
gcc-mingw-w64-i686 \
mingw-w64-tools
ENV CROSS_TRIPLE i686-w64-mingw32
ENV CROSS_BIN /usr/bin
ENV AR=${CROSS_BIN}/${CROSS_TRIPLE}-ar \
AS=${CROSS_BIN}/${CROSS_TRIPLE}-as \
CC=${CROSS_BIN}/${CROSS_TRIPLE}-gcc \
CPP=${CROSS_BIN}/${CROSS_TRIPLE}-cpp \
CXX=${CROSS_BIN}/${CROSS_TRIPLE}-g++ \
LD=${CROSS_BIN}/${CROSS_TRIPLE}-ld \
RANLIB=${CROSS_BIN}/${CROSS_TRIPLE}-ranlib \
STRIP=${CROSS_BIN}/${CROSS_TRIPLE}-strip
# binutils
ENV WIDL=${CROSS_BIN}/${CROSS_TRIPLE}-widl \
WINDMC=${CROSS_BIN}/${CROSS_TRIPLE}-windmc \
WINDRES=${CROSS_BIN}/${CROSS_TRIPLE}-windres
# Openssl fails tests when `async` is enabled for i686 b/c we're using
# a really old version of mingw (2014) that does not include this patch
# https://sourceforge.net/p/mingw-w64/mailman/message/34403784/
RUN cd /usr/i686-w64-mingw32/include && \
sed -i "s|__CRT_INLINE struct _TEB *NtCurrentTeb(void)|FORCEINLINE struct _TEB *NtCurrentTeb(void)|" "winnt.h" && \
sed -i "s|__CRT_INLINE PVOID GetCurrentFiber(void)|FORCEINLINE PVOID GetCurrentFiber(void)|" "winnt.h" && \
sed -i "s|__CRT_INLINE PVOID GetFiberData(void)|FORCEINLINE PVOID GetFiberData(void)|" "winnt.h"