mirror of
https://github.com/bensuperpc/dockcross.git
synced 2025-03-13 01:30:05 +01:00
commit
fbb53a3786
@ -11,4 +11,4 @@ LABEL org.label-schema.build-date=$BUILD_DATE \
|
|||||||
org.label-schema.vcs-url=$VCS_URL \
|
org.label-schema.vcs-url=$VCS_URL \
|
||||||
org.label-schema.schema-version="1.0"
|
org.label-schema.schema-version="1.0"
|
||||||
|
|
||||||
ENV DEFAULT_DOCKCROSS_IMAGE ${IMAGE}:${VERSION}
|
ENV DEFAULT_DOCKCROSS_IMAGE=${IMAGE}:${VERSION}
|
||||||
|
@ -2,8 +2,8 @@
|
|||||||
#
|
#
|
||||||
# Common WebAssembly tools.
|
# Common WebAssembly tools.
|
||||||
|
|
||||||
# main 2024-04-02
|
# 2024-12, version 121
|
||||||
ENV BINARYEN_GIT_TAG 4e2ebbd6de6f99e5972654b3f50ddbc1c6839a73
|
ENV BINARYEN_GIT_TAG=353b759b230dff8fb82aeb157aeb6db360d74a49
|
||||||
RUN git clone --recursive https://github.com/WebAssembly/binaryen.git && \
|
RUN git clone --recursive https://github.com/WebAssembly/binaryen.git && \
|
||||||
cd binaryen && \
|
cd binaryen && \
|
||||||
git checkout ${BINARYEN_GIT_TAG} && \
|
git checkout ${BINARYEN_GIT_TAG} && \
|
||||||
@ -14,6 +14,7 @@ RUN git clone --recursive https://github.com/WebAssembly/binaryen.git && \
|
|||||||
-DCMAKE_C_COMPILER=/usr/bin/cc \
|
-DCMAKE_C_COMPILER=/usr/bin/cc \
|
||||||
-DCMAKE_CXX_COMPILER=/usr/bin/c++ \
|
-DCMAKE_CXX_COMPILER=/usr/bin/c++ \
|
||||||
-G Ninja \
|
-G Ninja \
|
||||||
|
-DENABLE_WERROR:BOOL=OFF \
|
||||||
-DCMAKE_INSTALL_PREFIX:PATH=/usr \
|
-DCMAKE_INSTALL_PREFIX:PATH=/usr \
|
||||||
-DCMAKE_TOOLCHAIN_FILE="" \
|
-DCMAKE_TOOLCHAIN_FILE="" \
|
||||||
../binaryen && \
|
../binaryen && \
|
||||||
@ -22,8 +23,8 @@ RUN git clone --recursive https://github.com/WebAssembly/binaryen.git && \
|
|||||||
cd ../ && \
|
cd ../ && \
|
||||||
rm -rf binaryen*
|
rm -rf binaryen*
|
||||||
|
|
||||||
# main 2024-04-02
|
# main 2024-12-23
|
||||||
ENV WABT_GIT_TAG 356931a867c7d642bc282fff46a1c95ab0e843f3
|
ENV WABT_GIT_TAG=ea193b40d6d4a1a697d68ae855b2b3b3e263b377
|
||||||
RUN git clone --recurse-submodules https://github.com/WebAssembly/wabt.git && \
|
RUN git clone --recurse-submodules https://github.com/WebAssembly/wabt.git && \
|
||||||
cd wabt && \
|
cd wabt && \
|
||||||
git checkout ${WABT_GIT_TAG} && \
|
git checkout ${WABT_GIT_TAG} && \
|
||||||
@ -44,11 +45,11 @@ RUN git clone --recurse-submodules https://github.com/WebAssembly/wabt.git && \
|
|||||||
|
|
||||||
RUN mkdir /wasi-runtimes
|
RUN mkdir /wasi-runtimes
|
||||||
|
|
||||||
ENV WASMTIME_HOME /wasi-runtimes/wasmtime
|
ENV WASMTIME_HOME=/wasi-runtimes/wasmtime
|
||||||
RUN mkdir ${WASMTIME_HOME} && curl https://wasmtime.dev/install.sh -sSf | bash
|
RUN mkdir ${WASMTIME_HOME} && curl https://wasmtime.dev/install.sh -sSf | bash
|
||||||
COPY imagefiles/wasmtime-pwd.sh ${WASMTIME_HOME}/bin/
|
COPY imagefiles/wasmtime-pwd.sh ${WASMTIME_HOME}/bin/
|
||||||
COPY imagefiles/wasmtime-pwd-threads.sh ${WASMTIME_HOME}/bin/
|
COPY imagefiles/wasmtime-pwd-threads.sh ${WASMTIME_HOME}/bin/
|
||||||
ENV PATH "$WASMTIME_HOME/bin:$PATH"
|
ENV PATH="$WASMTIME_HOME/bin:$PATH"
|
||||||
|
|
||||||
# For wasmer
|
# For wasmer
|
||||||
RUN \
|
RUN \
|
||||||
@ -56,20 +57,20 @@ RUN \
|
|||||||
apt-get install --no-install-recommends --yes \
|
apt-get install --no-install-recommends --yes \
|
||||||
libxkbcommon0
|
libxkbcommon0
|
||||||
|
|
||||||
ENV WASMER_DIR /wasi-runtimes/wasmer
|
ENV WASMER_DIR=/wasi-runtimes/wasmer
|
||||||
RUN curl https://get.wasmer.io -sSfL | sh
|
RUN curl https://get.wasmer.io -sSfL | sh
|
||||||
COPY imagefiles/wasmer-pwd.sh ${WASMER_DIR}/bin/
|
COPY imagefiles/wasmer-pwd.sh ${WASMER_DIR}/bin/
|
||||||
ENV PATH "$WASMER_DIR/bin:$PATH"
|
ENV PATH="$WASMER_DIR/bin:$PATH"
|
||||||
|
|
||||||
ENV WASM3_VERSION 0.5.0
|
ENV WASM3_VERSION=0.5.0
|
||||||
RUN mkdir -p /wasi-runtimes/wasm3/bin && \
|
RUN mkdir -p /wasi-runtimes/wasm3/bin && \
|
||||||
curl -LO https://github.com/wasm3/wasm3/releases/download/v${WASM3_VERSION}/wasm3-linux-x64.elf && \
|
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 && \
|
mv wasm3-linux-x64.elf /wasi-runtimes/wasm3/bin/wasm3 && \
|
||||||
chmod +x /wasi-runtimes/wasm3/bin/wasm3
|
chmod +x /wasi-runtimes/wasm3/bin/wasm3
|
||||||
ENV PATH "/wasi-runtimes/wasm3/bin:$PATH"
|
ENV PATH="/wasi-runtimes/wasm3/bin:$PATH"
|
||||||
|
|
||||||
ENV WAVM_VERSION 2022-05-14
|
ENV WAVM_VERSION=2022-05-14
|
||||||
RUN mkdir -p /wasi-runtimes/wavm/ && \
|
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 && \
|
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
|
tar -xv -C /wasi-runtimes/wavm/ -f wavm-0.0.0-prerelease-linux.tar.gz
|
||||||
ENV PATH "/wasi-runtimes/wavm/bin:$PATH"
|
ENV PATH="/wasi-runtimes/wavm/bin:$PATH"
|
||||||
|
@ -6,12 +6,5 @@ set(CMAKE_SYSROOT $ENV{WASI_SYSROOT})
|
|||||||
|
|
||||||
set(CMAKE_C_COMPILER /usr/local/bin/clang-wasi-sysroot.sh)
|
set(CMAKE_C_COMPILER /usr/local/bin/clang-wasi-sysroot.sh)
|
||||||
set(CMAKE_CXX_COMPILER /usr/local/bin/clang++-wasi-sysroot.sh)
|
set(CMAKE_CXX_COMPILER /usr/local/bin/clang++-wasi-sysroot.sh)
|
||||||
set(CMAKE_AR llvm-ar-$ENV{LLVM_VERSION})
|
|
||||||
set(CMAKE_RANLIB llvm-ranlib-$ENV{LLVM_VERSION})
|
|
||||||
set(CMAKE_ASM_COMPILER clang-$ENV{LLVM_VERSION})
|
|
||||||
|
|
||||||
set(CMAKE_C_COMPILER_TARGET $ENV{CROSS_TRIPLE})
|
|
||||||
set(CMAKE_CXX_COMPILER_TARGET $ENV{CROSS_TRIPLE})
|
|
||||||
set(CMAKE_ASM_COMPILER_TARGET $ENV{CROSS_TRIPLE})
|
|
||||||
|
|
||||||
set(CMAKE_CROSSCOMPILING_EMULATOR /wasi-runtimes/wasmtime/bin/wasmtime-pwd-threads.sh)
|
set(CMAKE_CROSSCOMPILING_EMULATOR /wasi-runtimes/wasmtime/bin/wasmtime-pwd-threads.sh)
|
||||||
|
@ -3,44 +3,25 @@ FROM ${ORG}/base:latest
|
|||||||
|
|
||||||
LABEL maintainer="Matt McCormick matt@mmmccormick.com"
|
LABEL maintainer="Matt McCormick matt@mmmccormick.com"
|
||||||
|
|
||||||
ENV LLVM_VERSION 18
|
ENV LLVM_VERSION=19
|
||||||
|
ENV WASI_VERSION=25
|
||||||
|
ENV WASI_VERSION_FULL=${WASI_VERSION}.0
|
||||||
|
|
||||||
# Build LLVM / Clang that supports our glibc
|
COPY download-install-wasi-sdk.sh /usr/local/bin/
|
||||||
RUN apt-get update && \
|
RUN /usr/local/bin/download-install-wasi-sdk.sh
|
||||||
# Temporarily install to setup apt repositories
|
|
||||||
apt-get install -y && \
|
|
||||||
\
|
|
||||||
curl -sS https://apt.llvm.org/llvm-snapshot.gpg.key | gpg --dearmor > /etc/apt/trusted.gpg.d/llvm.gpg && \
|
|
||||||
echo "deb [signed-by=/etc/apt/trusted.gpg.d/llvm.gpg] http://apt.llvm.org/bookworm/ llvm-toolchain-bookworm-${LLVM_VERSION} main" >> /etc/apt/sources.list.d/llvm.list && \
|
|
||||||
echo "deb-src [signed-by=/etc/apt/trusted.gpg.d/llvm.gpg] http://apt.llvm.org/bookworm/ llvm-toolchain-bookworm-${LLVM_VERSION} main" >> /etc/apt/sources.list.d/llvm.list && \
|
|
||||||
\
|
|
||||||
apt-get update && \
|
|
||||||
apt-get install -y clang-${LLVM_VERSION} lld-${LLVM_VERSION} && \
|
|
||||||
rm -rf /var/lib/apt/lists/*
|
|
||||||
|
|
||||||
ENV WASI_VERSION 22
|
ENV WASI_SYSROOT=/opt/wasi-sdk/share/wasi-sysroot
|
||||||
ENV WASI_VERSION_FULL ${WASI_VERSION}.0
|
ENV WASI_SDK_PATH=/opt/wasi-sdk
|
||||||
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 && \
|
|
||||||
tar xvzf wasi-sdk-${WASI_VERSION_FULL}-linux.tar.gz && \
|
|
||||||
rm wasi-sdk-${WASI_VERSION_FULL}-linux.tar.gz
|
|
||||||
RUN cd /usr/ && \
|
|
||||||
curl -L -O https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_VERSION}/libclang_rt.builtins-wasm32-wasi-${WASI_VERSION_FULL}.tar.gz && \
|
|
||||||
tar xvzf libclang_rt.builtins-wasm32-wasi-${WASI_VERSION_FULL}.tar.gz && \
|
|
||||||
rm libclang_rt.builtins-wasm32-wasi-${WASI_VERSION_FULL}.tar.gz && \
|
|
||||||
cp -r lib/wasi /usr/lib/llvm-${LLVM_VERSION}/lib/clang/${LLVM_VERSION}/lib/
|
|
||||||
ENV WASI_SYSROOT /usr/wasi-sdk-${WASI_VERSION_FULL}/share/wasi-sysroot
|
|
||||||
ENV WASI_SDK_PATH /usr/wasi-sdk-${WASI_VERSION_FULL}
|
|
||||||
|
|
||||||
COPY clang-wasi-sysroot.sh clang++-wasi-sysroot.sh /usr/local/bin/
|
COPY clang-wasi-sysroot.sh clang++-wasi-sysroot.sh /usr/local/bin/
|
||||||
|
|
||||||
ENV CROSS_TRIPLE=wasm32-wasi
|
ENV CROSS_TRIPLE=wasm32-wasi
|
||||||
ENV CROSS_ROOT=${WASI_SDK_PATH}
|
ENV CROSS_ROOT=${WASI_SDK_PATH}
|
||||||
ENV AR=llvm-ar-${LLVM_VERSION} \
|
ENV AR=${WASI_SDK_PATH}/bin/llvm-ar \
|
||||||
CC=clang-wasi-sysroot.sh \
|
CC=clang-wasi-sysroot.sh \
|
||||||
CXX=clang++-wasi-sysroot.sh \
|
CXX=clang++-wasi-sysroot.sh \
|
||||||
LD=wasm-ld-${LLVM_VERSION} \
|
LD=${WASI_SDK_PATH}/bin/wasm-ld \
|
||||||
RANLIB=llvm-ranlib-${LLVM_VERSION}
|
RANLIB=${WASI_SDK_PATH}/bin/llvm-ranlib
|
||||||
|
|
||||||
#include "common.webassembly"
|
#include "common.webassembly"
|
||||||
|
|
||||||
@ -51,6 +32,6 @@ RUN mv /usr/src/*.cmake /usr/share/cmake-*/Modules/
|
|||||||
COPY CheckTypeSize.c.in /usr/src/
|
COPY CheckTypeSize.c.in /usr/src/
|
||||||
RUN mv /usr/src/CheckTypeSize.c.in /usr/share/cmake-*/Modules/
|
RUN mv /usr/src/CheckTypeSize.c.in /usr/share/cmake-*/Modules/
|
||||||
COPY Toolchain.cmake ${CROSS_ROOT}/
|
COPY Toolchain.cmake ${CROSS_ROOT}/
|
||||||
ENV CMAKE_TOOLCHAIN_FILE ${CROSS_ROOT}/Toolchain.cmake
|
ENV CMAKE_TOOLCHAIN_FILE=${CROSS_ROOT}/Toolchain.cmake
|
||||||
|
|
||||||
#include "common.label-and-env"
|
#include "common.label-and-env"
|
||||||
|
@ -6,12 +6,5 @@ set(CMAKE_SYSROOT $ENV{WASI_SYSROOT})
|
|||||||
|
|
||||||
set(CMAKE_C_COMPILER /usr/local/bin/clang-wasi-sysroot.sh)
|
set(CMAKE_C_COMPILER /usr/local/bin/clang-wasi-sysroot.sh)
|
||||||
set(CMAKE_CXX_COMPILER /usr/local/bin/clang++-wasi-sysroot.sh)
|
set(CMAKE_CXX_COMPILER /usr/local/bin/clang++-wasi-sysroot.sh)
|
||||||
set(CMAKE_AR llvm-ar-$ENV{LLVM_VERSION})
|
|
||||||
set(CMAKE_RANLIB llvm-ranlib-$ENV{LLVM_VERSION})
|
|
||||||
set(CMAKE_ASM_COMPILER clang-$ENV{LLVM_VERSION})
|
|
||||||
|
|
||||||
set(CMAKE_C_COMPILER_TARGET $ENV{CROSS_TRIPLE})
|
|
||||||
set(CMAKE_CXX_COMPILER_TARGET $ENV{CROSS_TRIPLE})
|
|
||||||
set(CMAKE_ASM_COMPILER_TARGET $ENV{CROSS_TRIPLE})
|
|
||||||
|
|
||||||
set(CMAKE_CROSSCOMPILING_EMULATOR /wasi-runtimes/wasmtime/bin/wasmtime-pwd.sh)
|
set(CMAKE_CROSSCOMPILING_EMULATOR /wasi-runtimes/wasmtime/bin/wasmtime-pwd.sh)
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
#!/usr/bin/env sh
|
#!/usr/bin/env sh
|
||||||
|
|
||||||
exec clang++-${LLVM_VERSION} --target=wasm32-wasi --sysroot=${WASI_SYSROOT} "$@"
|
exec ${WASI_SDK_PATH}/bin/clang++ --target=wasm32-wasi --sysroot=${WASI_SYSROOT} "$@"
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
#!/usr/bin/env sh
|
#!/usr/bin/env sh
|
||||||
|
|
||||||
exec clang-${LLVM_VERSION} --target=wasm32-wasi --sysroot=${WASI_SYSROOT} "$@"
|
exec ${WASI_SDK_PATH}/bin/clang --target=wasm32-wasi --sysroot=${WASI_SYSROOT} "$@"
|
||||||
|
18
web-wasi/download-install-wasi-sdk.sh
Executable file
18
web-wasi/download-install-wasi-sdk.sh
Executable file
@ -0,0 +1,18 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -eox pipefail
|
||||||
|
|
||||||
|
mkdir /tmp/dl
|
||||||
|
cd /tmp/dl
|
||||||
|
|
||||||
|
curl -L -O https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_VERSION}/wasi-sdk-${WASI_VERSION_FULL}-arm64-linux.deb && \
|
||||||
|
curl -L -O https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_VERSION}/wasi-sdk-${WASI_VERSION_FULL}-x86_64-linux.deb && \
|
||||||
|
|
||||||
|
case `dpkg --print-architecture` in
|
||||||
|
amd64) dpkg -i wasi-sdk-*-x86_64-linux.deb ;;
|
||||||
|
arm64) dpkg -i wasi-sdk-*-arm64-linux.deb ;;
|
||||||
|
*) exit 1 ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
cd /tmp/
|
||||||
|
rm -rf /tmp/dl
|
Loading…
x
Reference in New Issue
Block a user