mirror of
https://github.com/bensuperpc/dockcross.git
synced 2025-06-18 00:49:25 +02:00
Compare commits
40 Commits
add_linux-
...
emscripten
Author | SHA1 | Date | |
---|---|---|---|
69efc9161e | |||
2c170310cb | |||
04090c683a | |||
6f3a3aad49 | |||
f096312a46 | |||
94b0730c49 | |||
bca37cd589 | |||
79e99402c2 | |||
16b60946a0 | |||
0aa303003f | |||
310496590c | |||
da9b0a0afd | |||
c2b200951d | |||
ed2c1eb321 | |||
4dcd7eeec1 | |||
3559ec8f5c | |||
fceb7a8a6b | |||
b41256cc2f | |||
ea4d106ed8 | |||
9098b1a478 | |||
cb7421fc79 | |||
77e7761286 | |||
9f3cbd5a17 | |||
e607d1252b | |||
b50710ea8f | |||
e1a1191559 | |||
7cd0ce9f5d | |||
ed5ecc293e | |||
6d00aa95f5 | |||
c06be541ac | |||
0f9beb211c | |||
b3b207e65a | |||
958baab724 | |||
94ca571f67 | |||
b922daff52 | |||
5322eac0bf | |||
259afe733b | |||
47215f71ba | |||
5d97dc31aa | |||
139f0833e6 |
8
.github/workflows/main.yml
vendored
8
.github/workflows/main.yml
vendored
@ -383,8 +383,8 @@ jobs:
|
||||
stockfish_arg: "ARCH=x86-64-modern",
|
||||
ninja: "yes",
|
||||
ninja_arg: "",
|
||||
openssl: "no",
|
||||
openssl_arg: "linux-generic64 no-asm no-threads no-engine no-hw no-weak-ssl-ciphers no-dtls no-shared no-dso",
|
||||
openssl: "yes",
|
||||
openssl_arg: "linux-generic64 no-tests no-asm no-hw no-dtls no-shared no-dso",
|
||||
C: "no",
|
||||
C_arg: "",
|
||||
C-Plus-Plus: "yes",
|
||||
@ -400,7 +400,7 @@ jobs:
|
||||
stockfish_arg: "ARCH=x86-64-modern COMP=clang",
|
||||
ninja: "yes",
|
||||
ninja_arg: "",
|
||||
openssl: "no",
|
||||
openssl: "yes",
|
||||
openssl_arg: "linux-x86_64-clang",
|
||||
C: "yes",
|
||||
C_arg: "",
|
||||
@ -408,7 +408,7 @@ jobs:
|
||||
C-Plus-Plus_arg: "",
|
||||
fmt: "yes",
|
||||
fmt_arg: "",
|
||||
cpython: "no",
|
||||
cpython: "yes",
|
||||
cpython_arg: "",
|
||||
}
|
||||
- {
|
||||
|
3
.gitignore
vendored
3
.gitignore
vendored
@ -1,5 +1,8 @@
|
||||
bin
|
||||
dockcross
|
||||
dockcross-*
|
||||
build
|
||||
build-*
|
||||
*/test/
|
||||
Dockerfile
|
||||
web-wasm/Dockerfile
|
||||
|
4
Makefile
4
Makefile
@ -44,7 +44,8 @@ NON_STANDARD_IMAGES = manylinux2014-x64 manylinux2014-x86 \
|
||||
|
||||
# Docker composite files
|
||||
DOCKER_COMPOSITE_SOURCES = common.docker common.debian common.manylinux common.buildroot \
|
||||
common.crosstool common.windows common-manylinux.crosstool common.dockcross common.label-and-env
|
||||
common.crosstool common.webassembly common.windows common-manylinux.crosstool common.dockcross \
|
||||
common.label-and-env
|
||||
DOCKER_COMPOSITE_FOLDER_PATH = common/
|
||||
DOCKER_COMPOSITE_PATH = $(addprefix $(DOCKER_COMPOSITE_FOLDER_PATH),$(DOCKER_COMPOSITE_SOURCES))
|
||||
|
||||
@ -98,6 +99,7 @@ $(GEN_IMAGE_DOCKERFILES) Dockerfile: %Dockerfile: %Dockerfile.in $(DOCKER_COMPOS
|
||||
-e '/common.crosstool/ r $(DOCKER_COMPOSITE_FOLDER_PATH)common.crosstool' \
|
||||
-e '/common.buildroot/ r $(DOCKER_COMPOSITE_FOLDER_PATH)common.buildroot' \
|
||||
-e '/common-manylinux.crosstool/ r $(DOCKER_COMPOSITE_FOLDER_PATH)common-manylinux.crosstool' \
|
||||
-e '/common.webassembly/ r $(DOCKER_COMPOSITE_FOLDER_PATH)common.webassembly' \
|
||||
-e '/common.windows/ r $(DOCKER_COMPOSITE_FOLDER_PATH)common.windows' \
|
||||
-e '/common.dockcross/ r $(DOCKER_COMPOSITE_FOLDER_PATH)common.dockcross' \
|
||||
-e '/common.label-and-env/ r $(DOCKER_COMPOSITE_FOLDER_PATH)common.label-and-env' \
|
||||
|
25
README.md
25
README.md
@ -56,7 +56,8 @@ Only 64-bit x86_64 images are provided, a 64-bit x86_64 host system is required.
|
||||
For the impatient, here\'s how to compile a hello world for armv7:
|
||||
|
||||
```bash
|
||||
cd ~/src/dockcross
|
||||
git clone https://github.com/dockcross/dockcross.git
|
||||
cd dockcross
|
||||
docker run --rm dockcross/linux-armv7 > ./dockcross-linux-armv7
|
||||
chmod +x ./dockcross-linux-armv7
|
||||
./dockcross-linux-armv7 bash -c '$CC test/C/hello.c -o hello_arm'
|
||||
@ -117,6 +118,17 @@ The dockcross script will execute the given command-line inside the container, a
|
||||
| dockcross/windows-armv7 | ARMv7 | Clang | Windows |
|
||||
| dockcross/windows-arm64 | ARMv8 | Clang | Windows |
|
||||
|
||||
The list of docker images that are **no longer maintained**.
|
||||
|
||||
| Image name | Target arch | Compiler | Target OS |
|
||||
|:-------:|:--------:|:------:|:-----:|
|
||||
| dockcross/manylinux1-x86 | x86 | GCC | manylinux |
|
||||
| dockcross/manylinux1-x64 | x86_64 | GCC| manylinux |
|
||||
| dockcross/manylinux2010-x86 | x86 | GCC | manylinux |
|
||||
| dockcross/manylinux2010-x64 | x86_64 | GCC | manylinux |
|
||||
| dockcross/linux-mipsel | mipsel | GCC 4.9 | Debian 8 |
|
||||
|
||||
|
||||
## Cross compilers
|
||||
|
||||
### dockcross/base
|
||||
@ -381,17 +393,6 @@ ARMv7 32-bit Windows cross-compiler based on [LLVM/MinGW-w64](https://github.com
|
||||
|
||||
ARMv8 64-bit Windows cross-compiler based on [llvm-mingw](https://github.com/mstorsjo/llvm-mingw)
|
||||
|
||||
## Summary legacy cross compilers
|
||||
|
||||
The list of docker images that are no longer supported or broken
|
||||
|
||||
| Image name | Target arch | Compiler | Target OS |
|
||||
|:-------:|:--------:|:------:|:-----:|
|
||||
| dockcross/manylinux1-x86 | x86 | GCC | manylinux |
|
||||
| dockcross/manylinux1-x64 | x86_64 | GCC| manylinux |
|
||||
| dockcross/manylinux2010-x86 | x86 | GCC | manylinux |
|
||||
| dockcross/manylinux2010-x64 | x86_64 | GCC | manylinux |
|
||||
|
||||
## Articles
|
||||
|
||||
- [dockcross: C++ Write Once, Run
|
||||
|
@ -18,6 +18,7 @@ RUN \
|
||||
gettext \
|
||||
gzip \
|
||||
gnupg \
|
||||
osslsigncode \
|
||||
initramfs-tools \
|
||||
libncurses5 \
|
||||
libtool \
|
||||
@ -25,7 +26,7 @@ RUN \
|
||||
ncurses-dev \
|
||||
pkg-config \
|
||||
pax \
|
||||
python3 \
|
||||
python3-dev \
|
||||
python3-pip \
|
||||
rsync \
|
||||
sed \
|
||||
|
68
common/common.webassembly
Normal file
68
common/common.webassembly
Normal file
@ -0,0 +1,68 @@
|
||||
# common.webassembly
|
||||
#
|
||||
# Common WebAssembly tools.
|
||||
|
||||
# main 2021-12-31
|
||||
ENV BINARYEN_GIT_TAG 6137b338c7fb37ba98b63c31225ec9cfda8cfa59
|
||||
RUN git clone https://github.com/WebAssembly/binaryen.git && \
|
||||
cd binaryen && \
|
||||
git checkout ${BINARYEN_GIT_TAG} && \
|
||||
cd ../ && \
|
||||
mkdir binaryen-build && \
|
||||
cd binaryen-build && \
|
||||
/usr/bin/cmake \
|
||||
-DCMAKE_C_COMPILER=/usr/bin/cc \
|
||||
-DCMAKE_CXX_COMPILER=/usr/bin/c++ \
|
||||
-G Ninja \
|
||||
-DCMAKE_INSTALL_PREFIX:PATH=/usr \
|
||||
-DCMAKE_TOOLCHAIN_FILE="" \
|
||||
../binaryen && \
|
||||
ninja && \
|
||||
ninja install && \
|
||||
cd ../ && \
|
||||
rm -rf binaryen*
|
||||
|
||||
# main 2021-12-31
|
||||
ENV WABT_GIT_TAG a4366956e877c404d328358b2c00320b476763c0
|
||||
RUN git clone --recurse-submodules https://github.com/WebAssembly/wabt.git && \
|
||||
cd wabt && \
|
||||
git checkout ${WABT_GIT_TAG} && \
|
||||
cd ../ && \
|
||||
mkdir wabt-build && \
|
||||
cd wabt-build && \
|
||||
/usr/bin/cmake \
|
||||
-DCMAKE_C_COMPILER=/usr/bin/cc \
|
||||
-DCMAKE_CXX_COMPILER=/usr/bin/c++ \
|
||||
-G Ninja \
|
||||
-DCMAKE_INSTALL_PREFIX:PATH=/usr \
|
||||
-DCMAKE_TOOLCHAIN_FILE="" \
|
||||
../wabt && \
|
||||
ninja && \
|
||||
ninja install && \
|
||||
cd ../ && \
|
||||
rm -rf wabt*
|
||||
|
||||
RUN mkdir /wasi-runtimes
|
||||
|
||||
ENV WASMTIME_HOME /wasi-runtimes/wasmtime
|
||||
RUN mkdir ${WASMTIME_HOME} && curl https://wasmtime.dev/install.sh -sSf | bash
|
||||
COPY imagefiles/wasmtime-pwd.sh ${WASMTIME_HOME}/bin/
|
||||
ENV PATH "$WASMTIME_HOME/bin:$PATH"
|
||||
|
||||
ENV WASMER_DIR /wasi-runtimes/wasmer
|
||||
RUN curl https://get.wasmer.io -sSfL | sh
|
||||
COPY imagefiles/wasmer-pwd.sh ${WASMER_DIR}/bin/
|
||||
ENV PATH "$WASMER_DIR/bin:$PATH"
|
||||
|
||||
ENV WASM3_VERSION 0.5.0
|
||||
RUN mkdir -p /wasi-runtimes/wasm3/bin && \
|
||||
curl -LO https://github.com/wasm3/wasm3/releases/download/v${WASM3_VERSION}/wasm3-linux-x64.elf && \
|
||||
mv wasm3-linux-x64.elf /wasi-runtimes/wasm3/bin/wasm3 && \
|
||||
chmod +x /wasi-runtimes/wasm3/bin/wasm3
|
||||
ENV PATH "/wasi-runtimes/wasm3/bin:$PATH"
|
||||
|
||||
ENV WAVM_VERSION 2021-12-15
|
||||
RUN mkdir -p /wasi-runtimes/wavm/ && \
|
||||
curl -LO https://github.com/WAVM/WAVM/releases/download/nightly%2F${WAVM_VERSION}/wavm-0.0.0-prerelease-linux.tar.gz && \
|
||||
tar -xv -C /wasi-runtimes/wavm/ -f wavm-0.0.0-prerelease-linux.tar.gz
|
||||
ENV PATH "/wasi-runtimes/wavm/bin:$PATH"
|
@ -15,8 +15,8 @@
|
||||
# ARG MXE_TARGET_LINK=shared
|
||||
#
|
||||
|
||||
# mxe master 2021-08-04
|
||||
ARG MXE_GIT_TAG=91e21fc4bc0775790b0a7cc3f7da4aef89637a0f
|
||||
# mxe master 2021-10-18
|
||||
ARG MXE_GIT_TAG=8838ac3938cd8e47424a4cb5d3676d1ae9a4d670
|
||||
|
||||
ENV CMAKE_TOOLCHAIN_FILE /usr/src/mxe/usr/${MXE_TARGET_ARCH}-w64-mingw32.${MXE_TARGET_LINK}${MXE_TARGET_THREAD}/share/cmake/mxe-conf.cmake
|
||||
|
||||
@ -56,6 +56,7 @@ RUN \
|
||||
make \
|
||||
nsis \
|
||||
openssl \
|
||||
osslsigncode \
|
||||
p7zip-full \
|
||||
patch \
|
||||
perl \
|
||||
|
@ -16,7 +16,7 @@ gosu nobody true
|
||||
# is created in /usr/local/bin
|
||||
|
||||
cat << EOF >> /usr/local/bin/sudo
|
||||
#!/bin/sh
|
||||
#!/bin/bash
|
||||
# Emulate the sudo command
|
||||
SUDO_USER=root
|
||||
SUDO_GROUP=root
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Mount the PWD to enable access in try_run commands
|
||||
exec /usr/local/wasmer/bin/wasmer run --dir=. --dir=$PWD "$@"
|
||||
exec ${WASMER_DIR}/bin/wasmer run --dir=. --dir=$PWD "$@"
|
4
imagefiles/wasmtime-pwd.sh
Executable file
4
imagefiles/wasmtime-pwd.sh
Executable file
@ -0,0 +1,4 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Mount the PWD to enable access in try_run commands
|
||||
exec ${WASMTIME_HOME}/bin/wasmtime run --dir=. --dir=$PWD "$@"
|
@ -11,8 +11,8 @@ RUN echo "deb http://apt.llvm.org/bullseye/ llvm-toolchain-bullseye main" >> /et
|
||||
&& echo "deb-src http://apt.llvm.org/bullseye/ llvm-toolchain-bullseye-${CLANG_VERSION} main" >> /etc/apt/sources.list \
|
||||
&& wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - \
|
||||
&& apt-get update \
|
||||
&& apt-get purge --autoremove -y gcc g++ software-properties-common \
|
||||
&& apt-get -y install clang-${CLANG_VERSION} libc++-${CLANG_VERSION}-dev libc++abi-${CLANG_VERSION}-dev clang-format-${CLANG_VERSION} clang-tidy-${CLANG_VERSION} lldb-${CLANG_VERSION} \
|
||||
&& apt-get -y install clang-${CLANG_VERSION} libc++-${CLANG_VERSION}-dev libc++abi-${CLANG_VERSION}-dev clang-format-${CLANG_VERSION} clang-tidy-${CLANG_VERSION} lldb-${CLANG_VERSION} liblld-${CLANG_VERSION}-dev \
|
||||
&& apt-get -y install libomp-${CLANG_VERSION}-dev clang-tools-${CLANG_VERSION} clangd-${CLANG_VERSION} libclang-${CLANG_VERSION}-dev libclang-common-${CLANG_VERSION}-dev llvm-${CLANG_VERSION}-dev \
|
||||
&& apt-get clean --yes \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& update-alternatives --install /usr/bin/cc cc /usr/bin/clang-${CLANG_VERSION} 90 \
|
||||
@ -20,20 +20,20 @@ RUN echo "deb http://apt.llvm.org/bullseye/ llvm-toolchain-bullseye main" >> /et
|
||||
&& update-alternatives --install /usr/bin/cpp cpp /usr/bin/clang++-${CLANG_VERSION} 90 \
|
||||
&& update-alternatives --install /usr/bin/clang clang /usr/bin/clang-${CLANG_VERSION} 90 \
|
||||
&& update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-${CLANG_VERSION} 90 \
|
||||
&& update-alternatives --install /usr/bin/lld lld /usr/bin/lld-${CLANG_VERSION} 90 \
|
||||
&& cc --version \
|
||||
&& c++ --version \
|
||||
&& cpp --version
|
||||
|
||||
ENV CROSS_TRIPLE x86_64-linux-gnu
|
||||
ENV CROSS_ROOT /usr/bin
|
||||
ENV CC=/usr/bin/clang \
|
||||
CPP=/usr/bin/cpp \
|
||||
CXX=/usr/bin/clang++ \
|
||||
LD=/usr/bin/lld \
|
||||
FC=/usr/bin/flang
|
||||
|
||||
# AS=/usr/bin/${CROSS_TRIPLE}-as
|
||||
# AR=/usr/bin/${CROSS_TRIPLE}-ar
|
||||
ENV CC=/usr/bin/clang-${CLANG_VERSION} \
|
||||
CPP=/usr/bin/clang-cpp-${CLANG_VERSION} \
|
||||
CXX=/usr/bin/clang++-${CLANG_VERSION} \
|
||||
LD=/usr/bin/lld-${CLANG_VERSION} \
|
||||
AS=/usr/bin/llvm-as-${CLANG_VERSION} \
|
||||
AR=/usr/bin/llvm-ar-${CLANG_VERSION}
|
||||
# FC=/usr/bin/flang
|
||||
|
||||
COPY ${CROSS_TRIPLE}-noop.sh /usr/bin/${CROSS_TRIPLE}-noop
|
||||
|
||||
|
@ -7,6 +7,11 @@ LABEL maintainer="Matt McCormick matt.mccormick@kitware.com"
|
||||
ARG REPO_URL=https://repo.or.cz/tinycc.git
|
||||
ENV REPO_URL=${REPO_URL}
|
||||
|
||||
RUN apt-get update && \
|
||||
apt-get -y install \
|
||||
libtbb-dev \
|
||||
&& apt-get clean --yes
|
||||
|
||||
# Disable options: --with-libgcc --disable-static
|
||||
RUN git clone --recurse-submodules --remote-submodules ${REPO_URL} \
|
||||
&& cd tinycc \
|
||||
|
@ -6,6 +6,7 @@ RUN apt-get update && \
|
||||
apt-get -y install \
|
||||
libelf-dev \
|
||||
libssl-dev \
|
||||
libtbb-dev \
|
||||
&& apt-get clean --yes
|
||||
|
||||
ENV CROSS_TRIPLE x86_64-linux-gnu
|
||||
|
@ -7,6 +7,7 @@ RUN dpkg --add-architecture i386 && \
|
||||
gcc-multilib \
|
||||
g++-multilib \
|
||||
libc6:i386 \
|
||||
libtbb-dev:i386 \
|
||||
libstdc++6:i386 \
|
||||
libbz2-dev:i386 \
|
||||
libexpat1-dev:i386 \
|
||||
|
@ -2,12 +2,7 @@ FROM dockcross/base:latest
|
||||
|
||||
LABEL maintainer="Matt McCormick matt.mccormick@kitware.com"
|
||||
|
||||
# The cross-compiling emulator
|
||||
ENV WASMER_DIR /usr/local/wasmer
|
||||
RUN curl https://get.wasmer.io -sSfL | sh
|
||||
ENV PATH /usr/local/wasmer/bin:${PATH}
|
||||
|
||||
ENV WASI_VERSION 12
|
||||
ENV WASI_VERSION 14
|
||||
ENV WASI_VERSION_FULL ${WASI_VERSION}.0
|
||||
RUN cd /usr/ && \
|
||||
curl -L -O https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_VERSION}/wasi-sdk-${WASI_VERSION_FULL}-linux.tar.gz && \
|
||||
@ -16,7 +11,7 @@ RUN cd /usr/ && \
|
||||
ENV WASI_SDK_PATH /usr/wasi-sdk-${WASI_VERSION_FULL}
|
||||
ENV WASI_SYSROOT ${WASI_SDK_PATH}/share/wasi-sysroot
|
||||
|
||||
COPY clang-wasi-sysroot.sh clang++-wasi-sysroot.sh wasmer-pwd.sh /usr/local/bin/
|
||||
COPY clang-wasi-sysroot.sh clang++-wasi-sysroot.sh /usr/local/bin/
|
||||
|
||||
ENV CROSS_TRIPLE=wasm32-wasi
|
||||
ENV CROSS_ROOT=${WASI_SDK_PATH}
|
||||
@ -26,6 +21,8 @@ ENV AR=${CROSS_ROOT}/bin/llvm-ar \
|
||||
CXX=clang++-wasi-sysroot.sh \
|
||||
LD=${CROSS_ROOT}/bin/wasm-ld
|
||||
|
||||
#include "common.webassembly"
|
||||
|
||||
COPY WASI.cmake /usr/src/
|
||||
RUN mv /usr/src/WASI.cmake /usr/share/cmake-*/Modules/Platform/
|
||||
COPY Toolchain.cmake ${CROSS_ROOT}/
|
||||
|
@ -7,4 +7,4 @@ set(CMAKE_SYSROOT $ENV{WASI_SYSROOT})
|
||||
set(CMAKE_C_COMPILER /usr/local/bin/clang-wasi-sysroot.sh)
|
||||
set(CMAKE_CXX_COMPILER /usr/local/bin/clang++-wasi-sysroot.sh)
|
||||
|
||||
set(CMAKE_CROSSCOMPILING_EMULATOR /usr/local/bin/wasmer-pwd.sh)
|
||||
set(CMAKE_CROSSCOMPILING_EMULATOR /usr/local/bin/wasmtime-pwd.sh)
|
||||
|
@ -1,4 +1,4 @@
|
||||
FROM emscripten/emsdk:2.0.31
|
||||
FROM emscripten/emsdk:3.1.0
|
||||
|
||||
LABEL maintainer="Matt McCormick matt.mccormick@kitware.com"
|
||||
|
||||
@ -33,6 +33,7 @@ RUN \
|
||||
libtool \
|
||||
python3 \
|
||||
python3-pip \
|
||||
osslsigncode \
|
||||
rsync \
|
||||
sed \
|
||||
ssh \
|
||||
@ -53,7 +54,9 @@ RUN ln -s /usr/bin/python3 /usr/bin/python
|
||||
|
||||
#include "common.docker"
|
||||
|
||||
ENV EMSCRIPTEN_VERSION 2.0.31
|
||||
#include "common.webassembly"
|
||||
|
||||
ENV EMSCRIPTEN_VERSION 3.1.0
|
||||
|
||||
ENV PATH /emsdk:/emsdk/upstream/bin/:/emsdk/upstream/emscripten:${PATH}
|
||||
ENV CC=/emsdk/upstream/emscripten/emcc \
|
||||
|
Reference in New Issue
Block a user