Compare commits

..

4 Commits

Author SHA1 Message Date
3910e804c3 Update perl 2025-02-09 20:47:07 +01:00
4bd05c5c07 Update liquidprompt 2025-02-09 19:43:24 +01:00
c732b62e97 Update crosstool-ng to 1.27.0 2025-02-09 19:39:10 +01:00
91279e9078 Update git, cmake, ninja and openssl 2025-02-08 11:47:50 +01:00
152 changed files with 649 additions and 1601 deletions

View File

@ -9,13 +9,10 @@ on:
- "*"
workflow_dispatch:
env:
OCI_EXE: docker
jobs:
base:
name: base
runs-on: ubuntu-22.04
runs-on: ubuntu-latest
steps:
- name: checkout code
uses: actions/checkout@v4
@ -23,7 +20,15 @@ jobs:
submodules: "recursive"
fetch-depth: 1
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: build
env:
BUILD_CMD: buildx build --platform linux/amd64,linux/arm64
run: make base
- name: test
@ -41,83 +46,25 @@ jobs:
path: ./cache
retention-days: 3
- name: Login to Docker Hub
if: github.ref == 'refs/heads/master'
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USER }}
password: ${{ secrets.DOCKER_PASS }}
- name: deploy
if: github.ref == 'refs/heads/master'
run: |
docker login -u ${{ secrets.DOCKER_USER }} -p ${{ secrets.DOCKER_PASS }}
docker image push dockcross/base --all-tags
base-multiarch:
name: base-multiarch
runs-on: ${{ matrix.os }}
strategy:
max-parallel: 5
matrix:
os: [ubuntu-22.04, ubuntu-22.04-arm]
steps:
- name: checkout code
uses: actions/checkout@v4
with:
submodules: "recursive"
fetch-depth: 1
- name: set host_arch
run: |
echo "HOST_ARCH=$(uname -m | sed -e 's/x86_64/amd64/' -e 's/aarch64/arm64/')" >> $GITHUB_ENV
- name: build multiarch
run: |
make base-${{ env.HOST_ARCH }}
- name: test multiarch
run: |
mkdir -p bin
make base-${{ env.HOST_ARCH }}.test
- name: archive base
run: |
mkdir -p cache
docker export dockcross/base:latest-${{ env.HOST_ARCH }} | xz -e9 -T0 > ./cache/base-multiarch.tar.xz
- name: save base
uses: actions/upload-artifact@v4
with:
name: cache-${{ matrix.os }}
path: ./cache
retention-days: 3
- name: Login to Docker Hub
if: github.ref == 'refs/heads/master'
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USER }}
password: ${{ secrets.DOCKER_PASS }}
- name: deploy
if: github.ref == 'refs/heads/master'
run: |
docker image push dockcross/base --all-tags
images:
needs: [base, base-multiarch]
runs-on: ${{ matrix.os }}
image:
name: ${{ matrix.arch_name.image }}
needs: base
runs-on: ubuntu-latest
env:
OCI_EXE: docker
strategy:
fail-fast: false
matrix:
os: [ubuntu-22.04, ubuntu-22.04-arm]
arch_name:
# Android images
- {
image: "android-arm",
multiarch: "",
stockfish: "yes",
stockfish_arg: "ARCH=armv7 COMP=ndk",
ninja: "no",
@ -139,7 +86,6 @@ jobs:
}
- {
image: "android-arm64",
multiarch: "",
stockfish: "yes",
stockfish_arg: "ARCH=armv8 COMP=ndk",
ninja: "no",
@ -161,7 +107,6 @@ jobs:
}
- {
image: "android-x86",
multiarch: "",
stockfish: "yes",
stockfish_arg: "ARCH=x86-32 COMP=ndk",
ninja: "no",
@ -183,7 +128,6 @@ jobs:
}
- {
image: "android-x86_64",
multiarch: "",
stockfish: "yes",
stockfish_arg: "ARCH=x86-64 COMP=ndk",
ninja: "no",
@ -203,15 +147,14 @@ jobs:
cpython: "no",
cpython_arg: "--host=x86_64-linux-android --target=x86_64-linux-android",
}
# inux arm64/armv8 images
# Linux arm64/armv8 images
- {
image: "linux-arm64",
multiarch: "yes",
stockfish: "yes",
stockfish_arg: "ARCH=armv8",
ninja: "yes",
ninja_arg: "",
openssl: "no",
openssl: "yes",
openssl_arg: "linux-aarch64",
C: "yes",
C_arg: "",
@ -228,7 +171,6 @@ jobs:
}
- {
image: "linux-arm64-lts",
multiarch: "",
stockfish: "yes",
stockfish_arg: "ARCH=armv8",
ninja: "yes",
@ -250,7 +192,6 @@ jobs:
}
- {
image: "linux-arm64-musl",
multiarch: "",
stockfish: "yes",
stockfish_arg: "ARCH=armv8",
ninja: "yes",
@ -272,7 +213,6 @@ jobs:
}
- {
image: "linux-arm64-full",
multiarch: "",
stockfish: "yes",
stockfish_arg: "ARCH=armv8",
ninja: "yes",
@ -295,7 +235,6 @@ jobs:
# Linux mipel images
- {
image: "linux-mipsel-lts",
multiarch: "",
stockfish: "no",
stockfish_arg: "",
ninja: "no",
@ -318,7 +257,6 @@ jobs:
# Linux armv5 images
- {
image: "linux-armv5",
multiarch: "",
stockfish: "no",
stockfish_arg: "",
ninja: "yes",
@ -340,7 +278,6 @@ jobs:
}
- {
image: "linux-armv5-musl",
multiarch: "",
stockfish: "no",
stockfish_arg: "",
ninja: "yes",
@ -362,7 +299,6 @@ jobs:
}
- {
image: "linux-armv5-uclibc",
multiarch: "",
stockfish: "no",
stockfish_arg: "",
ninja: "yes",
@ -385,7 +321,6 @@ jobs:
# Linux armv6 images
- {
image: "linux-armv6",
multiarch: "",
stockfish: "no",
stockfish_arg: "",
ninja: "yes",
@ -407,7 +342,6 @@ jobs:
}
- {
image: "linux-armv6-lts",
multiarch: "",
stockfish: "no",
stockfish_arg: "",
ninja: "yes",
@ -429,7 +363,6 @@ jobs:
}
- {
image: "linux-armv6-musl",
multiarch: "",
stockfish: "no",
stockfish_arg: "",
ninja: "yes",
@ -452,7 +385,6 @@ jobs:
# Linux armv7 images
- {
image: "linux-armv7",
multiarch: "",
stockfish: "yes",
stockfish_arg: "ARCH=armv7",
ninja: "yes",
@ -474,7 +406,6 @@ jobs:
}
- {
image: "linux-armv7a",
multiarch: "",
stockfish: "yes",
stockfish_arg: "ARCH=armv7-neon",
ninja: "yes",
@ -496,7 +427,6 @@ jobs:
}
- {
image: "linux-armv7a-lts",
multiarch: "",
stockfish: "yes",
stockfish_arg: "ARCH=armv7-neon",
ninja: "yes",
@ -518,7 +448,6 @@ jobs:
}
- {
image: "linux-armv7-lts",
multiarch: "",
stockfish: "yes",
stockfish_arg: "ARCH=armv7",
ninja: "yes",
@ -540,7 +469,6 @@ jobs:
}
- {
image: "linux-armv7l-musl",
multiarch: "",
stockfish: "yes",
stockfish_arg: "ARCH=armv7",
ninja: "yes",
@ -563,7 +491,6 @@ jobs:
# Linux x86 images
- {
image: "linux-x86",
multiarch: "",
stockfish: "yes",
stockfish_arg: "ARCH=x86-32-sse41-popcnt",
ninja: "yes",
@ -586,7 +513,6 @@ jobs:
# Linux i686 images
- {
image: "linux-i686",
multiarch: "",
stockfish: "no",
stockfish_arg: "",
ninja: "yes",
@ -609,7 +535,6 @@ jobs:
# Linux x86_64 images
- {
image: "linux-x64",
multiarch: "",
stockfish: "yes",
stockfish_arg: "ARCH=x86-64-modern",
ninja: "yes",
@ -631,7 +556,6 @@ jobs:
}
- {
image: "linux-x64-tinycc",
multiarch: "",
stockfish: "yes",
stockfish_arg: "ARCH=x86-64-modern",
ninja: "yes",
@ -653,7 +577,6 @@ jobs:
}
- {
image: "linux-x64-clang",
multiarch: "",
stockfish: "yes",
stockfish_arg: "ARCH=x86-64-modern COMP=clang",
ninja: "yes",
@ -675,7 +598,6 @@ jobs:
}
- {
image: "linux-x86_64-full",
multiarch: "",
stockfish: "yes",
stockfish_arg: "ARCH=x86-64-modern",
ninja: "yes",
@ -698,7 +620,6 @@ jobs:
# Linux riscv images
- {
image: "linux-riscv32",
multiarch: "",
stockfish: "no",
stockfish_arg: "",
ninja: "yes",
@ -720,7 +641,6 @@ jobs:
}
- {
image: "linux-riscv64",
multiarch: "",
stockfish: "no",
stockfish_arg: "",
ninja: "yes",
@ -743,7 +663,6 @@ jobs:
# Linux s390x images
- {
image: "linux-s390x",
multiarch: "",
stockfish: "no",
stockfish_arg: "",
ninja: "yes",
@ -763,10 +682,9 @@ jobs:
cpython: "yes",
cpython_arg: "--host=s390x-ibm-linux-gnu --target=s390x-ibm-linux-gnu",
}
# Linux mips images
# Linux mips images
- {
image: "linux-mips",
multiarch: "",
stockfish: "no",
stockfish_arg: "",
ninja: "yes",
@ -788,7 +706,6 @@ jobs:
}
- {
image: "linux-mips-uclibc",
multiarch: "",
stockfish: "no",
stockfish_arg: "",
ninja: "yes",
@ -811,7 +728,6 @@ jobs:
# Linux mips images
- {
image: "linux-mips-lts",
multiarch: "",
stockfish: "no",
stockfish_arg: "",
ninja: "yes",
@ -856,7 +772,6 @@ jobs:
# Linux ppc64le images
- {
image: "linux-ppc64le",
multiarch: "",
stockfish: "yes",
stockfish_arg: "ARCH=ppc-64",
ninja: "yes",
@ -879,7 +794,6 @@ jobs:
# Linux ppc64le-lts images
- {
image: "linux-ppc64le-lts",
multiarch: "",
stockfish: "yes",
stockfish_arg: "ARCH=ppc-64",
ninja: "yes",
@ -902,7 +816,6 @@ jobs:
# Linux m68k images
- {
image: "linux-m68k-uclibc",
multiarch: "",
stockfish: "no",
stockfish_arg: "",
ninja: "no",
@ -925,7 +838,6 @@ jobs:
# Linux xtensa images
- {
image: "linux-xtensa-uclibc",
multiarch: "",
stockfish: "no",
stockfish_arg: "",
ninja: "yes",
@ -948,7 +860,6 @@ jobs:
# Windows x86_x64 images
- {
image: "windows-static-x64",
multiarch: "",
stockfish: "yes",
stockfish_arg: "ARCH=x86-64-modern COMP=mingw",
ninja: "no",
@ -970,7 +881,6 @@ jobs:
}
- {
image: "windows-static-x64-posix",
multiarch: "",
stockfish: "yes",
stockfish_arg: "ARCH=x86-64-modern COMP=mingw",
ninja: "no",
@ -992,7 +902,6 @@ jobs:
}
- {
image: "windows-shared-x64",
multiarch: "",
stockfish: "no",
stockfish_arg: "",
ninja: "no",
@ -1014,7 +923,6 @@ jobs:
}
- {
image: "windows-shared-x64-posix",
multiarch: "",
stockfish: "no",
stockfish_arg: "",
ninja: "no",
@ -1037,7 +945,6 @@ jobs:
# Windows x86 images
- {
image: "windows-static-x86",
multiarch: "",
stockfish: "yes",
stockfish_arg: "ARCH=x86-32-sse41-popcnt COMP=mingw",
ninja: "no",
@ -1059,7 +966,6 @@ jobs:
}
- {
image: "windows-shared-x86",
multiarch: "",
stockfish: "no",
stockfish_arg: "",
ninja: "no",
@ -1082,7 +988,6 @@ jobs:
# Windows arm images
- {
image: "windows-armv7",
multiarch: "",
stockfish: "no",
stockfish_arg: "ARCH=armv7-neon COMP=clang",
ninja: "yes",
@ -1104,7 +1009,6 @@ jobs:
}
- {
image: "windows-arm64",
multiarch: "",
stockfish: "no",
stockfish_arg: "ARCH=armv8 COMP=clang",
ninja: "yes",
@ -1127,7 +1031,6 @@ jobs:
# manylinux_2_28 images
- {
image: "manylinux_2_28-x64",
multiarch: "",
stockfish: "yes",
stockfish_arg: "ARCH=x86-64-modern",
ninja: "yes",
@ -1150,7 +1053,6 @@ jobs:
# manylinux2014 images
- {
image: "manylinux2014-x86",
multiarch: "",
stockfish: "yes",
stockfish_arg: "ARCH=x86-32-sse41-popcnt",
ninja: "yes",
@ -1172,7 +1074,6 @@ jobs:
}
- {
image: "manylinux2014-x64",
multiarch: "",
stockfish: "yes",
stockfish_arg: "ARCH=x86-64-modern",
ninja: "yes",
@ -1194,7 +1095,6 @@ jobs:
}
- {
image: "manylinux2014-aarch64",
multiarch: "",
stockfish: "no",
stockfish_arg: "",
ninja: "no",
@ -1217,7 +1117,6 @@ jobs:
# web-wasm images
- {
image: "web-wasm",
multiarch: "yes",
stockfish: "no",
stockfish_arg: "",
ninja: "no",
@ -1239,7 +1138,6 @@ jobs:
}
- {
image: "web-wasi",
multiarch: "yes",
stockfish: "no",
stockfish_arg: "",
ninja: "no",
@ -1261,7 +1159,6 @@ jobs:
}
- {
image: "web-wasi-threads",
multiarch: "yes",
stockfish: "no",
stockfish_arg: "",
ninja: "no",
@ -1284,7 +1181,6 @@ jobs:
# Bare metal images
- {
image: "bare-armv7emhf-nano_newlib",
multiarch: "",
stockfish: "no",
stockfish_arg: "",
ninja: "no",
@ -1315,13 +1211,6 @@ jobs:
submodules: "recursive"
fetch-depth: 1
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: set host_arch
run: |
echo "HOST_ARCH=$(uname -m | sed -e 's/x86_64/amd64/' -e 's/aarch64/arm64/')" >> $GITHUB_ENV
- uses: actions/download-artifact@v4
with:
name: cache
@ -1330,33 +1219,17 @@ jobs:
- name: load base
run: xz -d -k < ./cache/base.tar.xz | docker import - dockcross/base:latest
- uses: actions/download-artifact@v4
with:
name: cache-${{ matrix.os }}
path: ./cache
- name: load multiarch base
run: xz -d -k < ./cache/base-multiarch.tar.xz | docker import - dockcross/base:latest-${{ env.HOST_ARCH }}
- name: build
env:
BUILD_CMD: build --cache-from type=gha --cache-to type=gha,mode=max
run: |
if test "${{ matrix.arch_name.multiarch }}" = "yes"; then
make ${{ matrix.arch_name.image }}
elif test "${{ env.HOST_ARCH }}" = "amd64"; then
make ${{ matrix.arch_name.image }}
fi
run: make ${{ matrix.arch_name.image }}
- name: basic test
run: |
if test "${{ matrix.arch_name.multiarch }}" = "yes" || test "${{ env.HOST_ARCH }}" = "amd64"; then
make ${{ matrix.arch_name.image }}.test
fi
run: make ${{ matrix.arch_name.image }}.test
# Updated on 19/05/2022
- name: stockfish build test
if: ${{ matrix.arch_name.stockfish == 'yes' && (matrix.arch_name.multiarch == 'yes' || env.HOST_ARCH == 'amd64') }}
if: ${{ matrix.arch_name.stockfish == 'yes' }}
run: |
git clone --depth 1 --branch sf_15 https://github.com/official-stockfish/Stockfish.git
cd Stockfish/src
@ -1367,17 +1240,17 @@ jobs:
# Updated on 12/09/2022
- name: ninja build test
if: ${{ matrix.arch_name.ninja == 'yes' && (matrix.arch_name.multiarch == 'yes' || env.HOST_ARCH == 'amd64') }}
if: ${{ matrix.arch_name.ninja == 'yes' }}
run: |
git clone --depth 1 --branch v1.11.1 https://github.com/ninja-build/ninja.git
cd ninja
./../tools/dockcross-cmake-builder.sh ${{ matrix.arch_name.image }} ${{ matrix.arch_name.ninja_arg }}
# Updated on 04/04/2025 (Use openSSL_1_1_1w to fix error: implicit declaration of function 'memcmp')
# Updated on 12/09/2022
- name: openssl build test
if: ${{ matrix.arch_name.openssl == 'yes' && (matrix.arch_name.multiarch == 'yes' || env.HOST_ARCH == 'amd64') }}
if: ${{ matrix.arch_name.openssl == 'yes' }}
run: |
git clone --depth 1 --branch OpenSSL_1_1_1w https://github.com/openssl/openssl.git
git clone --depth 1 --branch OpenSSL_1_1_1q https://github.com/openssl/openssl.git
cd openssl
wget https://raw.githubusercontent.com/mavlink/MAVSDK/main/third_party/openssl/dockcross-android.patch
patch -p 0 < dockcross-android.patch
@ -1388,7 +1261,7 @@ jobs:
# Updated on 12/09/2022
- name: C build test
if: ${{ matrix.arch_name.C == 'yes' && (matrix.arch_name.multiarch == 'yes' || env.HOST_ARCH == 'amd64') }}
if: ${{ matrix.arch_name.C == 'yes' }}
run: |
git clone https://github.com/TheAlgorithms/C.git
cd C
@ -1399,7 +1272,7 @@ jobs:
# Updated on 12/09/2022 No longer maintained
- name: C-Plus-Plus build test
if: ${{ matrix.arch_name.C-Plus-Plus == 'yes' && (matrix.arch_name.multiarch == 'yes' || env.HOST_ARCH == 'amd64') }}
if: ${{ matrix.arch_name.C-Plus-Plus == 'yes' }}
run: |
git clone https://github.com/TheAlgorithms/C-Plus-Plus.git
cd C-Plus-Plus
@ -1410,7 +1283,7 @@ jobs:
# Updated on 03/08/2024
- name: llama.cpp build test
if: ${{ matrix.arch_name.llama_cpp == 'yes' && (matrix.arch_name.multiarch == 'yes' || env.HOST_ARCH == 'amd64') }}
if: ${{ matrix.arch_name.llama_cpp == 'yes' }}
run: |
git clone https://github.com/ggerganov/llama.cpp.git
cd llama.cpp
@ -1421,7 +1294,7 @@ jobs:
# Updated on 12/09/2022
- name: fmt build test
if: ${{ matrix.arch_name.fmt == 'yes' && (matrix.arch_name.multiarch == 'yes' || env.HOST_ARCH == 'amd64') }}
if: ${{ matrix.arch_name.fmt == 'yes' }}
run: |
git clone --depth 1 --branch 9.1.0 https://github.com/fmtlib/fmt.git
cd fmt
@ -1431,7 +1304,7 @@ jobs:
# Updated on 19/05/2022
- name: cpython build test
if: ${{ matrix.arch_name.cpython == 'yes' && (matrix.arch_name.multiarch == 'yes' || env.HOST_ARCH == 'amd64') }}
if: ${{ matrix.arch_name.cpython == 'yes' }}
run: |
git clone --depth 1 --branch v3.11.2 https://github.com/python/cpython.git
cd cpython
@ -1442,7 +1315,7 @@ jobs:
# Updated on 12/09/2022 (4.2.0 branch not working)
- name: raylib build test
if: ${{ matrix.arch_name.raylib == 'yes' && (matrix.arch_name.multiarch == 'yes' || env.HOST_ARCH == 'amd64') }}
if: ${{ matrix.arch_name.raylib == 'yes' }}
run: |
git clone https://github.com/raysan5/raylib.git
cd raylib
@ -1453,7 +1326,7 @@ jobs:
# Updated on 31/3/2022
- name: mbedtls build test
if: ${{ matrix.arch_name.mbedtls == 'yes' && (matrix.arch_name.multiarch == 'yes' || env.HOST_ARCH == 'amd64') }}
if: ${{ matrix.arch_name.mbedtls == 'yes' }}
run: |
git clone --depth 1 --branch archive/baremetal https://github.com/Mbed-TLS/mbedtls.git
cd mbedtls
@ -1464,7 +1337,7 @@ jobs:
# Updated on 20/6/2022
- name: libopencm3 build test
if: ${{ matrix.arch_name.libopencm3 == 'yes' && (matrix.arch_name.multiarch == 'yes' || env.HOST_ARCH == 'amd64') }}
if: ${{ matrix.arch_name.libopencm3 == 'yes' }}
run: |
git clone https://github.com/libopencm3/libopencm3.git
cd libopencm3
@ -1479,82 +1352,8 @@ jobs:
cd ..
rm -rf libopencm3
- name: archive ${{ matrix.arch_name.image }}-${{ env.HOST_ARCH }}
if: matrix.arch_name.multiarch == 'yes'
run: |
mkdir -p cache-${{ matrix.arch_name.image }}-${{ env.HOST_ARCH }}
docker export dockcross/${{ matrix.arch_name.image }}:latest-${{ env.HOST_ARCH }} | xz -e9 -T0 > ./cache-${{ matrix.arch_name.image }}-${{ env.HOST_ARCH }}/${{ matrix.arch_name.image }}-${{ env.HOST_ARCH }}.tar.xz
- name: save ${{ matrix.arch_name.image }}-${{ matrix.os }}
uses: actions/upload-artifact@v4
if: matrix.arch_name.multiarch == 'yes'
with:
name: cache-${{ matrix.arch_name.image }}-${{ env.HOST_ARCH }}
path: ./cache-${{ matrix.arch_name.image }}-${{ env.HOST_ARCH }}
retention-days: 3
- name: Login to Docker Hub
if: github.ref == 'refs/heads/master' && matrix.arch_name.multiarch != 'yes' && env.HOST_ARCH == 'amd64'
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USER }}
password: ${{ secrets.DOCKER_PASS }}
- name: deploy-not-multi-arch
if: github.ref == 'refs/heads/master' && matrix.arch_name.multiarch != 'yes' && env.HOST_ARCH == 'amd64'
run: |
make ${{ matrix.arch_name.image }}.push
deploy-multi-arch-images:
needs:
- images
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
image_name: ["linux-arm64", "web-wasm", "web-wasi", "web-wasi-threads"]
steps:
- name: checkout code
uses: actions/checkout@v4
with:
submodules: "recursive"
fetch-depth: 1
- name: download ${{ matrix.image_name }}-amd64
uses: actions/download-artifact@v4
with:
name: cache-${{ matrix.image_name }}-amd64
path: ./cache-${{ matrix.image_name }}-amd64
- name: download ${{ matrix.image_name }}-arm64
uses: actions/download-artifact@v4
with:
name: cache-${{ matrix.image_name }}-arm64
path: ./cache-${{ matrix.image_name }}-arm64
- name: load images
run: |
xz -d -k < ./cache-${{ matrix.image_name }}-amd64/${{ matrix.image_name }}-amd64.tar.xz | docker import - dockcross/${{ matrix.image_name }}:latest-amd64
xz -d -k < ./cache-${{ matrix.image_name }}-arm64/${{ matrix.image_name }}-arm64.tar.xz | docker import - dockcross/${{ matrix.image_name }}:latest-arm64
- name: Login to Docker Hub
if: github.ref == 'refs/heads/master'
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USER }}
password: ${{ secrets.DOCKER_PASS }}
- name: deploy-multi-arch
- name: deploy
if: github.ref == 'refs/heads/master'
run: |
docker images
make ${{ matrix.image_name }}.tag-amd64
make ${{ matrix.image_name }}.push-amd64
export HOST_ARCH=arm64
make ${{ matrix.image_name }}.tag-arm64
make ${{ matrix.image_name }}.push-arm64
unset HOST_ARCH
make ${{ matrix.image_name }}.push
docker login -u ${{ secrets.DOCKER_USER }} -p ${{ secrets.DOCKER_PASS }}
docker image push dockcross/${{ matrix.arch_name.image }} --all-tags

View File

@ -106,10 +106,10 @@ set(CMAKE_Fortran_COMPILER $ENV{FC})
set(CMAKE_CXX_FLAGS "-I ${cross_root}/include/")
list(APPEND CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(CMAKE_SYSROOT ${cross_root}/${cross_triple}/sysroot)
set(CMAKE_CROSSCOMPILING_EMULATOR /usr/bin/qemu-arm64)
@ -135,7 +135,7 @@ LABEL maintainer="Matt McCormick matt@mmmccormick.com"
# This is for 64-bit ARM Linux machine
# Crosstool-ng crosstool-ng-1.25.0 2022-05-13
ENV CT_VERSION=crosstool-ng-1.25.0
ENV CT_VERSION crosstool-ng-1.25.0
#include "common.crosstool"
@ -147,9 +147,9 @@ RUN apt-get update \
&& apt-get clean --yes
# The CROSS_TRIPLE is a configured alias of the "aarch64-unknown-linux-gnu" target.
ENV CROSS_TRIPLE=aarch64-unknown-linux-gnu
ENV CROSS_TRIPLE aarch64-unknown-linux-gnu
ENV CROSS_ROOT=${XCC_PREFIX}/${CROSS_TRIPLE}
ENV CROSS_ROOT ${XCC_PREFIX}/${CROSS_TRIPLE}
ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
AR=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ar \
CC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gcc \
@ -158,18 +158,18 @@ ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
LD=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ld \
FC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gfortran
ENV QEMU_LD_PREFIX="${CROSS_ROOT}/${CROSS_TRIPLE}/sysroot"
ENV QEMU_SET_ENV="LD_LIBRARY_PATH=${CROSS_ROOT}/lib:${QEMU_LD_PREFIX}"
ENV QEMU_LD_PREFIX "${CROSS_ROOT}/${CROSS_TRIPLE}/sysroot"
ENV QEMU_SET_ENV "LD_LIBRARY_PATH=${CROSS_ROOT}/lib:${QEMU_LD_PREFIX}"
COPY Toolchain.cmake ${CROSS_ROOT}/
ENV CMAKE_TOOLCHAIN_FILE=${CROSS_ROOT}/Toolchain.cmake
ENV CMAKE_TOOLCHAIN_FILE ${CROSS_ROOT}/Toolchain.cmake
ENV PKG_CONFIG_PATH=/usr/lib/aarch64-linux-gnu/pkgconfig
ENV PKG_CONFIG_PATH /usr/lib/aarch64-linux-gnu/pkgconfig
# Linux kernel cross compilation variables
ENV PATH=${PATH}:${CROSS_ROOT}/bin
ENV CROSS_COMPILE=${CROSS_TRIPLE}-
ENV ARCH=arm64
ENV PATH ${PATH}:${CROSS_ROOT}/bin
ENV CROSS_COMPILE ${CROSS_TRIPLE}-
ENV ARCH arm64
#include "common.label-and-env"
```
@ -179,15 +179,15 @@ Then you must change these lines according to the targeted architecture.
Here you have to change the value according to the name of the toolchain (./ct-ng show-tuple):
```docker
ENV CROSS_TRIPLE=aarch64-unknown-linux-gnu
ENV CROSS_TRIPLE aarch64-unknown-linux-gnu
```
These lines also need to be changed:
```docker
LABEL maintainer="Matt McCormick matt@mmmccormick.com"
ENV PKG_CONFIG_PATH=/usr/lib/aarch64-linux-gnu/pkgconfig
ENV ARCH=arm64
ENV PKG_CONFIG_PATH /usr/lib/aarch64-linux-gnu/pkgconfig
ENV ARCH arm64
```
Once this part is finished, there must be 3 files in the `linux-arm64` folder:

187
Makefile
View File

@ -3,20 +3,8 @@
# Parameters
#
# Name of the docker-equivalent executable for building images.
# OCI: open container interface.
# Common values: docker, podman, buildah
# Name of the docker executable
DOCKER := $(or $(OCI_EXE), docker)
BUILD_DOCKER := $(or $(BUILD_DOCKER), $(DOCKER))
BUILDAH := $(or $(BUILDAH_EXE), buildah)
# Name of the docker-equivalent executable for running test containers.
# Supports the use case:
#
# DOCKER=buildah
# TEST_DOCKER=podman
#
# because buildah does not run containers.
TEST_DOCKER := $(or $(TEST_DOCKER), $(DOCKER))
# The build sub-command. Use:
#
@ -24,24 +12,21 @@ TEST_DOCKER := $(or $(TEST_DOCKER), $(DOCKER))
#
# to generate multi-platform images.
BUILD_CMD := $(or $(BUILD_CMD), build)
TAG_FLAG := $(or $(TAG_FLAG), --tag)
# Docker organization to pull the images from
ORG = dockcross
# Host architecture
HOST_ARCH := $(or $(HOST_ARCH), $(shell uname -m | sed -e 's/x86_64/amd64/' -e 's/aarch64/arm64/'))
# Directory where to generate the dockcross script for each images (e.g bin/dockcross-manylinux2014-x64)
BIN = ./bin
# These images are built using the "build implicit rule"
STANDARD_IMAGES := android-arm android-arm64 android-x86 android-x86_64 \
linux-i686 linux-x86 linux-x64 linux-x64-clang linux-arm64-musl linux-arm64-full \
linux-i686 linux-x86 linux-x64 linux-x64-clang linux-arm64 linux-arm64-musl linux-arm64-full \
linux-armv5 linux-armv5-musl linux-armv5-uclibc linux-m68k-uclibc linux-s390x linux-x64-tinycc \
linux-armv6 linux-armv6-lts linux-armv6-musl linux-arm64-lts linux-mipsel-lts \
linux-armv7l-musl linux-armv7 linux-armv7a linux-armv7-lts linux-armv7a-lts linux-x86_64-full \
linux-mips linux-mips-uclibc linux-mips-lts linux-ppc linux-ppc64le linux-ppc64le-lts linux-riscv64 linux-riscv32 linux-xtensa-uclibc \
web-wasi \
windows-static-x86 windows-static-x64 windows-static-x64-posix windows-armv7 \
windows-shared-x86 windows-shared-x64 windows-shared-x64-posix windows-arm64 \
bare-armv7emhf-nano_newlib
@ -49,10 +34,10 @@ STANDARD_IMAGES := android-arm android-arm64 android-x86 android-x86_64 \
# Generated Dockerfiles.
GEN_IMAGES := android-arm android-arm64 \
linux-i686 linux-x86 linux-x64 linux-x64-clang linux-arm64 linux-arm64-musl linux-arm64-full \
manylinux_2_28-x64 manylinux_2_34-x64 \
manylinux_2_28-x64 \
manylinux2014-x64 manylinux2014-x86 \
manylinux2014-aarch64 linux-arm64-lts \
web-wasm web-wasi web-wasi-emulated-threads web-wasi-threads linux-mips linux-mips-uclibc linux-mips-lts windows-arm64 windows-armv7 \
web-wasm web-wasi web-wasi-threads linux-mips linux-mips-uclibc linux-mips-lts windows-arm64 windows-armv7 \
windows-static-x86 windows-static-x64 windows-static-x64-posix \
windows-shared-x86 windows-shared-x64 windows-shared-x64-posix \
linux-armv7 linux-armv7a linux-armv7l-musl linux-armv7-lts linux-armv7a-lts linux-x86_64-full \
@ -61,25 +46,21 @@ GEN_IMAGES := android-arm android-arm64 \
linux-riscv64 linux-riscv32 linux-m68k-uclibc linux-x64-tinycc linux-xtensa-uclibc \
bare-armv7emhf-nano_newlib
# Generate both amd64 and arm64 images
MULTIARCH_IMAGES := linux-arm64 \
web-wasi web-wasi-emulated-threads
GEN_IMAGE_DOCKERFILES = $(addsuffix /Dockerfile,$(GEN_IMAGES))
# These images are expected to have explicit rules for *both* build and testing
NON_STANDARD_IMAGES := manylinux_2_28-x64 manylinux_2_34-x64 manylinux2014-x64 manylinux2014-x86 \
manylinux2014-aarch64 web-wasm web-wasi-emulated-threads web-wasi-threads
NON_STANDARD_IMAGES := manylinux_2_28-x64 manylinux2014-x64 manylinux2014-x86 \
manylinux2014-aarch64 web-wasm web-wasi-threads
# Docker composite files
DOCKER_COMPOSITE_SOURCES = common.docker common.debian common.manylinux2014 common.manylinux_2_28 common.manylinux_2_34 common.buildroot \
DOCKER_COMPOSITE_SOURCES = common.docker common.debian common.manylinux2014 common.manylinux_2_28 common.buildroot \
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))
# This list all available images
IMAGES := $(STANDARD_IMAGES) $(NON_STANDARD_IMAGES) $(MULTIARCH_IMAGES)
IMAGES := $(STANDARD_IMAGES) $(NON_STANDARD_IMAGES)
# Optional arguments for test runner (test/run.py) associated with "testing implicit rule"
linux-x64-tinycc.test_ARGS = --languages C
@ -128,7 +109,6 @@ $(GEN_IMAGE_DOCKERFILES) Dockerfile: %Dockerfile: %Dockerfile.in $(DOCKER_COMPOS
-e '/common.docker/ r $(DOCKER_COMPOSITE_FOLDER_PATH)common.docker' \
-e '/common.debian/ r $(DOCKER_COMPOSITE_FOLDER_PATH)common.debian' \
-e '/common.manylinux_2_28/ r $(DOCKER_COMPOSITE_FOLDER_PATH)common.manylinux_2_28' \
-e '/common.manylinux_2_34/ r $(DOCKER_COMPOSITE_FOLDER_PATH)common.manylinux_2_34' \
-e '/common.manylinux2014/ r $(DOCKER_COMPOSITE_FOLDER_PATH)common.manylinux2014' \
-e '/common.crosstool/ r $(DOCKER_COMPOSITE_FOLDER_PATH)common.crosstool' \
-e '/common.buildroot/ r $(DOCKER_COMPOSITE_FOLDER_PATH)common.buildroot' \
@ -142,20 +122,13 @@ $(GEN_IMAGE_DOCKERFILES) Dockerfile: %Dockerfile: %Dockerfile.in $(DOCKER_COMPOS
#
# web-wasm
#
ifeq ($(HOST_ARCH),amd64)
EMSCRIPTEN_HOST_ARCH_TAG = ""
endif
ifeq ($(HOST_ARCH),arm64)
EMSCRIPTEN_HOST_ARCH_TAG = "-arm64"
endif
web-wasm: web-wasm/Dockerfile
mkdir -p $@/imagefiles && cp -r imagefiles $@/
cp -r test web-wasm/
$(BUILD_DOCKER) $(BUILD_CMD) $(TAG_FLAG) $(ORG)/web-wasm:$(TAG)-$(HOST_ARCH) \
$(TAG_FLAG) $(ORG)/web-wasm:latest-$(HOST_ARCH) \
$(DOCKER) $(BUILD_CMD) -t $(ORG)/web-wasm:$(TAG) \
-t $(ORG)/web-wasm:latest \
--build-arg IMAGE=$(ORG)/web-wasm \
--build-arg VERSION=$(TAG) \
--build-arg HOST_ARCH_TAG=$(EMSCRIPTEN_HOST_ARCH_TAG) \
--build-arg VCS_REF=`git rev-parse --short HEAD` \
--build-arg VCS_URL=`git config --get remote.origin.url` \
--build-arg BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` \
@ -165,8 +138,8 @@ web-wasm: web-wasm/Dockerfile
web-wasm.test: web-wasm
cp -r test web-wasm/
$(TEST_DOCKER) run $(RM) $(ORG)/web-wasm:latest-$(HOST_ARCH) > $(BIN)/dockcross-web-wasm && chmod +x $(BIN)/dockcross-web-wasm
$(BIN)/dockcross-web-wasm -i $(ORG)/web-wasm:latest-$(HOST_ARCH) python test/run.py --exe-suffix ".js"
$(DOCKER) run $(RM) $(ORG)/web-wasm:latest > $(BIN)/dockcross-web-wasm && chmod +x $(BIN)/dockcross-web-wasm
$(BIN)/dockcross-web-wasm -i $(ORG)/web-wasm:latest python test/run.py --exe-suffix ".js"
rm -rf web-wasm/test
#
@ -175,16 +148,20 @@ web-wasm.test: web-wasm
web-wasi-threads: web-wasi web-wasi-threads/Dockerfile
mkdir -p $@/imagefiles && cp -r imagefiles $@/
cp -r test web-wasi-threads/
$(BUILD_DOCKER) $(BUILD_CMD) $(TAG_FLAG) $(ORG)/web-wasi-threads:$(TAG)-$(HOST_ARCH) \
-t $(ORG)/web-wasi-threads:latest-$(HOST_ARCH) \
$(DOCKER) $(BUILD_CMD) -t $(ORG)/web-wasi-threads:$(TAG) \
-t $(ORG)/web-wasi-threads:latest \
--build-arg IMAGE=$(ORG)/web-wasi-threads \
--build-arg VERSION=$(TAG) \
--build-arg HOST_ARCH=$(HOST_ARCH) \
--build-arg VCS_REF=`git rev-parse --short HEAD` \
--build-arg VCS_URL=`git config --get remote.origin.url` \
--build-arg BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` \
web-wasi-threads
web-wasi-threads.test: web-wasi-threads
$(DOCKER) run $(RM) $(ORG)/web-wasi-threads:latest > $(BIN)/dockcross-web-wasi-threads \
&& chmod +x $(BIN)/dockcross-web-wasi-threads
$(BIN)/dockcross-web-wasi-threads -i $(ORG)/web-wasi-threads:latest python3 test/run.py
rm -rf web-wasi-threads/test
#
# manylinux2014-aarch64
#
@ -194,8 +171,8 @@ manylinux2014-aarch64: manylinux2014-aarch64/Dockerfile manylinux2014-x64
@# Get libstdc++ from quay.io/pypa/manylinux2014_aarch64 container
docker run -v `pwd`:/host --rm -e LIB_PATH=/host/$@/xc_script/ quay.io/pypa/manylinux2014_aarch64 bash -c "PASS=1 /host/$@/xc_script/docker_setup_scrpits/copy_libstd.sh"
mkdir -p $@/imagefiles && cp -r imagefiles $@/
$(BUILD_DOCKER) $(BUILD_CMD) $(TAG_FLAG) $(ORG)/manylinux2014-aarch64:$(TAG) \
$(TAG_FLAG) $(ORG)/manylinux2014-aarch64:latest \
$(DOCKER) build -t $(ORG)/manylinux2014-aarch64:$(TAG) \
-t $(ORG)/manylinux2014-aarch64:latest \
--build-arg IMAGE=$(ORG)/manylinux2014-aarch64 \
--build-arg VERSION=$(TAG) \
--build-arg VCS_REF=`git rev-parse --short HEAD` \
@ -207,17 +184,17 @@ manylinux2014-aarch64: manylinux2014-aarch64/Dockerfile manylinux2014-x64
docker run -v `pwd`:/host --rm quay.io/pypa/manylinux2014_aarch64 bash -c "rm -rf /host/$@/xc_script/usr"
manylinux2014-aarch64.test: manylinux2014-aarch64
$(TEST_DOCKER) run $(RM) $(ORG)/manylinux2014-aarch64:latest > $(BIN)/dockcross-manylinux2014-aarch64 \
$(DOCKER) run $(RM) $(ORG)/manylinux2014-aarch64:latest > $(BIN)/dockcross-manylinux2014-aarch64 \
&& chmod +x $(BIN)/dockcross-manylinux2014-aarch64
$(BIN)/dockcross-manylinux2014-aarch64 -i $(ORG)/manylinux2014-aarch64:latest /opt/python/cp311-cp311/bin/python test/run.py
$(BIN)/dockcross-manylinux2014-aarch64 -i $(ORG)/manylinux2014-aarch64:latest /opt/python/cp38-cp38/bin/python test/run.py
#
# manylinux_2_28-x64
#
manylinux_2_28-x64: manylinux_2_28-x64/Dockerfile
mkdir -p $@/imagefiles && cp -r imagefiles $@/
$(BUILD_DOCKER) $(BUILD_CMD) $(TAG_FLAG) $(ORG)/manylinux_2_28-x64:$(TAG) \
$(TAG_FLAG) $(ORG)/manylinux_2_28-x64:latest \
$(DOCKER) build -t $(ORG)/manylinux_2_28-x64:$(TAG) \
-t $(ORG)/manylinux_2_28-x64:latest \
--build-arg IMAGE=$(ORG)/manylinux_2_28-x64 \
--build-arg VERSION=$(TAG) \
--build-arg VCS_REF=`git rev-parse --short HEAD` \
@ -227,37 +204,17 @@ manylinux_2_28-x64: manylinux_2_28-x64/Dockerfile
rm -rf $@/imagefiles
manylinux_2_28-x64.test: manylinux_2_28-x64
$(TEST_DOCKER) run $(RM) $(ORG)/manylinux_2_28-x64:latest > $(BIN)/dockcross-manylinux_2_28-x64 \
$(DOCKER) run $(RM) $(ORG)/manylinux_2_28-x64:latest > $(BIN)/dockcross-manylinux_2_28-x64 \
&& chmod +x $(BIN)/dockcross-manylinux_2_28-x64
$(BIN)/dockcross-manylinux_2_28-x64 -i $(ORG)/manylinux_2_28-x64:latest /opt/python/cp310-cp310/bin/python test/run.py
#
# manylinux_2_34-x64
#
manylinux_2_34-x64: manylinux_2_34-x64/Dockerfile
mkdir -p $@/imagefiles && cp -r imagefiles $@/
$(DOCKER) build -t $(ORG)/manylinux_2_34-x64:$(TAG) \
-t $(ORG)/manylinux_2_34-x64:latest \
--build-arg IMAGE=$(ORG)/manylinux_2_34-x64 \
--build-arg VERSION=$(TAG) \
--build-arg VCS_REF=`git rev-parse --short HEAD` \
--build-arg VCS_URL=`git config --get remote.origin.url` \
--build-arg BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` \
-f manylinux_2_34-x64/Dockerfile .
rm -rf $@/imagefiles
manylinux_2_34-x64.test: manylinux_2_34-x64
$(DOCKER) run $(RM) $(ORG)/manylinux_2_34-x64:latest > $(BIN)/dockcross-manylinux_2_34-x64 \
&& chmod +x $(BIN)/dockcross-manylinux_2_34-x64
$(BIN)/dockcross-manylinux_2_34-x64 -i $(ORG)/manylinux_2_34-x64:latest /opt/python/cp310-cp310/bin/python test/run.py
#
# manylinux2014-x64
#
manylinux2014-x64: manylinux2014-x64/Dockerfile
mkdir -p $@/imagefiles && cp -r imagefiles $@/
$(BUILD_DOCKER) $(BUILD_CMD) $(TAG_FLAG) $(ORG)/manylinux2014-x64:$(TAG) \
$(TAG_FLAG) $(ORG)/manylinux2014-x64:latest \
$(DOCKER) build -t $(ORG)/manylinux2014-x64:$(TAG) \
-t $(ORG)/manylinux2014-x64:latest \
--build-arg IMAGE=$(ORG)/manylinux2014-x64 \
--build-arg VERSION=$(TAG) \
--build-arg VCS_REF=`git rev-parse --short HEAD` \
@ -267,16 +224,16 @@ manylinux2014-x64: manylinux2014-x64/Dockerfile
rm -rf $@/imagefiles
manylinux2014-x64.test: manylinux2014-x64
$(TEST_DOCKER) run $(RM) $(ORG)/manylinux2014-x64:latest > $(BIN)/dockcross-manylinux2014-x64 \
$(DOCKER) run $(RM) $(ORG)/manylinux2014-x64:latest > $(BIN)/dockcross-manylinux2014-x64 \
&& chmod +x $(BIN)/dockcross-manylinux2014-x64
$(BIN)/dockcross-manylinux2014-x64 -i $(ORG)/manylinux2014-x64:latest /opt/python/cp311-cp311/bin/python test/run.py
$(BIN)/dockcross-manylinux2014-x64 -i $(ORG)/manylinux2014-x64:latest /opt/python/cp38-cp38/bin/python test/run.py
#
# manylinux2014-x86
#
manylinux2014-x86: manylinux2014-x86/Dockerfile
mkdir -p $@/imagefiles && cp -r imagefiles $@/
$(BUILD_DOCKER) $(BUILD_CMD) $(TAG_FLAG) $(ORG)/manylinux2014-x86:$(TAG) \
$(DOCKER) build -t $(ORG)/manylinux2014-x86:$(TAG) \
-t $(ORG)/manylinux2014-x86:latest \
--build-arg IMAGE=$(ORG)/manylinux2014-x86 \
--build-arg VERSION=$(TAG) \
@ -287,32 +244,22 @@ manylinux2014-x86: manylinux2014-x86/Dockerfile
rm -rf $@/imagefiles
manylinux2014-x86.test: manylinux2014-x86
$(TEST_DOCKER) run $(RM) $(ORG)/manylinux2014-x86:latest > $(BIN)/dockcross-manylinux2014-x86 \
$(DOCKER) run $(RM) $(ORG)/manylinux2014-x86:latest > $(BIN)/dockcross-manylinux2014-x86 \
&& chmod +x $(BIN)/dockcross-manylinux2014-x86
$(BIN)/dockcross-manylinux2014-x86 -i $(ORG)/manylinux2014-x86:latest /opt/python/cp311-cp311/bin/python test/run.py
$(BIN)/dockcross-manylinux2014-x86 -i $(ORG)/manylinux2014-x86:latest /opt/python/cp38-cp38/bin/python test/run.py
#
# base-$(HOST_ARCH)
# base
#
base-$(HOST_ARCH): Dockerfile imagefiles/
$(BUILD_DOCKER) $(BUILD_CMD) $(TAG_FLAG) $(ORG)/base:latest-$(HOST_ARCH) \
$(TAG_FLAG) $(ORG)/base:$(TAG)-$(HOST_ARCH) \
--build-arg IMAGE=$(ORG)/base \
--build-arg VCS_URL=`git config --get remote.origin.url` \
.
base-$(HOST_ARCH).test: base-$(HOST_ARCH)
$(TEST_DOCKER) run $(RM) $(ORG)/base:latest-$(HOST_ARCH) > $(BIN)/dockcross-base && chmod +x $(BIN)/dockcross-base
base: Dockerfile imagefiles/
$(BUILD_DOCKER) $(BUILD_CMD) $(TAG_FLAG) $(ORG)/base:latest \
$(TAG_FLAG) $(ORG)/base:$(TAG) \
$(DOCKER) $(BUILD_CMD) -t $(ORG)/base:latest \
-t $(ORG)/base:$(TAG) \
--build-arg IMAGE=$(ORG)/base \
--build-arg VCS_URL=`git config --get remote.origin.url` \
.
base.test: base
$(TEST_DOCKER) run $(RM) $(ORG)/base:latest > $(BIN)/dockcross-base && chmod +x $(BIN)/dockcross-base
$(DOCKER) run $(RM) $(ORG)/base:latest > $(BIN)/dockcross-base && chmod +x $(BIN)/dockcross-base
# display
#
@ -327,8 +274,8 @@ $(VERBOSE).SILENT: display_images
$(STANDARD_IMAGES): %: %/Dockerfile base
mkdir -p $@/imagefiles && cp -r imagefiles $@/
$(BUILD_DOCKER) $(BUILD_CMD) $(TAG_FLAG) $(ORG)/$@:latest \
$(TAG_FLAG) $(ORG)/$@:$(TAG) \
$(DOCKER) $(BUILD_CMD) -t $(ORG)/$@:latest \
-t $(ORG)/$@:$(TAG) \
--build-arg ORG=$(ORG) \
--build-arg IMAGE=$(ORG)/$@ \
--build-arg VERSION=$(TAG) \
@ -338,20 +285,6 @@ $(STANDARD_IMAGES): %: %/Dockerfile base
$@
rm -rf $@/imagefiles
$(MULTIARCH_IMAGES): %: %/Dockerfile base-$(HOST_ARCH)
mkdir -p $@/imagefiles && cp -r imagefiles $@/
$(BUILD_DOCKER) $(BUILD_CMD) $(TAG_FLAG) $(ORG)/$@:latest-$(HOST_ARCH) \
$(TAG_FLAG) $(ORG)/$@:$(TAG)-$(HOST_ARCH) \
--build-arg ORG=$(ORG) \
--build-arg IMAGE=$(ORG)/$@ \
--build-arg HOST_ARCH=$(HOST_ARCH) \
--build-arg VERSION=$(TAG) \
--build-arg VCS_REF=`git rev-parse --short HEAD` \
--build-arg VCS_URL=`git config --get remote.origin.url` \
--build-arg BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` \
$@
rm -rf $@/imagefiles
clean:
for d in $(IMAGES) ; do rm -rf $$d/imagefiles ; done
for d in $(IMAGES) ; do rm -rf $(BIN)/dockcross-$$d ; done
@ -360,9 +293,9 @@ clean:
purge: clean
# Remove all untagged images
$(TEST_DOCKER) container ls -aq | xargs -r $(DOCKER) container rm -f
$(DOCKER) container ls -aq | xargs -r $(DOCKER) container rm -f
# Remove all images with organization (ex dockcross/*)
$(BUILD_DOCKER) images --filter=reference='$(ORG)/*' --format='{{.Repository}}:{{.Tag}}' | xargs -r $(DOCKER) rmi -f
$(DOCKER) images --filter=reference='$(ORG)/*' --format='{{.Repository}}:{{.Tag}}' | xargs -r $(DOCKER) rmi -f
# Check bash syntax
bash-check:
@ -374,44 +307,10 @@ bash-check:
#
.SECONDEXPANSION:
$(addsuffix .test,$(STANDARD_IMAGES)): $$(basename $$@)
$(TEST_DOCKER) run $(RM) $(ORG)/$(basename $@):latest > $(BIN)/dockcross-$(basename $@) \
$(DOCKER) run $(RM) $(ORG)/$(basename $@):latest > $(BIN)/dockcross-$(basename $@) \
&& chmod +x $(BIN)/dockcross-$(basename $@)
$(BIN)/dockcross-$(basename $@) -i $(ORG)/$(basename $@):latest python3 test/run.py $($@_ARGS)
.SECONDEXPANSION:
$(addsuffix .test,$(MULTIARCH_IMAGES) web-wasi-threads): $$(basename $$@)
$(TEST_DOCKER) run $(RM) $(ORG)/$(basename $@):latest-$(HOST_ARCH) > $(BIN)/dockcross-$(basename $@) \
&& chmod +x $(BIN)/dockcross-$(basename $@)
$(BIN)/dockcross-$(basename $@) -i $(ORG)/$(basename $@):latest-$(HOST_ARCH) python3 test/run.py $($@_ARGS)
.SECONDEXPANSION:
$(addsuffix .tag-$(HOST_ARCH),$(MULTIARCH_IMAGES) web-wasi-threads web-wasm): $$(basename $$@)
$(BUILD_DOCKER) tag $(ORG)/$(basename $@):latest-$(HOST_ARCH) \
$(ORG)/$(basename $@):$(TAG)-$(HOST_ARCH)
.SECONDEXPANSION:
$(addsuffix .push-$(HOST_ARCH),$(MULTIARCH_IMAGES) web-wasi-threads web-wasm): $$(basename $$@)
$(BUILD_DOCKER) push $(ORG)/$(basename $@):latest-$(HOST_ARCH) \
&& $(BUILD_DOCKER) push $(ORG)/$(basename $@):$(TAG)-$(HOST_ARCH)
.SECONDEXPANSION:
$(addsuffix .push,$(STANDARD_IMAGES) $(NON_STANDARD_IMAGES)): $$(basename $$@)
$(BUILD_DOCKER) push $(ORG)/$(basename $@):latest \
&& $(BUILD_DOCKER) push $(ORG)/$(basename $@):$(TAG)
.SECONDEXPANSION:
$(addsuffix .manifest,$(MULTIARCH_IMAGES) web-wasi-threads web-wasm): $$(basename $$@)
if $(BUILDAH) manifest exists $(ORG)/$(basename $@); then \
$(BUILDAH) manifest rm $(ORG)/$(basename $@); fi
$(BUILDAH) manifest create $(ORG)/$(basename $@)
$(BUILDAH) manifest add $(ORG)/$(basename $@) docker://$(ORG)/$(basename $@):latest-amd64
$(BUILDAH) manifest add $(ORG)/$(basename $@) docker://$(ORG)/$(basename $@):latest-arm64
.SECONDEXPANSION:
$(addsuffix .push,$(MULTIARCH_IMAGES) web-wasi-threads web-wasm): $$(basename $$@).manifest
$(BUILDAH) manifest push --all --format v2s2 $(ORG)/$(basename $@) docker://$(ORG)/$(basename $@):latest
$(BUILDAH) manifest push --all --format v2s2 $(ORG)/$(basename $@) docker://$(ORG)/$(basename $@):$(TAG)
#
# testing prerequisites implicit rule
#

View File

@ -18,8 +18,6 @@ Cross compiling toolchains in Docker images.
- [Meson](https://mesonbuild.com) is pre-installed.
- [Conan.io](https://www.conan.io) can be used as a package manager.
- Toolchain files configured for CMake.
- [Rustup](https://rustup.rs/) is pre-installed.
- Some images (e.g. android) are configured for Rust.
- Current directory is mounted as the container\'s workdir, `/work`.
- Works with the [Docker for Mac](https://docs.docker.com/docker-for-mac/) and [Docker for Windows](https://docs.docker.com/docker-for-windows/).
- Support using alternative container executor by setting **OCI_EXE** environment variable. By default, it searches for [docker](https://www.docker.com) and [podman](https://podman.io) executable.
@ -32,7 +30,6 @@ Cross compiling toolchains in Docker images.
3. `dockcross ninja -Cbuild`: Run ninja in the `./build` directory.
4. `dockcross bash -c '$CC test/C/hello.c -o hello'`: Build the *hello.c* file with the compiler identified with the `CC` environmental variable in the build environment.
5. `dockcross bash`: Run an interactive shell in the build environment.
6. `dockcross cargo build`: Build the current Rust project.
Note that commands are executed verbatim. If any shell processing for environment variable expansion or redirection is required, please use
@ -116,7 +113,6 @@ The dockcross script will execute the given command-line inside the container, a
| dockcross/linux-m68k-uclibc | m68k | GCC + uclibc | Linux |
| dockcross/linux-xtensa-uclibc | xtensa | GCC + uclibc | Linux |
| dockcross/manylinux_2_28-x64 | x86_64 | GCC | Linux |
| dockcross/manylinux_2_34-x64 | x86_64 | GCC | Linux |
| dockcross/manylinux2014-x86 | x86 | GCC | Linux |
| dockcross/manylinux2014-x64 | x86_64 | GCC | Linux |
| dockcross/linux-i686 | x86 | GCC | Linux |
@ -385,12 +381,6 @@ Standalone Linux i686 cross compiler.
Docker [manylinux_2_28](https://github.com/pypa/manylinux) image for building Linux x86_64 / amd64 [Python wheel packages](http://pythonwheels.com/). It includes Python 3.6, 3.7, 3.8, 3.9, 3.10 and 3.11. Also has support for the dockcross script, and it has installations of CMake, Ninja, and [scikit-build](http://scikit-build.org). For CMake, it sets **MANYLINUX_2_28** to \"TRUE\" in the toolchain.
### dockcross/manylinux_2_34-x64
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/manylinux_2_34-x64/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/manylinux_2_34-x64)
Docker [manylinux_2_34](https://github.com/pypa/manylinux) image for building Linux x86_64 / amd64 [Python wheel packages](http://pythonwheels.com/). It includes Python 3.8.10+, 3.9.5+, 3.10.0+. Also has support for the dockcross script, and it has installations of CMake, Ninja, and [scikit-build](http://scikit-build.org). For CMake, it sets **MANYLINUX_2_34** to \"TRUE\" in the toolchain.
### dockcross/manylinux2014-x64
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/manylinux2014-x64/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/manylinux2014-x64)
@ -576,7 +566,7 @@ An example Dockerfile would be:
```
FROM dockcross/linux-armv7
ENV DEFAULT_DOCKCROSS_IMAGE=my_cool_image
ENV DEFAULT_DOCKCROSS_IMAGE my_cool_image
RUN apt-get install -y nano
```

View File

@ -17,8 +17,8 @@ ENV AS=${CROSS_ROOT}/bin/llvm-as \
CXX=${CROSS_ROOT}/bin/clang++ \
LD=${CROSS_ROOT}/bin/ld
ENV ANDROID_NDK_REVISION=25b
ENV ANDROID_API=23
ENV ANDROID_NDK_REVISION 25b
ENV ANDROID_API 23
RUN mkdir -p /build && \
cd /build && \
@ -35,13 +35,7 @@ RUN mkdir -p /build && \
find ${CROSS_ROOT} -exec chmod a+r '{}' \; && \
find ${CROSS_ROOT} -executable -exec chmod a+x '{}' \;
# Prepare Rust
ENV PATH="/root/.cargo/bin/:$PATH"
RUN rustup target add armv7-linux-androideabi
COPY config.toml /root/.cargo/
# Prepare CMake
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"

View File

@ -15,10 +15,10 @@ set(CMAKE_Fortran_COMPILER $ENV{FC})
set(CMAKE_EXE_LINKER_FLAGS "-llog")
set(CMAKE_SHARED_LINKER_FLAGS "-llog")
list(APPEND CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} $ENV{CROSS_ROOT})
set(CMAKE_FIND_ROOT_PATH $ENV{CROSS_ROOT})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(CMAKE_SYSROOT $ENV{CROSS_ROOT}/sysroot)
set(CMAKE_CROSSCOMPILING_EMULATOR /usr/bin/qemu-arm)

View File

@ -1,5 +0,0 @@
[build]
target = "armv7-linux-androideabi"
[target.armv7-linux-androideabi]
linker = "/usr/arm-linux-androideabi/bin/armv7a-linux-androideabi23-clang"

View File

@ -21,8 +21,8 @@ ENV AS=${CROSS_ROOT}/bin/llvm-as \
CXX=${CROSS_ROOT}/bin/clang++ \
LD=${CROSS_ROOT}/bin/ld
ENV ANDROID_NDK_REVISION=25b
ENV ANDROID_API=23
ENV ANDROID_NDK_REVISION 25b
ENV ANDROID_API 23
RUN mkdir -p /build && \
cd /build && \
@ -39,13 +39,8 @@ RUN mkdir -p /build && \
find ${CROSS_ROOT} -exec chmod a+r '{}' \; && \
find ${CROSS_ROOT} -executable -exec chmod a+x '{}' \;
# Prepare Rust
ENV PATH="/root/.cargo/bin/:$PATH"
RUN rustup target add aarch64-linux-android
COPY config.toml /root/.cargo/
# Prepare CMake
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"

View File

@ -14,10 +14,10 @@ set(CMAKE_Fortran_COMPILER $ENV{FC})
set(CMAKE_EXE_LINKER_FLAGS "-llog")
set(CMAKE_SHARED_LINKER_FLAGS "-llog")
list(APPEND CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} $ENV{CROSS_ROOT})
set(CMAKE_FIND_ROOT_PATH $ENV{CROSS_ROOT})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(CMAKE_SYSROOT $ENV{CROSS_ROOT}/sysroot)
set(CMAKE_CROSSCOMPILING_EMULATOR /usr/bin/qemu-arm)

View File

@ -1,5 +0,0 @@
[build]
target = "aarch64-linux-android"
[target.aarch64-linux-android]
linker = "/usr/aarch64-linux-android/bin/aarch64-linux-android-clang"

View File

@ -11,8 +11,8 @@ ENV AS=${CROSS_ROOT}/bin/llvm-as \
CXX=${CROSS_ROOT}/bin/clang++ \
LD=${CROSS_ROOT}/bin/ld
ENV ANDROID_NDK_REVISION=25b
ENV ANDROID_API=23
ENV ANDROID_NDK_REVISION 25b
ENV ANDROID_API 23
RUN mkdir -p /build && \
cd /build && \
@ -29,14 +29,8 @@ RUN mkdir -p /build && \
find ${CROSS_ROOT} -exec chmod a+r '{}' \; && \
find ${CROSS_ROOT} -executable -exec chmod a+x '{}' \;
# Prepare Rust
ENV PATH="/root/.cargo/bin/:$PATH"
RUN rustup target add i686-linux-android
COPY config.toml /root/.cargo/
# Prepare CMake
COPY Toolchain.cmake ${CROSS_ROOT}/
ENV CMAKE_TOOLCHAIN_FILE=${CROSS_ROOT}/Toolchain.cmake
ENV CMAKE_TOOLCHAIN_FILE ${CROSS_ROOT}/Toolchain.cmake
# Build-time metadata as defined at http://label-schema.org
ARG BUILD_DATE
@ -50,4 +44,4 @@ LABEL org.label-schema.build-date=$BUILD_DATE \
org.label-schema.vcs-ref=$VCS_REF \
org.label-schema.vcs-url=$VCS_URL \
org.label-schema.schema-version="1.0"
ENV DEFAULT_DOCKCROSS_IMAGE=${IMAGE}:${VERSION}
ENV DEFAULT_DOCKCROSS_IMAGE ${IMAGE}:${VERSION}

View File

@ -14,8 +14,8 @@ set(CMAKE_Fortran_COMPILER $ENV{FC})
set(CMAKE_EXE_LINKER_FLAGS "-llog")
set(CMAKE_SHARED_LINKER_FLAGS "-llog")
list(APPEND CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} $ENV{CROSS_ROOT})
set(CMAKE_FIND_ROOT_PATH $ENV{CROSS_ROOT})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(CMAKE_SYSROOT $ENV{CROSS_ROOT}/sysroot)

View File

@ -1,5 +0,0 @@
[build]
target = "i686-linux-android"
[target.i686-linux-android]
linker = "/usr/i686-linux-android/bin/i686-linux-android23-clang"

View File

@ -11,8 +11,8 @@ ENV AS=${CROSS_ROOT}/bin/llvm-as \
CXX=${CROSS_ROOT}/bin/clang++ \
LD=${CROSS_ROOT}/bin/ld
ENV ANDROID_NDK_REVISION=25b
ENV ANDROID_API=23
ENV ANDROID_NDK_REVISION 25b
ENV ANDROID_API 23
RUN mkdir -p /build && \
cd /build && \
@ -29,14 +29,8 @@ RUN mkdir -p /build && \
find ${CROSS_ROOT} -exec chmod a+r '{}' \; && \
find ${CROSS_ROOT} -executable -exec chmod a+x '{}' \;
# Prepare Rust
ENV PATH="/root/.cargo/bin/:$PATH"
RUN rustup target add x86_64-linux-android
COPY config.toml /root/.cargo/
# Prepare CMake
COPY Toolchain.cmake ${CROSS_ROOT}/
ENV CMAKE_TOOLCHAIN_FILE=${CROSS_ROOT}/Toolchain.cmake
ENV CMAKE_TOOLCHAIN_FILE ${CROSS_ROOT}/Toolchain.cmake
# Build-time metadata as defined at http://label-schema.org
ARG BUILD_DATE
@ -50,4 +44,4 @@ LABEL org.label-schema.build-date=$BUILD_DATE \
org.label-schema.vcs-ref=$VCS_REF \
org.label-schema.vcs-url=$VCS_URL \
org.label-schema.schema-version="1.0"
ENV DEFAULT_DOCKCROSS_IMAGE=${IMAGE}:${VERSION}
ENV DEFAULT_DOCKCROSS_IMAGE ${IMAGE}:${VERSION}

View File

@ -14,8 +14,8 @@ set(CMAKE_Fortran_COMPILER $ENV{FC})
set(CMAKE_EXE_LINKER_FLAGS "-llog")
set(CMAKE_SHARED_LINKER_FLAGS "-llog")
list(APPEND CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} $ENV{CROSS_ROOT})
set(CMAKE_FIND_ROOT_PATH $ENV{CROSS_ROOT})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(CMAKE_SYSROOT $ENV{CROSS_ROOT}/sysroot)

View File

@ -1,5 +0,0 @@
[build]
target = "x86_64-linux-android"
[target.x86_64-linux-android]
linker = "/usr/x86_64-linux-android/bin/x86_64-linux-android-clang"

View File

@ -6,13 +6,13 @@ LABEL maintainer="Chen Tao t.clydechen@gmail.com"
# This is for armv7e-m+fp bare metal
# Crosstool-ng version 1.25.0
ENV CT_VERSION=8fa98eeeff9bc53478d97ef722f366fea151ae64
ENV CT_VERSION 8fa98eeeff9bc53478d97ef722f366fea151ae64
#include "common.crosstool"
ENV CROSS_TRIPLE=arm-none-eabi
ENV CROSS_TRIPLE arm-none-eabi
ENV CROSS_ROOT=${XCC_PREFIX}/${CROSS_TRIPLE}
ENV CROSS_ROOT ${XCC_PREFIX}/${CROSS_TRIPLE}
ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
AR=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ar \
CC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gcc \
@ -23,13 +23,13 @@ ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
OBJCOPY=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-objcopy
COPY Toolchain.cmake ${CROSS_ROOT}/
ENV CMAKE_TOOLCHAIN_FILE=${CROSS_ROOT}/Toolchain.cmake
ENV CMAKE_TOOLCHAIN_FILE ${CROSS_ROOT}/Toolchain.cmake
ENV PKG_CONFIG_PATH=/usr/lib/arm-none-eabi/pkgconfig
ENV PKG_CONFIG_PATH /usr/lib/arm-none-eabi/pkgconfig
# Linux kernel cross compilation variables
ENV PATH=${PATH}:${CROSS_ROOT}/bin
ENV CROSS_COMPILE=${CROSS_TRIPLE}-
ENV ARCH=arm
ENV PATH ${PATH}:${CROSS_ROOT}/bin
ENV CROSS_COMPILE ${CROSS_TRIPLE}-
ENV ARCH arm
#include "common.label-and-env"
#include "common.label-and-env"

View File

@ -10,7 +10,7 @@ set(CMAKE_CXX_COMPILER $ENV{CXX})
set(CMAKE_CXX_FLAGS "-I ${cross_root}/include/")
list(APPEND CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

View File

@ -119,7 +119,7 @@ CT_LOG_EXTRA=y
# CT_LOG_DEBUG is not set
CT_LOG_LEVEL_MAX="EXTRA"
# CT_LOG_SEE_TOOLS_WARN is not set
CT_LOG_PROGRESS_BAR=n
CT_LOG_PROGRESS_BAR=y
CT_LOG_TO_FILE=y
CT_LOG_FILE_COMPRESS=y
# end of Paths and misc options

View File

@ -27,7 +27,6 @@ COPY \
imagefiles/build-and-install-ninja.sh \
imagefiles/build-and-install-openssl.sh \
imagefiles/build-and-install-openssh.sh \
imagefiles/build-and-install-rustup.sh \
imagefiles/install-cmake-binary.sh \
imagefiles/install-liquidprompt-binary.sh \
imagefiles/install-python-packages.sh \
@ -41,9 +40,8 @@ RUN \
/buildscripts/build-and-install-curl.sh && \
/buildscripts/build-and-install-git.sh && \
/buildscripts/build-and-install-cmake.sh $X86_FLAG && \
/buildscripts/build-and-install-rustup.sh && \
/buildscripts/install-liquidprompt-binary.sh && \
PYTHON=$([ -e /opt/python/cp311-cp311/bin/python ] && echo "/opt/python/cp311-cp311/bin/python" || echo "python3") && \
PYTHON=$([ -e /opt/python/cp38-cp38/bin/python ] && echo "/opt/python/cp38-cp38/bin/python" || echo "python3") && \
/buildscripts/install-python-packages.sh -python ${PYTHON} && \
/buildscripts/build-and-install-ninja.sh -python ${PYTHON} && \
/buildscripts/build-and-install-flatcc.sh && \

View File

@ -16,7 +16,6 @@ RUN \
wget \
nasm \
zip \
libatomic \
&& \
yum clean all && \
# Remove sudo provided by devtoolset since it doesn't work with

View File

@ -1,30 +0,0 @@
RUN \
set -x && \
yum upgrade -y almalinux-release && \
yum -y install \
gpg \
python3-devel \
zlib-devel \
gettext \
openssh-clients \
wget \
nasm \
zip \
&& \
yum clean all
# Image build scripts
COPY \
manylinux-common/install-python-packages.sh \
/buildscripts/
RUN \
set -x && \
# Remove sudo provided by devtoolset since it doesn't work with
# our sudo wrapper calling gosu.
rm -f /opt/rh/gcc-toolset-14/root/usr/bin/sudo && \
/buildscripts/install-python-packages.sh && \
rm -rf /buildscripts
# Runtime scripts
COPY manylinux-common/pre_exec.sh /dockcross/

View File

@ -43,10 +43,10 @@ RUN git clone --recurse-submodules https://github.com/WebAssembly/wabt.git && \
cd ../ && \
rm -rf wabt*
RUN mkdir -p /wasi-runtimes
RUN mkdir /wasi-runtimes
ENV WASMTIME_HOME=/wasi-runtimes/wasmtime
RUN mkdir -p ${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-threads.sh ${WASMTIME_HOME}/bin/
ENV PATH="$WASMTIME_HOME/bin:$PATH"

View File

@ -9,7 +9,7 @@
#
# For example:
#
# ENV WINEARCH=win64
# ENV WINEARCH win64
# ARG MXE_TARGET_ARCH=x86_64
# ARG MXE_TARGET_THREAD=
# ARG MXE_TARGET_LINK=shared
@ -18,7 +18,7 @@
# mxe master 2024-07-27
ARG MXE_GIT_TAG=9f349e0de62a4a68bfc0f13d835a6c685dae9daa
ENV CMAKE_TOOLCHAIN_FILE=/usr/src/mxe/usr/${MXE_TARGET_ARCH}-w64-mingw32.${MXE_TARGET_LINK}${MXE_TARGET_THREAD}/share/cmake/mxe-conf.cmake
ENV CMAKE_TOOLCHAIN_FILE /usr/src/mxe/usr/${MXE_TARGET_ARCH}-w64-mingw32.${MXE_TARGET_LINK}${MXE_TARGET_THREAD}/share/cmake/mxe-conf.cmake
ARG DEBIAN_FRONTEND=noninteractive
@ -125,15 +125,14 @@ RUN \
#
rm -rf /tmp/wine-*
ENV CROSS_ROOT=/usr/src/mxe/usr
ENV PATH=${PATH}:${CROSS_ROOT}/bin
ENV CROSS_TRIPLE=${MXE_TARGET_ARCH}-w64-mingw32.${MXE_TARGET_LINK}${MXE_TARGET_THREAD}
ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
AR=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ar \
CC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gcc \
CPP=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-cpp \
CXX=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-g++ \
LD=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ld \
FC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gfortran
ENV PATH ${PATH}:/usr/src/mxe/usr/bin
ENV CROSS_TRIPLE ${MXE_TARGET_ARCH}-w64-mingw32.${MXE_TARGET_LINK}${MXE_TARGET_THREAD}
ENV AS=/usr/src/mxe/usr/bin/${CROSS_TRIPLE}-as \
AR=/usr/src/mxe/usr/bin/${CROSS_TRIPLE}-ar \
CC=/usr/src/mxe/usr/bin/${CROSS_TRIPLE}-gcc \
CPP=/usr/src/mxe/usr/bin/${CROSS_TRIPLE}-cpp \
CXX=/usr/src/mxe/usr/bin/${CROSS_TRIPLE}-g++ \
LD=/usr/src/mxe/usr/bin/${CROSS_TRIPLE}-ld \
FC=/usr/src/mxe/usr/bin/${CROSS_TRIPLE}-gfortran
WORKDIR /work

View File

@ -92,7 +92,7 @@ function build_perl {
-fsSLO ${PERL_DOWNLOAD_URL}/${perl_fname}.tar.gz
check_sha256sum ${perl_fname}.tar.gz ${perl_sha256}
tar -xzf ${perl_fname}.tar.gz --no-same-owner
tar -xzf ${perl_fname}.tar.gz
(cd ${perl_fname} && do_perl_build)
rm -rf ${perl_fname} ${perl_fname}.tar.gz
}

View File

@ -1,10 +0,0 @@
#!/usr/bin/env bash
set -ex
if ! command -v curl &> /dev/null; then
echo >&2 'error: "curl" not found!'
exit 1
fi
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y

View File

@ -26,15 +26,8 @@ if [[ -n $BUILDER_UID ]] && [[ -n $BUILDER_GID ]]; then
groupadd -o -g "$BUILDER_GID" "$BUILDER_GROUP" 2> /dev/null
useradd -o -m -g "$BUILDER_GID" -u "$BUILDER_UID" "$BUILDER_USER" 2> /dev/null
# Change ownership of /dev/pts/0 to new user
chown "$BUILDER_UID" /dev/pts/0
export HOME=/home/${BUILDER_USER}
shopt -s dotglob
# Move rustup/cargo directories as they are large, and not needed as root
mv -t $HOME/ /root/.rustup /root/.cargo
# Copy the rest
cp -r /root/* $HOME/
chown -R $BUILDER_UID:$BUILDER_GID $HOME
@ -45,7 +38,7 @@ if [[ -n $BUILDER_UID ]] && [[ -n $BUILDER_GID ]]; then
# Enable passwordless sudo capabilities for the user
chown root:$BUILDER_GID "$(which gosu)"
chmod +s "$(which gosu)"
chmod +s "$(which gosu)"; sync
# Execute project specific pre execution hook
if [[ -e /work/.dockcross ]]; then

View File

@ -7,7 +7,7 @@ LABEL maintainer="Matt McCormick matt@mmmccormick.com"
# Buildroot version
# buildroot master 2021-09-20
ENV BR_VERSION=d4877e6f88d5eea54dc74b855556ffc0dd3f399f
ENV BR_VERSION d4877e6f88d5eea54dc74b855556ffc0dd3f399f
#include "common.buildroot"
@ -19,8 +19,8 @@ RUN apt-get update \
&& apt-get clean --yes
# The CROSS_TRIPLE is a configured alias of the "aarch64-buildroot-linux-gnu" target.
ENV CROSS_TRIPLE=aarch64-buildroot-linux-gnu
ENV CROSS_ROOT=/buildroot
ENV CROSS_TRIPLE aarch64-buildroot-linux-gnu
ENV CROSS_ROOT /buildroot
ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
AR=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ar \
CC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gcc \
@ -29,17 +29,17 @@ ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
LD=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ld \
FC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gfortran
ENV QEMU_LD_PREFIX="${CROSS_ROOT}/${CROSS_TRIPLE}/sysroot"
ENV QEMU_SET_ENV="LD_LIBRARY_PATH=${CROSS_ROOT}/lib:${QEMU_LD_PREFIX}"
ENV QEMU_LD_PREFIX "${CROSS_ROOT}/${CROSS_TRIPLE}/sysroot"
ENV QEMU_SET_ENV "LD_LIBRARY_PATH=${CROSS_ROOT}/lib:${QEMU_LD_PREFIX}"
COPY Toolchain.cmake ${CROSS_ROOT}/
ENV CMAKE_TOOLCHAIN_FILE=${CROSS_ROOT}/Toolchain.cmake
ENV CMAKE_TOOLCHAIN_FILE ${CROSS_ROOT}/Toolchain.cmake
#ENV PKG_CONFIG_PATH=/usr/lib/aarch64-linux-gnu/pkgconfig
#ENV PKG_CONFIG_PATH /usr/lib/aarch64-linux-gnu/pkgconfig
# Linux kernel cross compilation variables
ENV PATH=${PATH}:${CROSS_ROOT}/bin
ENV CROSS_COMPILE=${CROSS_TRIPLE}-
ENV ARCH=arm64
ENV PATH ${PATH}:${CROSS_ROOT}/bin
ENV CROSS_COMPILE ${CROSS_TRIPLE}-
ENV ARCH arm64
#include "common.label-and-env"

View File

@ -11,10 +11,10 @@ set(CMAKE_Fortran_COMPILER $ENV{FC})
set(CMAKE_CXX_FLAGS "-I ${cross_root}/include/")
list(APPEND CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(CMAKE_SYSROOT ${cross_root}/${cross_triple}/sysroot)

View File

@ -4,7 +4,7 @@ FROM ${ORG}/base:latest
# This is for 64-bit ARM Linux machine (Ubuntu 18.04 or Debian 9 mini)
# Crosstool-ng version 2022-05-19
ENV CT_VERSION=crosstool-ng-1.25.0
ENV CT_VERSION crosstool-ng-1.25.0
#include "common.crosstool"
@ -16,9 +16,9 @@ RUN apt-get update \
&& apt-get clean --yes
# The CROSS_TRIPLE is a configured alias of the "aarch64-unknown-linux-gnu" target.
ENV CROSS_TRIPLE=aarch64-unknown-linux-gnu
ENV CROSS_TRIPLE aarch64-unknown-linux-gnu
ENV CROSS_ROOT=${XCC_PREFIX}/${CROSS_TRIPLE}
ENV CROSS_ROOT ${XCC_PREFIX}/${CROSS_TRIPLE}
ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
AR=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ar \
CC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gcc \
@ -27,17 +27,17 @@ ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
LD=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ld \
FC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gfortran
ENV QEMU_LD_PREFIX="${CROSS_ROOT}/${CROSS_TRIPLE}/sysroot"
ENV QEMU_SET_ENV="LD_LIBRARY_PATH=${CROSS_ROOT}/lib:${QEMU_LD_PREFIX}"
ENV QEMU_LD_PREFIX "${CROSS_ROOT}/${CROSS_TRIPLE}/sysroot"
ENV QEMU_SET_ENV "LD_LIBRARY_PATH=${CROSS_ROOT}/lib:${QEMU_LD_PREFIX}"
COPY Toolchain.cmake ${CROSS_ROOT}/
ENV CMAKE_TOOLCHAIN_FILE=${CROSS_ROOT}/Toolchain.cmake
ENV CMAKE_TOOLCHAIN_FILE ${CROSS_ROOT}/Toolchain.cmake
ENV PKG_CONFIG_PATH=/usr/lib/aarch64-linux-gnu/pkgconfig
ENV PKG_CONFIG_PATH /usr/lib/aarch64-linux-gnu/pkgconfig
# Linux kernel cross compilation variables
ENV PATH=${PATH}:${CROSS_ROOT}/bin
ENV CROSS_COMPILE=${CROSS_TRIPLE}-
ENV ARCH=arm64
ENV PATH ${PATH}:${CROSS_ROOT}/bin
ENV CROSS_COMPILE ${CROSS_TRIPLE}-
ENV ARCH arm64
#include "common.label-and-env"

View File

@ -11,10 +11,10 @@ set(CMAKE_Fortran_COMPILER $ENV{FC})
set(CMAKE_CXX_FLAGS "-I ${cross_root}/include/")
list(APPEND CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(CMAKE_SYSROOT ${cross_root}/${cross_triple}/sysroot)
set(CMAKE_CROSSCOMPILING_EMULATOR /usr/bin/qemu-aarch64)

View File

@ -120,7 +120,7 @@ CT_LOG_EXTRA=y
# CT_LOG_DEBUG is not set
CT_LOG_LEVEL_MAX="EXTRA"
# CT_LOG_SEE_TOOLS_WARN is not set
CT_LOG_PROGRESS_BAR=n
CT_LOG_PROGRESS_BAR=y
CT_LOG_TO_FILE=y
CT_LOG_FILE_COMPRESS=y
# end of Paths and misc options

View File

@ -1,16 +1,13 @@
ARG ORG=dockcross
FROM ${ORG}/base:latest
ENV XCC_PREFIX=/usr/xcc
ENV CROSS_TRIPLE=aarch64-linux-musl
ENV CROSS_ROOT=${XCC_PREFIX}/${CROSS_TRIPLE}-cross
ENV XCC_PREFIX /usr/xcc
ENV CROSS_TRIPLE aarch64-linux-musl
ENV CROSS_ROOT ${XCC_PREFIX}/${CROSS_TRIPLE}-cross
RUN mkdir -p ${XCC_PREFIX}
# RUN curl --max-time 15 --retry 5 -LO https://musl.cc/${CROSS_TRIPLE}-cross.tgz
# RUN tar -C ${XCC_PREFIX} -xvf ${CROSS_TRIPLE}-cross.tgz
# Mirrored for reliability.
RUN curl --max-time 15 --retry 5 -LO https://github.com/dockcross/dockcross/releases/download/toolchain-sources/${CROSS_TRIPLE}-cross-retrieved-2025-06-07.tgz
RUN tar -C ${XCC_PREFIX} -xvf ${CROSS_TRIPLE}-cross-retrieved-2025-06-07.tgz
RUN curl --max-time 15 --retry 5 -LO http://musl.cc/${CROSS_TRIPLE}-cross.tgz
RUN tar -C ${XCC_PREFIX} -xvf ${CROSS_TRIPLE}-cross.tgz
ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
AR=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ar \
@ -20,19 +17,13 @@ ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
LD=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ld \
FC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gfortran
# Prepare Rust
ENV PATH="/root/.cargo/bin/:$PATH"
RUN rustup target add aarch64-unknown-linux-musl && cargo install --version 0.28.0 cbindgen
COPY config.toml /root/.cargo/
# Prepare CMake
COPY Toolchain.cmake ${CROSS_ROOT}/
ENV CMAKE_TOOLCHAIN_FILE=${CROSS_ROOT}/Toolchain.cmake
ENV CMAKE_TOOLCHAIN_FILE ${CROSS_ROOT}/Toolchain.cmake
# Linux kernel cross compilation variables
ENV PATH=${PATH}:${CROSS_ROOT}/bin
ENV CROSS_COMPILE=${CROSS_TRIPLE}-
ENV ARCH=arm64
ENV PATH ${PATH}:${CROSS_ROOT}/bin
ENV CROSS_COMPILE ${CROSS_TRIPLE}-
ENV ARCH arm64
# Build-time metadata as defined at http://label-schema.org
ARG BUILD_DATE
@ -41,9 +32,9 @@ ARG VERSION=latest
ARG VCS_REF
ARG VCS_URL
LABEL org.label-schema.build-date=$BUILD_DATE \
org.label-schema.name=$IMAGE \
org.label-schema.version=$VERSION \
org.label-schema.vcs-ref=$VCS_REF \
org.label-schema.vcs-url=$VCS_URL \
org.label-schema.schema-version="1.0"
ENV DEFAULT_DOCKCROSS_IMAGE=${IMAGE}:${VERSION}
org.label-schema.name=$IMAGE \
org.label-schema.version=$VERSION \
org.label-schema.vcs-ref=$VCS_REF \
org.label-schema.vcs-url=$VCS_URL \
org.label-schema.schema-version="1.0"
ENV DEFAULT_DOCKCROSS_IMAGE ${IMAGE}:${VERSION}

View File

@ -11,7 +11,7 @@ set(CMAKE_Fortran_COMPILER $ENV{FC})
set(CMAKE_CXX_FLAGS "-I ${cross_root}/include/")
list(APPEND CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)

View File

@ -1,7 +0,0 @@
[build]
target = "aarch64-unknown-linux-musl"
[target.aarch64-unknown-linux-musl]
ar = "/usr/xcc/aarch64-linux-musl-cross/bin/aarch64-linux-musl-ar"
linker = "/usr/xcc/aarch64-linux-musl-cross/bin/aarch64-linux-musl-ld"

View File

@ -1,6 +1,5 @@
ARG ORG=dockcross
ARG HOST_ARCH=amd64
FROM ${ORG}/base:latest-${HOST_ARCH}
FROM ${ORG}/base:latest
LABEL maintainer="Matt McCormick matt@mmmccormick.com"
@ -19,9 +18,9 @@ RUN apt-get update \
&& apt-get clean --yes
# The CROSS_TRIPLE is a configured alias of the "aarch64-unknown-linux-gnu" target.
ENV CROSS_TRIPLE=aarch64-unknown-linux-gnu
ENV CROSS_TRIPLE aarch64-unknown-linux-gnu
ENV CROSS_ROOT=${XCC_PREFIX}/${CROSS_TRIPLE}
ENV CROSS_ROOT ${XCC_PREFIX}/${CROSS_TRIPLE}
ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
AR=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ar \
CC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gcc \
@ -30,17 +29,17 @@ ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
LD=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ld \
FC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gfortran
ENV QEMU_LD_PREFIX="${CROSS_ROOT}/${CROSS_TRIPLE}/sysroot"
ENV QEMU_SET_ENV="LD_LIBRARY_PATH=${CROSS_ROOT}/lib:${QEMU_LD_PREFIX}"
ENV QEMU_LD_PREFIX "${CROSS_ROOT}/${CROSS_TRIPLE}/sysroot"
ENV QEMU_SET_ENV "LD_LIBRARY_PATH=${CROSS_ROOT}/lib:${QEMU_LD_PREFIX}"
COPY Toolchain.cmake ${CROSS_ROOT}/
ENV CMAKE_TOOLCHAIN_FILE=${CROSS_ROOT}/Toolchain.cmake
ENV CMAKE_TOOLCHAIN_FILE ${CROSS_ROOT}/Toolchain.cmake
ENV PKG_CONFIG_PATH=/usr/lib/aarch64-linux-gnu/pkgconfig
ENV PKG_CONFIG_PATH /usr/lib/aarch64-linux-gnu/pkgconfig
# Linux kernel cross compilation variables
ENV PATH=${PATH}:${CROSS_ROOT}/bin
ENV CROSS_COMPILE=${CROSS_TRIPLE}-
ENV ARCH=arm64
ENV PATH ${PATH}:${CROSS_ROOT}/bin
ENV CROSS_COMPILE ${CROSS_TRIPLE}-
ENV ARCH arm64
#include "common.label-and-env"

View File

@ -11,10 +11,10 @@ set(CMAKE_Fortran_COMPILER $ENV{FC})
set(CMAKE_CXX_FLAGS "-I ${cross_root}/include/")
list(APPEND CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(CMAKE_SYSROOT ${cross_root}/${cross_triple}/sysroot)
set(CMAKE_CROSSCOMPILING_EMULATOR /usr/bin/qemu-aarch64)

View File

@ -120,7 +120,7 @@ CT_LOG_EXTRA=y
# CT_LOG_DEBUG is not set
CT_LOG_LEVEL_MAX="EXTRA"
# CT_LOG_SEE_TOOLS_WARN is not set
CT_LOG_PROGRESS_BAR=n
CT_LOG_PROGRESS_BAR=y
CT_LOG_TO_FILE=y
CT_LOG_FILE_COMPRESS=y
# end of Paths and misc options

View File

@ -8,7 +8,7 @@ LABEL maintainer="Matt McCormick matt@mmmccormick.com"
# musleabi as default glibc
# Crosstool-ng version 2022-05-19
ENV CT_VERSION=crosstool-ng-1.25.0
ENV CT_VERSION crosstool-ng-1.25.0
#include "common.crosstool"
@ -20,8 +20,8 @@ RUN apt-get update \
&& apt-get clean --yes
# The CROSS_TRIPLE is a configured alias of the "armv5-unknown-linux-musleabi" target.
ENV CROSS_TRIPLE=armv5-unknown-linux-musleabi
ENV CROSS_ROOT=${XCC_PREFIX}/${CROSS_TRIPLE}
ENV CROSS_TRIPLE armv5-unknown-linux-musleabi
ENV CROSS_ROOT ${XCC_PREFIX}/${CROSS_TRIPLE}
ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
AR=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ar \
CC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gcc \
@ -30,17 +30,17 @@ ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
LD=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ld \
FC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gfortran
ENV QEMU_LD_PREFIX="${CROSS_ROOT}/${CROSS_TRIPLE}/sysroot"
ENV QEMU_SET_ENV="LD_LIBRARY_PATH=${CROSS_ROOT}/lib:${QEMU_LD_PREFIX}"
ENV QEMU_LD_PREFIX "${CROSS_ROOT}/${CROSS_TRIPLE}/sysroot"
ENV QEMU_SET_ENV "LD_LIBRARY_PATH=${CROSS_ROOT}/lib:${QEMU_LD_PREFIX}"
COPY Toolchain.cmake ${CROSS_ROOT}/
ENV CMAKE_TOOLCHAIN_FILE=${CROSS_ROOT}/Toolchain.cmake
ENV CMAKE_TOOLCHAIN_FILE ${CROSS_ROOT}/Toolchain.cmake
ENV PKG_CONFIG_PATH=/usr/lib/arm-linux-musleabihf/
ENV PKG_CONFIG_PATH /usr/lib/arm-linux-musleabihf/
# Linux kernel cross compilation variables
ENV PATH=${PATH}:${CROSS_ROOT}/bin
ENV CROSS_COMPILE=${CROSS_TRIPLE}-
ENV ARCH=arm
ENV PATH ${PATH}:${CROSS_ROOT}/bin
ENV CROSS_COMPILE ${CROSS_TRIPLE}-
ENV ARCH arm
#include "common.label-and-env"

View File

@ -10,10 +10,10 @@ set(CMAKE_Fortran_COMPILER $ENV{FC})
set(CMAKE_CXX_FLAGS "-I ${cross_root}/include/")
list(APPEND CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(CMAKE_SYSROOT ${cross_root}/${cross_triple}/sysroot)
set(CMAKE_CROSSCOMPILING_EMULATOR /usr/bin/qemu-arm)

View File

@ -124,7 +124,7 @@ CT_LOG_EXTRA=y
# CT_LOG_DEBUG is not set
CT_LOG_LEVEL_MAX="EXTRA"
# CT_LOG_SEE_TOOLS_WARN is not set
CT_LOG_PROGRESS_BAR=n
CT_LOG_PROGRESS_BAR=y
CT_LOG_TO_FILE=y
CT_LOG_FILE_COMPRESS=y
# end of Paths and misc options

View File

@ -4,7 +4,7 @@ FROM ${ORG}/base:latest
LABEL maintainer="Matt McCormick matt@mmmccormick.com"
# Crosstool-ng version 2022-05-19
ENV CT_VERSION=crosstool-ng-1.25.0
ENV CT_VERSION crosstool-ng-1.25.0
# This is for compiling binaries for arm routers with uclibc (e.g ddwrt, asuswrt)
#include "common.crosstool"
@ -16,8 +16,8 @@ RUN apt-get update \
qemu-user-static \
&& apt-get clean --yes
ENV CROSS_TRIPLE=arm-unknown-linux-uclibcgnueabi
ENV CROSS_ROOT=${XCC_PREFIX}/${CROSS_TRIPLE}
ENV CROSS_TRIPLE arm-unknown-linux-uclibcgnueabi
ENV CROSS_ROOT ${XCC_PREFIX}/${CROSS_TRIPLE}
ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
AR=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ar \
CC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gcc \
@ -26,17 +26,17 @@ ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
LD=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ld \
FC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gfortran
ENV QEMU_LD_PREFIX="${CROSS_ROOT}/${CROSS_TRIPLE}/sysroot"
ENV QEMU_SET_ENV="LD_LIBRARY_PATH=${CROSS_ROOT}/lib:${QEMU_LD_PREFIX}"
ENV QEMU_LD_PREFIX "${CROSS_ROOT}/${CROSS_TRIPLE}/sysroot"
ENV QEMU_SET_ENV "LD_LIBRARY_PATH=${CROSS_ROOT}/lib:${QEMU_LD_PREFIX}"
COPY Toolchain.cmake /usr/lib/${CROSS_ROOT}/
ENV CMAKE_TOOLCHAIN_FILE=/usr/lib/${CROSS_ROOT}/Toolchain.cmake
ENV CMAKE_TOOLCHAIN_FILE /usr/lib/${CROSS_ROOT}/Toolchain.cmake
ENV PKG_CONFIG_PATH=/usr/lib/{CROSS_ROOT}/pkgconfig/
ENV PKG_CONFIG_PATH /usr/lib/{CROSS_ROOT}/pkgconfig/
# Linux kernel cross compilation variables
ENV PATH=${PATH}:${CROSS_ROOT}/bin
ENV CROSS_COMPILE=${CROSS_TRIPLE}-
ENV ARCH=arm
ENV PATH ${PATH}:${CROSS_ROOT}/bin
ENV CROSS_COMPILE ${CROSS_TRIPLE}-
ENV ARCH arm
#include "common.label-and-env"

View File

@ -11,10 +11,10 @@ set(CMAKE_Fortran_COMPILER $ENV{FC})
set(CMAKE_CXX_FLAGS "-I ${cross_root}/include/")
list(APPEND CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(CMAKE_SYSROOT ${cross_root}/${cross_triple}/sysroot)
set(CMAKE_CROSSCOMPILING_EMULATOR /usr/bin/qemu-arm)

View File

@ -120,7 +120,7 @@ CT_LOG_EXTRA=y
# CT_LOG_DEBUG is not set
CT_LOG_LEVEL_MAX="EXTRA"
# CT_LOG_SEE_TOOLS_WARN is not set
CT_LOG_PROGRESS_BAR=n
CT_LOG_PROGRESS_BAR=y
CT_LOG_TO_FILE=y
CT_LOG_FILE_COMPRESS=y
# end of Paths and misc options

View File

@ -7,7 +7,7 @@ LABEL maintainer="Matt McCormick matt@mmmccormick.com"
# VFP instructions (armhf).
# Crosstool-ng version 2022-05-19
ENV CT_VERSION=crosstool-ng-1.25.0
ENV CT_VERSION crosstool-ng-1.25.0
#include "common.crosstool"
@ -22,8 +22,8 @@ RUN apt-get update \
# The CROSS_TRIPLE is a configured alias of the "aarch64-unknown-linux-gnueabi" target.
ENV CROSS_TRIPLE=armv5-unknown-linux-gnueabi
ENV CROSS_ROOT=${XCC_PREFIX}/${CROSS_TRIPLE}
ENV CROSS_TRIPLE armv5-unknown-linux-gnueabi
ENV CROSS_ROOT ${XCC_PREFIX}/${CROSS_TRIPLE}
ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
AR=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ar \
CC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gcc \
@ -32,17 +32,17 @@ ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
LD=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ld \
FC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gfortran
ENV QEMU_LD_PREFIX="${CROSS_ROOT}/${CROSS_TRIPLE}/sysroot"
ENV QEMU_SET_ENV="LD_LIBRARY_PATH=${CROSS_ROOT}/lib:${QEMU_LD_PREFIX}"
ENV QEMU_LD_PREFIX "${CROSS_ROOT}/${CROSS_TRIPLE}/sysroot"
ENV QEMU_SET_ENV "LD_LIBRARY_PATH=${CROSS_ROOT}/lib:${QEMU_LD_PREFIX}"
COPY Toolchain.cmake ${CROSS_ROOT}/
ENV CMAKE_TOOLCHAIN_FILE=${CROSS_ROOT}/Toolchain.cmake
ENV CMAKE_TOOLCHAIN_FILE ${CROSS_ROOT}/Toolchain.cmake
ENV PKG_CONFIG_PATH=/usr/lib/arm-linux-gnueabi/pkgconfig
ENV PKG_CONFIG_PATH /usr/lib/arm-linux-gnueabi/pkgconfig
# Linux kernel cross compilation variables
ENV PATH=${PATH}:${CROSS_ROOT}/bin
ENV CROSS_COMPILE=${CROSS_TRIPLE}-
ENV ARCH=arm
ENV PATH ${PATH}:${CROSS_ROOT}/bin
ENV CROSS_COMPILE ${CROSS_TRIPLE}-
ENV ARCH arm
#include "common.label-and-env"

View File

@ -11,10 +11,10 @@ set(CMAKE_Fortran_COMPILER $ENV{FC})
set(CMAKE_CXX_FLAGS "-I ${cross_root}/include/")
list(APPEND CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(CMAKE_SYSROOT ${cross_root}/${cross_triple}/sysroot)
set(CMAKE_CROSSCOMPILING_EMULATOR /usr/bin/qemu-arm)

View File

@ -120,7 +120,7 @@ CT_LOG_EXTRA=y
# CT_LOG_DEBUG is not set
CT_LOG_LEVEL_MAX="EXTRA"
# CT_LOG_SEE_TOOLS_WARN is not set
CT_LOG_PROGRESS_BAR=n
CT_LOG_PROGRESS_BAR=y
CT_LOG_TO_FILE=y
CT_LOG_FILE_COMPRESS=y
# end of Paths and misc options

View File

@ -4,7 +4,7 @@ FROM ${ORG}/base:latest
LABEL maintainer="Matt McCormick matt@mmmccormick.com"
# Crosstool-ng version 2022-05-19
ENV CT_VERSION=crosstool-ng-1.25.0
ENV CT_VERSION crosstool-ng-1.25.0
# This is for 32-bit ARMv6 Linux
# Raspberry Pi is ARMv6+VFP2
@ -19,8 +19,8 @@ RUN apt-get update \
# The CROSS_TRIPLE is a configured alias of the "armv6-unknown-linux-gnueabihf" target.
ENV CROSS_TRIPLE=armv6-unknown-linux-gnueabihf
ENV CROSS_ROOT=${XCC_PREFIX}/${CROSS_TRIPLE}
ENV CROSS_TRIPLE armv6-unknown-linux-gnueabihf
ENV CROSS_ROOT ${XCC_PREFIX}/${CROSS_TRIPLE}
ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
AR=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ar \
CC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gcc \
@ -29,17 +29,17 @@ ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
LD=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ld \
FC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gfortran
ENV QEMU_LD_PREFIX="${CROSS_ROOT}/${CROSS_TRIPLE}/sysroot"
ENV QEMU_SET_ENV="LD_LIBRARY_PATH=${CROSS_ROOT}/lib:${QEMU_LD_PREFIX}"
ENV QEMU_LD_PREFIX "${CROSS_ROOT}/${CROSS_TRIPLE}/sysroot"
ENV QEMU_SET_ENV "LD_LIBRARY_PATH=${CROSS_ROOT}/lib:${QEMU_LD_PREFIX}"
COPY Toolchain.cmake ${CROSS_ROOT}/
ENV CMAKE_TOOLCHAIN_FILE=${CROSS_ROOT}/Toolchain.cmake
ENV CMAKE_TOOLCHAIN_FILE ${CROSS_ROOT}/Toolchain.cmake
ENV PKG_CONFIG_PATH=/usr/lib/arm-linux-gnueabihf/
ENV PKG_CONFIG_PATH /usr/lib/arm-linux-gnueabihf/
# Linux kernel cross compilation variables
ENV PATH=${PATH}:${CROSS_ROOT}/bin
ENV CROSS_COMPILE=${CROSS_TRIPLE}-
ENV ARCH=arm
ENV PATH ${PATH}:${CROSS_ROOT}/bin
ENV CROSS_COMPILE ${CROSS_TRIPLE}-
ENV ARCH arm
#include "common.label-and-env"

View File

@ -11,10 +11,10 @@ set(CMAKE_Fortran_COMPILER $ENV{FC})
set(CMAKE_CXX_FLAGS "-I ${cross_root}/include/")
list(APPEND CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(CMAKE_SYSROOT ${cross_root}/${cross_triple}/sysroot)
set(CMAKE_CROSSCOMPILING_EMULATOR /usr/bin/qemu-arm)

View File

@ -120,7 +120,7 @@ CT_LOG_EXTRA=y
# CT_LOG_DEBUG is not set
CT_LOG_LEVEL_MAX="EXTRA"
# CT_LOG_SEE_TOOLS_WARN is not set
CT_LOG_PROGRESS_BAR=n
CT_LOG_PROGRESS_BAR=y
CT_LOG_TO_FILE=y
CT_LOG_FILE_COMPRESS=y
# end of Paths and misc options

View File

@ -1,16 +1,13 @@
ARG ORG=dockcross
FROM ${ORG}/base:latest
ENV XCC_PREFIX=/usr/xcc
ENV CROSS_TRIPLE=armv6-linux-musleabihf
ENV CROSS_ROOT=${XCC_PREFIX}/${CROSS_TRIPLE}-cross
ENV XCC_PREFIX /usr/xcc
ENV CROSS_TRIPLE armv6-linux-musleabihf
ENV CROSS_ROOT ${XCC_PREFIX}/${CROSS_TRIPLE}-cross
RUN mkdir -p ${XCC_PREFIX}
# RUN curl --max-time 15 --retry 5 -LO https://musl.cc/${CROSS_TRIPLE}-cross.tgz
# RUN tar -C ${XCC_PREFIX} -xvf ${CROSS_TRIPLE}-cross.tgz
# Mirrored for reliability
RUN curl --max-time 15 --retry 5 -LO https://github.com/dockcross/dockcross/releases/download/toolchain-sources/${CROSS_TRIPLE}-cross-retrieved-2025-06-07.tgz
RUN tar -C ${XCC_PREFIX} -xvf ${CROSS_TRIPLE}-cross-retrieved-2025-06-07.tgz
RUN curl --max-time 15 --retry 5 -LO http://musl.cc/${CROSS_TRIPLE}-cross.tgz
RUN tar -C ${XCC_PREFIX} -xvf ${CROSS_TRIPLE}-cross.tgz
ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
AR=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ar \
@ -21,12 +18,12 @@ ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
FC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gfortran
COPY Toolchain.cmake ${CROSS_ROOT}/
ENV CMAKE_TOOLCHAIN_FILE=${CROSS_ROOT}/Toolchain.cmake
ENV CMAKE_TOOLCHAIN_FILE ${CROSS_ROOT}/Toolchain.cmake
# Linux kernel cross compilation variables
ENV PATH=${PATH}:${CROSS_ROOT}/bin
ENV CROSS_COMPILE=${CROSS_TRIPLE}-
ENV ARCH=arm
ENV PATH ${PATH}:${CROSS_ROOT}/bin
ENV CROSS_COMPILE ${CROSS_TRIPLE}-
ENV ARCH arm
# Build-time metadata as defined at http://label-schema.org
ARG BUILD_DATE
@ -40,4 +37,4 @@ LABEL org.label-schema.build-date=$BUILD_DATE \
org.label-schema.vcs-ref=$VCS_REF \
org.label-schema.vcs-url=$VCS_URL \
org.label-schema.schema-version="1.0"
ENV DEFAULT_DOCKCROSS_IMAGE=${IMAGE}:${VERSION}
ENV DEFAULT_DOCKCROSS_IMAGE ${IMAGE}:${VERSION}

View File

@ -11,7 +11,7 @@ set(CMAKE_Fortran_COMPILER $ENV{FC})
set(CMAKE_CXX_FLAGS "-I ${cross_root}/include/")
list(APPEND CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)

View File

@ -4,7 +4,7 @@ FROM ${ORG}/base:latest
LABEL maintainer="Matt McCormick matt@mmmccormick.com"
# Crosstool-ng version 2022-05-19
ENV CT_VERSION=crosstool-ng-1.25.0
ENV CT_VERSION crosstool-ng-1.25.0
# This is for 32-bit ARMv6 Linux
# Raspberry Pi is ARMv6+VFP2
@ -19,8 +19,8 @@ RUN apt-get update \
# The CROSS_TRIPLE is a configured alias of the "armv6-unknown-linux-gnueabihf" target.
ENV CROSS_TRIPLE=armv6-unknown-linux-gnueabihf
ENV CROSS_ROOT=${XCC_PREFIX}/${CROSS_TRIPLE}
ENV CROSS_TRIPLE armv6-unknown-linux-gnueabihf
ENV CROSS_ROOT ${XCC_PREFIX}/${CROSS_TRIPLE}
ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
AR=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ar \
CC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gcc \
@ -29,17 +29,17 @@ ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
LD=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ld \
FC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gfortran
ENV QEMU_LD_PREFIX="${CROSS_ROOT}/${CROSS_TRIPLE}/sysroot"
ENV QEMU_SET_ENV="LD_LIBRARY_PATH=${CROSS_ROOT}/lib:${QEMU_LD_PREFIX}"
ENV QEMU_LD_PREFIX "${CROSS_ROOT}/${CROSS_TRIPLE}/sysroot"
ENV QEMU_SET_ENV "LD_LIBRARY_PATH=${CROSS_ROOT}/lib:${QEMU_LD_PREFIX}"
COPY Toolchain.cmake ${CROSS_ROOT}/
ENV CMAKE_TOOLCHAIN_FILE=${CROSS_ROOT}/Toolchain.cmake
ENV CMAKE_TOOLCHAIN_FILE ${CROSS_ROOT}/Toolchain.cmake
ENV PKG_CONFIG_PATH=/usr/lib/arm-linux-gnueabihf/
ENV PKG_CONFIG_PATH /usr/lib/arm-linux-gnueabihf/
# Linux kernel cross compilation variables
ENV PATH=${PATH}:${CROSS_ROOT}/bin
ENV CROSS_COMPILE=${CROSS_TRIPLE}-
ENV ARCH=arm
ENV PATH ${PATH}:${CROSS_ROOT}/bin
ENV CROSS_COMPILE ${CROSS_TRIPLE}-
ENV ARCH arm
#include "common.label-and-env"

View File

@ -10,10 +10,10 @@ set(CMAKE_Fortran_COMPILER $ENV{FC})
set(CMAKE_CXX_FLAGS "-I ${cross_root}/include/")
list(APPEND CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(CMAKE_SYSROOT ${cross_root}/${cross_triple}/sysroot)
set(CMAKE_CROSSCOMPILING_EMULATOR /usr/bin/qemu-arm)

View File

@ -120,7 +120,7 @@ CT_LOG_EXTRA=y
# CT_LOG_DEBUG is not set
CT_LOG_LEVEL_MAX="EXTRA"
# CT_LOG_SEE_TOOLS_WARN is not set
CT_LOG_PROGRESS_BAR=n
CT_LOG_PROGRESS_BAR=y
CT_LOG_TO_FILE=y
CT_LOG_FILE_COMPRESS=y
# end of Paths and misc options

View File

@ -4,7 +4,7 @@ FROM ${ORG}/base:latest
LABEL maintainer="Matt McCormick matt@mmmccormick.com"
# Crosstool-ng version 2022-05-19
ENV CT_VERSION=crosstool-ng-1.25.0
ENV CT_VERSION crosstool-ng-1.25.0
# This is for 32-bit ARMv7 Linux
#include "common.crosstool"
@ -18,8 +18,8 @@ RUN apt-get update \
# The CROSS_TRIPLE is a configured alias of the "armv7-unknown-linux-gnueabi" target.
ENV CROSS_TRIPLE=armv7-unknown-linux-gnueabi
ENV CROSS_ROOT=${XCC_PREFIX}/${CROSS_TRIPLE}
ENV CROSS_TRIPLE armv7-unknown-linux-gnueabi
ENV CROSS_ROOT ${XCC_PREFIX}/${CROSS_TRIPLE}
ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
AR=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ar \
CC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gcc \
@ -28,17 +28,17 @@ ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
LD=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ld \
FC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gfortran
ENV QEMU_LD_PREFIX="${CROSS_ROOT}/${CROSS_TRIPLE}/sysroot"
ENV QEMU_SET_ENV="LD_LIBRARY_PATH=${CROSS_ROOT}/lib:${QEMU_LD_PREFIX}"
ENV QEMU_LD_PREFIX "${CROSS_ROOT}/${CROSS_TRIPLE}/sysroot"
ENV QEMU_SET_ENV "LD_LIBRARY_PATH=${CROSS_ROOT}/lib:${QEMU_LD_PREFIX}"
COPY Toolchain.cmake ${CROSS_ROOT}/
ENV CMAKE_TOOLCHAIN_FILE=${CROSS_ROOT}/Toolchain.cmake
ENV CMAKE_TOOLCHAIN_FILE ${CROSS_ROOT}/Toolchain.cmake
ENV PKG_CONFIG_PATH=/usr/lib/arm-linux-gnueabihf/
ENV PKG_CONFIG_PATH /usr/lib/arm-linux-gnueabihf/
# Linux kernel cross compilation variables
ENV PATH=${PATH}:${CROSS_ROOT}/bin
ENV CROSS_COMPILE=${CROSS_TRIPLE}-
ENV ARCH=arm
ENV PATH ${PATH}:${CROSS_ROOT}/bin
ENV CROSS_COMPILE ${CROSS_TRIPLE}-
ENV ARCH arm
#include "common.label-and-env"

View File

@ -11,10 +11,10 @@ set(CMAKE_Fortran_COMPILER $ENV{FC})
set(CMAKE_CXX_FLAGS "-I ${cross_root}/include/")
list(APPEND CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(CMAKE_SYSROOT ${cross_root}/${cross_triple}/sysroot)
set(CMAKE_CROSSCOMPILING_EMULATOR /usr/bin/qemu-arm)

View File

@ -120,7 +120,7 @@ CT_LOG_EXTRA=y
# CT_LOG_DEBUG is not set
CT_LOG_LEVEL_MAX="EXTRA"
# CT_LOG_SEE_TOOLS_WARN is not set
CT_LOG_PROGRESS_BAR=n
CT_LOG_PROGRESS_BAR=y
CT_LOG_TO_FILE=y
CT_LOG_FILE_COMPRESS=y
# end of Paths and misc options

View File

@ -4,7 +4,7 @@ FROM ${ORG}/base:latest
LABEL maintainer="Matt McCormick matt@mmmccormick.com"
# Crosstool-ng version 2022-05-19
ENV CT_VERSION=crosstool-ng-1.25.0
ENV CT_VERSION crosstool-ng-1.25.0
# This is for 32-bit ARMv7 Linux
#include "common.crosstool"
@ -18,8 +18,8 @@ RUN apt-get update \
# The CROSS_TRIPLE is a configured alias of the "aarch64-unknown-linux-gnueabi" target.
ENV CROSS_TRIPLE=armv7-unknown-linux-gnueabi
ENV CROSS_ROOT=${XCC_PREFIX}/${CROSS_TRIPLE}
ENV CROSS_TRIPLE armv7-unknown-linux-gnueabi
ENV CROSS_ROOT ${XCC_PREFIX}/${CROSS_TRIPLE}
ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
AR=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ar \
CC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gcc \
@ -28,17 +28,17 @@ ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
LD=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ld \
FC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gfortran
ENV QEMU_LD_PREFIX="${CROSS_ROOT}/${CROSS_TRIPLE}/sysroot"
ENV QEMU_SET_ENV="LD_LIBRARY_PATH=${CROSS_ROOT}/lib:${QEMU_LD_PREFIX}"
ENV QEMU_LD_PREFIX "${CROSS_ROOT}/${CROSS_TRIPLE}/sysroot"
ENV QEMU_SET_ENV "LD_LIBRARY_PATH=${CROSS_ROOT}/lib:${QEMU_LD_PREFIX}"
COPY Toolchain.cmake ${CROSS_ROOT}/
ENV CMAKE_TOOLCHAIN_FILE=${CROSS_ROOT}/Toolchain.cmake
ENV CMAKE_TOOLCHAIN_FILE ${CROSS_ROOT}/Toolchain.cmake
ENV PKG_CONFIG_PATH=/usr/lib/arm-linux-gnueabihf/
ENV PKG_CONFIG_PATH /usr/lib/arm-linux-gnueabihf/
# Linux kernel cross compilation variables
ENV PATH=${PATH}:${CROSS_ROOT}/bin
ENV CROSS_COMPILE=${CROSS_TRIPLE}-
ENV ARCH=arm
ENV PATH ${PATH}:${CROSS_ROOT}/bin
ENV CROSS_COMPILE ${CROSS_TRIPLE}-
ENV ARCH arm
#include "common.label-and-env"

View File

@ -11,10 +11,10 @@ set(CMAKE_Fortran_COMPILER $ENV{FC})
set(CMAKE_CXX_FLAGS "-I ${cross_root}/include/")
list(APPEND CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(CMAKE_SYSROOT ${cross_root}/${cross_triple}/sysroot)
set(CMAKE_CROSSCOMPILING_EMULATOR /usr/bin/qemu-arm)

View File

@ -120,7 +120,7 @@ CT_LOG_EXTRA=y
# CT_LOG_DEBUG is not set
CT_LOG_LEVEL_MAX="EXTRA"
# CT_LOG_SEE_TOOLS_WARN is not set
CT_LOG_PROGRESS_BAR=n
CT_LOG_PROGRESS_BAR=y
CT_LOG_TO_FILE=y
CT_LOG_FILE_COMPRESS=y
# end of Paths and misc options

View File

@ -7,7 +7,7 @@ LABEL maintainer="Matt McCormick matt@mmmccormick.com"
# We use a git commit while waiting for 1.25 to release (1.24 is several years old)
# crosstool-ng 1.25.0
ENV CT_VERSION=crosstool-ng-1.25.0
ENV CT_VERSION crosstool-ng-1.25.0
#include "common.crosstool"
@ -20,9 +20,9 @@ RUN apt-get update \
# The CROSS_TRIPLE is a configured alias of the "aarch64-unknown-linux-gnueabi" target.
ENV CROSS_TRIPLE=arm-cortexa8_neon-linux-gnueabihf
ENV CROSS_TRIPLE arm-cortexa8_neon-linux-gnueabihf
ENV CROSS_ROOT=${XCC_PREFIX}/${CROSS_TRIPLE}
ENV CROSS_ROOT ${XCC_PREFIX}/${CROSS_TRIPLE}
ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
AR=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ar \
CC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gcc \
@ -31,19 +31,19 @@ ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
LD=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ld \
FC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gfortran
ENV QEMU_LD_PREFIX="${CROSS_ROOT}/${CROSS_TRIPLE}/sysroot"
ENV QEMU_SET_ENV="LD_LIBRARY_PATH=${CROSS_ROOT}/lib:${QEMU_LD_PREFIX}"
ENV QEMU_LD_PREFIX "${CROSS_ROOT}/${CROSS_TRIPLE}/sysroot"
ENV QEMU_SET_ENV "LD_LIBRARY_PATH=${CROSS_ROOT}/lib:${QEMU_LD_PREFIX}"
ENV DEFAULT_DOCKCROSS_IMAGE=dockcross/linux-armv7a
ENV DEFAULT_DOCKCROSS_IMAGE dockcross/linux-armv7a
COPY Toolchain.cmake ${CROSS_ROOT}/
ENV CMAKE_TOOLCHAIN_FILE=${CROSS_ROOT}/Toolchain.cmake
ENV CMAKE_TOOLCHAIN_FILE ${CROSS_ROOT}/Toolchain.cmake
ENV PKG_CONFIG_PATH=/usr/lib/arm-linux-gnueabihf/pkgconfig
ENV PKG_CONFIG_PATH /usr/lib/arm-linux-gnueabihf/pkgconfig
# Linux kernel cross compilation variables
ENV PATH=${PATH}:${CROSS_ROOT}/bin
ENV CROSS_COMPILE=${CROSS_TRIPLE}-
ENV ARCH=arm
ENV PATH ${PATH}:${CROSS_ROOT}/bin
ENV CROSS_COMPILE ${CROSS_TRIPLE}-
ENV ARCH arm
#include "common.label-and-env"

View File

@ -11,10 +11,10 @@ set(CMAKE_Fortran_COMPILER $ENV{FC})
set(CMAKE_CXX_FLAGS "-I ${cross_root}/include/")
list(APPEND CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(CMAKE_SYSROOT ${cross_root}/${cross_triple}/sysroot)
set(CMAKE_CROSSCOMPILING_EMULATOR /usr/bin/qemu-arm)

View File

@ -116,7 +116,7 @@ CT_LOG_EXTRA=y
# CT_LOG_DEBUG is not set
CT_LOG_LEVEL_MAX="EXTRA"
# CT_LOG_SEE_TOOLS_WARN is not set
CT_LOG_PROGRESS_BAR=n
CT_LOG_PROGRESS_BAR=y
CT_LOG_TO_FILE=y
CT_LOG_FILE_COMPRESS=y
# end of Paths and misc options

View File

@ -6,7 +6,7 @@ LABEL maintainer="Matt McCormick matt@mmmccormick.com"
# This is for 32-bit ARMv7 Linux
# Crosstool-ng version 2024-05-21
ENV CT_VERSION=crosstool-ng-1.26.0
ENV CT_VERSION crosstool-ng-1.26.0
#include "common.crosstool"
@ -19,9 +19,9 @@ RUN apt-get update \
# The CROSS_TRIPLE is a configured alias of the "aarch64-unknown-linux-gnueabi" target.
#ENV CROSS_TRIPLE=armv7-unknown-linux-gnueabi
ENV CROSS_TRIPLE=arm-cortexa8_neon-linux-gnueabihf
ENV CROSS_ROOT=${XCC_PREFIX}/${CROSS_TRIPLE}
#ENV CROSS_TRIPLE armv7-unknown-linux-gnueabi
ENV CROSS_TRIPLE arm-cortexa8_neon-linux-gnueabihf
ENV CROSS_ROOT ${XCC_PREFIX}/${CROSS_TRIPLE}
ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
AR=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ar \
CC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gcc \
@ -30,19 +30,19 @@ ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
LD=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ld \
FC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gfortran
ENV QEMU_LD_PREFIX="${CROSS_ROOT}/${CROSS_TRIPLE}/sysroot"
ENV QEMU_SET_ENV="LD_LIBRARY_PATH=${CROSS_ROOT}/lib:${QEMU_LD_PREFIX}"
ENV QEMU_LD_PREFIX "${CROSS_ROOT}/${CROSS_TRIPLE}/sysroot"
ENV QEMU_SET_ENV "LD_LIBRARY_PATH=${CROSS_ROOT}/lib:${QEMU_LD_PREFIX}"
ENV DEFAULT_DOCKCROSS_IMAGE=dockcross/linux-armv7a
ENV DEFAULT_DOCKCROSS_IMAGE dockcross/linux-armv7a
COPY Toolchain.cmake ${CROSS_ROOT}/
ENV CMAKE_TOOLCHAIN_FILE=${CROSS_ROOT}/Toolchain.cmake
ENV CMAKE_TOOLCHAIN_FILE ${CROSS_ROOT}/Toolchain.cmake
ENV PKG_CONFIG_PATH=/usr/lib/arm-linux-gnueabihf/
ENV PKG_CONFIG_PATH /usr/lib/arm-linux-gnueabihf/
# Linux kernel cross compilation variables
ENV PATH=${PATH}:${CROSS_ROOT}/bin
ENV CROSS_COMPILE=${CROSS_TRIPLE}-
ENV ARCH=arm
ENV PATH ${PATH}:${CROSS_ROOT}/bin
ENV CROSS_COMPILE ${CROSS_TRIPLE}-
ENV ARCH arm
#include "common.label-and-env"

View File

@ -11,10 +11,10 @@ set(CMAKE_Fortran_COMPILER $ENV{FC})
set(CMAKE_CXX_FLAGS "-I ${cross_root}/include/")
list(APPEND CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(CMAKE_SYSROOT ${cross_root}/${cross_triple}/sysroot)
set(CMAKE_CROSSCOMPILING_EMULATOR /usr/bin/qemu-arm)

View File

@ -120,7 +120,7 @@ CT_LOG_EXTRA=y
# CT_LOG_DEBUG is not set
CT_LOG_LEVEL_MAX="EXTRA"
# CT_LOG_SEE_TOOLS_WARN is not set
CT_LOG_PROGRESS_BAR=n
CT_LOG_PROGRESS_BAR=y
CT_LOG_TO_FILE=y
CT_LOG_FILE_COMPRESS=y
# end of Paths and misc options

View File

@ -1,16 +1,13 @@
ARG ORG=dockcross
FROM ${ORG}/base:latest
ENV XCC_PREFIX=/usr/xcc
ENV CROSS_TRIPLE=armv7l-linux-musleabihf
ENV CROSS_ROOT=${XCC_PREFIX}/${CROSS_TRIPLE}-cross
ENV XCC_PREFIX /usr/xcc
ENV CROSS_TRIPLE armv7l-linux-musleabihf
ENV CROSS_ROOT ${XCC_PREFIX}/${CROSS_TRIPLE}-cross
RUN mkdir -p ${XCC_PREFIX}
# RUN curl --max-time 15 --retry 5 -LO https://musl.cc/${CROSS_TRIPLE}-cross.tgz
# RUN tar -C ${XCC_PREFIX} -xvf ${CROSS_TRIPLE}-cross.tgz
# Mirrored for reliability
RUN curl --max-time 15 --retry 5 -LO https://github.com/dockcross/dockcross/releases/download/toolchain-sources/${CROSS_TRIPLE}-cross-retrieved-2025-06-07.tgz
RUN tar -C ${XCC_PREFIX} -xvf ${CROSS_TRIPLE}-cross-retrieved-2025-06-07.tgz
RUN curl --max-time 15 --retry 5 -LO http://musl.cc/${CROSS_TRIPLE}-cross.tgz
RUN tar -C ${XCC_PREFIX} -xvf ${CROSS_TRIPLE}-cross.tgz
ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
AR=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ar \
@ -21,12 +18,12 @@ ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
FC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gfortran
COPY Toolchain.cmake ${CROSS_ROOT}/
ENV CMAKE_TOOLCHAIN_FILE=${CROSS_ROOT}/Toolchain.cmake
ENV CMAKE_TOOLCHAIN_FILE ${CROSS_ROOT}/Toolchain.cmake
# Linux kernel cross compilation variables
ENV PATH=${PATH}:${CROSS_ROOT}/bin
ENV CROSS_COMPILE=${CROSS_TRIPLE}-
ENV ARCH=arm
ENV PATH ${PATH}:${CROSS_ROOT}/bin
ENV CROSS_COMPILE ${CROSS_TRIPLE}-
ENV ARCH arm
# Build-time metadata as defined at http://label-schema.org
ARG BUILD_DATE
@ -40,4 +37,4 @@ LABEL org.label-schema.build-date=$BUILD_DATE \
org.label-schema.vcs-ref=$VCS_REF \
org.label-schema.vcs-url=$VCS_URL \
org.label-schema.schema-version="1.0"
ENV DEFAULT_DOCKCROSS_IMAGE=${IMAGE}:${VERSION}
ENV DEFAULT_DOCKCROSS_IMAGE ${IMAGE}:${VERSION}

View File

@ -11,7 +11,7 @@ set(CMAKE_Fortran_COMPILER $ENV{FC})
set(CMAKE_CXX_FLAGS "-I ${cross_root}/include/")
list(APPEND CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)

View File

@ -6,7 +6,7 @@ LABEL maintainer="PJ Reid PJ.Reid@Zetier.com"
# This is for 32-bit (i686) intel/amd devices
# Crosstool-ng version 2022-05-19
ENV CT_VERSION=crosstool-ng-1.25.0
ENV CT_VERSION crosstool-ng-1.25.0
#include "common.crosstool"
@ -18,9 +18,9 @@ RUN apt-get update \
&& apt-get clean --yes
# The CROSS_TRIPLE is a configured alias of the "i686-linux-gnu" target.
ENV CROSS_TRIPLE=i686-linux-gnu
ENV CROSS_TRIPLE i686-linux-gnu
ENV CROSS_ROOT=${XCC_PREFIX}/${CROSS_TRIPLE}
ENV CROSS_ROOT ${XCC_PREFIX}/${CROSS_TRIPLE}
ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
AR=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ar \
CC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gcc \
@ -29,15 +29,15 @@ ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
LD=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ld \
FC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gfortran
ENV QEMU_LD_PREFIX="${CROSS_ROOT}/${CROSS_TRIPLE}/sysroot"
ENV QEMU_SET_ENV="LD_LIBRARY_PATH=${CROSS_ROOT}/lib:${QEMU_LD_PREFIX}"
ENV QEMU_LD_PREFIX "${CROSS_ROOT}/${CROSS_TRIPLE}/sysroot"
ENV QEMU_SET_ENV "LD_LIBRARY_PATH=${CROSS_ROOT}/lib:${QEMU_LD_PREFIX}"
COPY Toolchain.cmake ${CROSS_ROOT}/
ENV CMAKE_TOOLCHAIN_FILE=${CROSS_ROOT}/Toolchain.cmake
ENV CMAKE_TOOLCHAIN_FILE ${CROSS_ROOT}/Toolchain.cmake
# Linux kernel cross compilation variables
ENV PATH=${PATH}:${CROSS_ROOT}/bin
ENV CROSS_COMPILE=${CROSS_TRIPLE}-
ENV ARCH=i686
ENV PATH ${PATH}:${CROSS_ROOT}/bin
ENV CROSS_COMPILE ${CROSS_TRIPLE}-
ENV ARCH i686
#include "common.label-and-env"

View File

@ -9,10 +9,10 @@ set(CMAKE_C_COMPILER $ENV{CC})
set(CMAKE_CXX_COMPILER $ENV{CXX})
set(CMAKE_Fortran_COMPILER $ENV{FC})
list(APPEND CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(CMAKE_SYSROOT ${cross_root}/${cross_triple}/sysroot)
set(CMAKE_CROSSCOMPILING_EMULATOR /usr/bin/qemu-x86_64 -cpu qemu32)

View File

@ -119,7 +119,7 @@ CT_LOG_EXTRA=y
# CT_LOG_DEBUG is not set
CT_LOG_LEVEL_MAX="EXTRA"
# CT_LOG_SEE_TOOLS_WARN is not set
CT_LOG_PROGRESS_BAR=n
CT_LOG_PROGRESS_BAR=y
CT_LOG_TO_FILE=y
CT_LOG_FILE_COMPRESS=y
# end of Paths and misc options

View File

@ -4,13 +4,13 @@ FROM ${ORG}/base:latest
LABEL maintainer="Matt McCormick matt@mmmccormick.com"
# Crosstool-ng version 2022-05-19
ENV CT_VERSION=crosstool-ng-1.25.0
ENV CT_VERSION crosstool-ng-1.25.0
ARG QEMU_VERSION=6.0.0
#include "common.crosstool"
ENV CROSS_TRIPLE=m68k-unknown-uclinux-uclibc
ENV CROSS_TRIPLE m68k-unknown-uclinux-uclibc
WORKDIR /usr/src
@ -22,7 +22,7 @@ RUN apt-get install -y libglib2.0-dev zlib1g-dev libpixman-1-dev && \
make install && \
cd .. && rm -rf qemu-${QEMU_VERSION}
ENV CROSS_ROOT=${XCC_PREFIX}/${CROSS_TRIPLE}
ENV CROSS_ROOT ${XCC_PREFIX}/${CROSS_TRIPLE}
ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
AR=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ar \
CC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gcc \
@ -31,19 +31,19 @@ ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
LD=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ld \
FC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gfortran
ENV QEMU_LD_PREFIX="${CROSS_ROOT}/${CROSS_TRIPLE}/sysroot"
ENV QEMU_SET_ENV="LD_LIBRARY_PATH=${CROSS_ROOT}/lib:${QEMU_LD_PREFIX}"
ENV QEMU_LD_PREFIX "${CROSS_ROOT}/${CROSS_TRIPLE}/sysroot"
ENV QEMU_SET_ENV "LD_LIBRARY_PATH=${CROSS_ROOT}/lib:${QEMU_LD_PREFIX}"
WORKDIR /work
COPY Toolchain.cmake /usr/lib/${CROSS_TRIPLE}/
ENV CMAKE_TOOLCHAIN_FILE=/usr/lib/${CROSS_TRIPLE}/Toolchain.cmake
ENV CMAKE_TOOLCHAIN_FILE /usr/lib/${CROSS_TRIPLE}/Toolchain.cmake
ENV PKG_CONFIG_PATH=/usr/lib/mk68-unknown-linux-uclibc/pkgconfig
ENV PKG_CONFIG_PATH /usr/lib/mk68-unknown-linux-uclibc/pkgconfig
# Linux kernel cross compilation variables
ENV PATH=${PATH}:${CROSS_ROOT}/bin
ENV CROSS_COMPILE=${CROSS_TRIPLE}-
ENV ARCH=powerpc
ENV PATH ${PATH}:${CROSS_ROOT}/bin
ENV CROSS_COMPILE ${CROSS_TRIPLE}-
ENV ARCH powerpc
#include "common.label-and-env"

View File

@ -11,10 +11,10 @@ set(CMAKE_Fortran_COMPILER $ENV{FC})
set(CMAKE_CXX_FLAGS "-I ${cross_root}/include/")
list(APPEND CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(CMAKE_SYSROOT ${cross_root}/${cross_triple}/sysroot)

View File

@ -120,7 +120,7 @@ CT_LOG_EXTRA=y
# CT_LOG_DEBUG is not set
CT_LOG_LEVEL_MAX="EXTRA"
# CT_LOG_SEE_TOOLS_WARN is not set
CT_LOG_PROGRESS_BAR=n
CT_LOG_PROGRESS_BAR=y
CT_LOG_TO_FILE=y
CT_LOG_FILE_COMPRESS=y
# end of Paths and misc options

View File

@ -6,7 +6,7 @@ LABEL maintainer="Matt McCormick matt@mmmccormick.com"
# This is for 32-bit Big-Endian MIPS devices with hard floating point enabled
# Crosstool-ng version 2022-05-19
ENV CT_VERSION=crosstool-ng-1.25.0
ENV CT_VERSION crosstool-ng-1.25.0
#include "common.crosstool"
@ -18,9 +18,9 @@ RUN apt-get update \
&& apt-get clean --yes
# The CROSS_TRIPLE is a configured alias of the "mips-unknown-linux-gnu" target.
ENV CROSS_TRIPLE=mips-unknown-linux-gnu
ENV CROSS_TRIPLE mips-unknown-linux-gnu
ENV CROSS_ROOT=${XCC_PREFIX}/${CROSS_TRIPLE}
ENV CROSS_ROOT ${XCC_PREFIX}/${CROSS_TRIPLE}
ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
AR=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ar \
CC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gcc \
@ -29,15 +29,15 @@ ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
LD=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ld \
FC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gfortran
ENV QEMU_LD_PREFIX="${CROSS_ROOT}/${CROSS_TRIPLE}/sysroot"
ENV QEMU_SET_ENV="LD_LIBRARY_PATH=${CROSS_ROOT}/lib:${QEMU_LD_PREFIX}"
ENV QEMU_LD_PREFIX "${CROSS_ROOT}/${CROSS_TRIPLE}/sysroot"
ENV QEMU_SET_ENV "LD_LIBRARY_PATH=${CROSS_ROOT}/lib:${QEMU_LD_PREFIX}"
COPY Toolchain.cmake ${CROSS_ROOT}/
ENV CMAKE_TOOLCHAIN_FILE=${CROSS_ROOT}/Toolchain.cmake
ENV CMAKE_TOOLCHAIN_FILE ${CROSS_ROOT}/Toolchain.cmake
# Linux kernel cross compilation variables
ENV PATH=${PATH}:${CROSS_ROOT}/bin
ENV CROSS_COMPILE=${CROSS_TRIPLE}-
ENV ARCH=mips
ENV PATH ${PATH}:${CROSS_ROOT}/bin
ENV CROSS_COMPILE ${CROSS_TRIPLE}-
ENV ARCH mips
#include "common.label-and-env"

View File

@ -9,10 +9,10 @@ set(CMAKE_C_COMPILER $ENV{CC})
set(CMAKE_CXX_COMPILER $ENV{CXX})
set(CMAKE_Fortran_COMPILER $ENV{FC})
list(APPEND CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(CMAKE_SYSROOT ${cross_root}/${cross_triple}/sysroot)
set(CMAKE_CROSSCOMPILING_EMULATOR /usr/bin/qemu-mips)

View File

@ -120,7 +120,7 @@ CT_LOG_EXTRA=y
# CT_LOG_DEBUG is not set
CT_LOG_LEVEL_MAX="EXTRA"
# CT_LOG_SEE_TOOLS_WARN is not set
CT_LOG_PROGRESS_BAR=n
CT_LOG_PROGRESS_BAR=y
CT_LOG_TO_FILE=y
CT_LOG_FILE_COMPRESS=y
# end of Paths and misc options

View File

@ -5,7 +5,7 @@ LABEL maintainer="Rene Helmke rene.helmke@fkie.fraunhofer.de"
# This is for 32-bit Big-Endian MIPS devices with hard floating point enabled and uclibc.
# Crosstool-ng version 2022-05-19
ENV CT_VERSION=crosstool-ng-1.25.0
ENV CT_VERSION crosstool-ng-1.25.0
#include "common.crosstool"
@ -17,9 +17,9 @@ RUN apt-get update \
&& apt-get clean --yes
# The CROSS_TRIPLE is a configured alias of the "mips-unknown-linux-uclibc" target.
ENV CROSS_TRIPLE=mips-unknown-linux-uclibc
ENV CROSS_TRIPLE mips-unknown-linux-uclibc
ENV CROSS_ROOT=${XCC_PREFIX}/${CROSS_TRIPLE}
ENV CROSS_ROOT ${XCC_PREFIX}/${CROSS_TRIPLE}
ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
AR=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ar \
CC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gcc \
@ -28,17 +28,17 @@ ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
LD=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ld \
FC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gfortran
ENV QEMU_LD_PREFIX="${CROSS_ROOT}/${CROSS_TRIPLE}/sysroot"
ENV QEMU_SET_ENV="LD_LIBRARY_PATH=${CROSS_ROOT}/lib:${QEMU_LD_PREFIX}"
ENV QEMU_LD_PREFIX "${CROSS_ROOT}/${CROSS_TRIPLE}/sysroot"
ENV QEMU_SET_ENV "LD_LIBRARY_PATH=${CROSS_ROOT}/lib:${QEMU_LD_PREFIX}"
COPY Toolchain.cmake ${CROSS_ROOT}/
ENV CMAKE_TOOLCHAIN_FILE=${CROSS_ROOT}/Toolchain.cmake
ENV CMAKE_TOOLCHAIN_FILE ${CROSS_ROOT}/Toolchain.cmake
ENV PKG_CONFIG_PATH=/usr/lib/mips-linux-uclibc/
ENV PKG_CONFIG_PATH /usr/lib/mips-linux-uclibc/
# Linux kernel cross compilation variables
ENV PATH=${PATH}:${CROSS_ROOT}/bin
ENV CROSS_COMPILE=${CROSS_TRIPLE}-
ENV ARCH=mips
ENV PATH ${PATH}:${CROSS_ROOT}/bin
ENV CROSS_COMPILE ${CROSS_TRIPLE}-
ENV ARCH mips
#include "common.label-and-env"

View File

@ -11,10 +11,10 @@ set(CMAKE_Fortran_COMPILER $ENV{FC})
set(CMAKE_CXX_FLAGS "-I ${cross_root}/include/")
list(APPEND CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(CMAKE_SYSROOT ${cross_root}/${cross_triple}/sysroot)
set(CMAKE_CROSSCOMPILING_EMULATOR /usr/bin/qemu-mips)

View File

@ -121,7 +121,7 @@ CT_LOG_EXTRA=y
# CT_LOG_DEBUG is not set
CT_LOG_LEVEL_MAX="EXTRA"
# CT_LOG_SEE_TOOLS_WARN is not set
CT_LOG_PROGRESS_BAR=n
CT_LOG_PROGRESS_BAR=y
CT_LOG_TO_FILE=y
CT_LOG_FILE_COMPRESS=y
# end of Paths and misc options

View File

@ -6,7 +6,7 @@ LABEL maintainer="Matt McCormick matt@mmmccormick.com"
# This is for 32-bit Big-Endian MIPS devices with hard floating point enabled
# Crosstool-ng version 2022-05-19
ENV CT_VERSION=crosstool-ng-1.25.0
ENV CT_VERSION crosstool-ng-1.25.0
#include "common.crosstool"
@ -18,9 +18,9 @@ RUN apt-get update \
&& apt-get clean --yes
# The CROSS_TRIPLE is a configured alias of the "mips-unknown-linux-gnu" target.
ENV CROSS_TRIPLE=mips-unknown-linux-gnu
ENV CROSS_TRIPLE mips-unknown-linux-gnu
ENV CROSS_ROOT=${XCC_PREFIX}/${CROSS_TRIPLE}
ENV CROSS_ROOT ${XCC_PREFIX}/${CROSS_TRIPLE}
ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
AR=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ar \
CC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gcc \
@ -29,15 +29,15 @@ ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
LD=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ld \
FC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gfortran
ENV QEMU_LD_PREFIX="${CROSS_ROOT}/${CROSS_TRIPLE}/sysroot"
ENV QEMU_SET_ENV="LD_LIBRARY_PATH=${CROSS_ROOT}/lib:${QEMU_LD_PREFIX}"
ENV QEMU_LD_PREFIX "${CROSS_ROOT}/${CROSS_TRIPLE}/sysroot"
ENV QEMU_SET_ENV "LD_LIBRARY_PATH=${CROSS_ROOT}/lib:${QEMU_LD_PREFIX}"
COPY Toolchain.cmake ${CROSS_ROOT}/
ENV CMAKE_TOOLCHAIN_FILE=${CROSS_ROOT}/Toolchain.cmake
ENV CMAKE_TOOLCHAIN_FILE ${CROSS_ROOT}/Toolchain.cmake
# Linux kernel cross compilation variables
ENV PATH=${PATH}:${CROSS_ROOT}/bin
ENV CROSS_COMPILE=${CROSS_TRIPLE}-
ENV ARCH=mips
ENV PATH ${PATH}:${CROSS_ROOT}/bin
ENV CROSS_COMPILE ${CROSS_TRIPLE}-
ENV ARCH mips
#include "common.label-and-env"

View File

@ -9,10 +9,10 @@ set(CMAKE_C_COMPILER $ENV{CC})
set(CMAKE_CXX_COMPILER $ENV{CXX})
set(CMAKE_Fortran_COMPILER $ENV{FC})
list(APPEND CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(CMAKE_SYSROOT ${cross_root}/${cross_triple}/sysroot)
set(CMAKE_CROSSCOMPILING_EMULATOR /usr/bin/qemu-mips)

View File

@ -120,7 +120,7 @@ CT_LOG_EXTRA=y
# CT_LOG_DEBUG is not set
CT_LOG_LEVEL_MAX="EXTRA"
# CT_LOG_SEE_TOOLS_WARN is not set
CT_LOG_PROGRESS_BAR=n
CT_LOG_PROGRESS_BAR=y
CT_LOG_TO_FILE=y
CT_LOG_FILE_COMPRESS=y
# end of Paths and misc options

View File

@ -4,7 +4,7 @@ FROM ${ORG}/base:latest
LABEL maintainer="Matt McCormick matt@mmmccormick.com"
# Crosstool-ng version 2022-05-19
ENV CT_VERSION=crosstool-ng-1.25.0
ENV CT_VERSION crosstool-ng-1.25.0
# This is for 32-bit or 64-bit mipsel Linux (multilib)
#include "common.crosstool"
@ -18,8 +18,8 @@ RUN apt-get update \
# The CROSS_TRIPLE is a configured alias of the "mipsel-unknown-linux-gnu" target.
ENV CROSS_TRIPLE=mipsel-unknown-linux-gnu
ENV CROSS_ROOT=${XCC_PREFIX}/${CROSS_TRIPLE}
ENV CROSS_TRIPLE mipsel-unknown-linux-gnu
ENV CROSS_ROOT ${XCC_PREFIX}/${CROSS_TRIPLE}
ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
AR=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ar \
CC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gcc \
@ -28,17 +28,17 @@ ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
LD=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ld \
FC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gfortran
ENV QEMU_LD_PREFIX="${CROSS_ROOT}/${CROSS_TRIPLE}/sysroot"
ENV QEMU_SET_ENV="LD_LIBRARY_PATH=${CROSS_ROOT}/lib:${QEMU_LD_PREFIX}"
ENV QEMU_LD_PREFIX "${CROSS_ROOT}/${CROSS_TRIPLE}/sysroot"
ENV QEMU_SET_ENV "LD_LIBRARY_PATH=${CROSS_ROOT}/lib:${QEMU_LD_PREFIX}"
COPY Toolchain.cmake ${CROSS_ROOT}/
ENV CMAKE_TOOLCHAIN_FILE=${CROSS_ROOT}/Toolchain.cmake
ENV CMAKE_TOOLCHAIN_FILE ${CROSS_ROOT}/Toolchain.cmake
ENV PKG_CONFIG_PATH=/usr/lib/mipsel-unknown-linux-gnu/
ENV PKG_CONFIG_PATH /usr/lib/mipsel-unknown-linux-gnu/
# Linux kernel cross compilation variables
ENV PATH=${PATH}:${CROSS_ROOT}/bin
ENV CROSS_COMPILE=${CROSS_TRIPLE}-
ENV ARCH=mipsel
ENV PATH ${PATH}:${CROSS_ROOT}/bin
ENV CROSS_COMPILE ${CROSS_TRIPLE}-
ENV ARCH mipsel
#include "common.label-and-env"

View File

@ -11,10 +11,10 @@ set(CMAKE_Fortran_COMPILER $ENV{FC})
set(CMAKE_CXX_FLAGS "-I ${cross_root}/include/")
list(APPEND CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(CMAKE_SYSROOT ${cross_root}/${cross_triple}/sysroot)
set(CMAKE_CROSSCOMPILING_EMULATOR /usr/bin/qemu-mipsel)

View File

@ -120,7 +120,7 @@ CT_LOG_EXTRA=y
# CT_LOG_DEBUG is not set
CT_LOG_LEVEL_MAX="EXTRA"
# CT_LOG_SEE_TOOLS_WARN is not set
CT_LOG_PROGRESS_BAR=n
CT_LOG_PROGRESS_BAR=y
CT_LOG_TO_FILE=y
CT_LOG_FILE_COMPRESS=y
# end of Paths and misc options

View File

@ -4,13 +4,13 @@ FROM ${ORG}/base:latest
LABEL maintainer="Matt McCormick matt@mmmccormick.com and Fancy2209"
# Crosstool-ng version 2024-08-04
ENV CT_VERSION=crosstool-ng-1.26.0
ENV CT_VERSION crosstool-ng-1.26.0
ARG QEMU_VERSION=6.0.0
#include "common.crosstool"
ENV CROSS_TRIPLE=powerpc-unknown-linux-gnu
ENV CROSS_TRIPLE powerpc-unknown-linux-gnu
WORKDIR /usr/src
@ -22,7 +22,7 @@ RUN apt-get install -y libglib2.0-dev zlib1g-dev libpixman-1-dev && \
make install && \
cd .. && rm -rf qemu-${QEMU_VERSION}
ENV CROSS_ROOT=${XCC_PREFIX}/${CROSS_TRIPLE}
ENV CROSS_ROOT ${XCC_PREFIX}/${CROSS_TRIPLE}
ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
AR=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ar \
CC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gcc \
@ -31,19 +31,19 @@ ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
LD=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ld \
FC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gfortran
ENV QEMU_LD_PREFIX="${CROSS_ROOT}/${CROSS_TRIPLE}/sysroot"
ENV QEMU_SET_ENV="LD_LIBRARY_PATH=${CROSS_ROOT}/lib:${QEMU_LD_PREFIX}"
ENV QEMU_LD_PREFIX "${CROSS_ROOT}/${CROSS_TRIPLE}/sysroot"
ENV QEMU_SET_ENV "LD_LIBRARY_PATH=${CROSS_ROOT}/lib:${QEMU_LD_PREFIX}"
WORKDIR /work
COPY Toolchain.cmake /usr/lib/${CROSS_TRIPLE}/
ENV CMAKE_TOOLCHAIN_FILE=/usr/lib/${CROSS_TRIPLE}/Toolchain.cmake
ENV CMAKE_TOOLCHAIN_FILE /usr/lib/${CROSS_TRIPLE}/Toolchain.cmake
ENV PKG_CONFIG_PATH=/usr/lib/powerpc-unknown-linux-gnu/pkgconfig
ENV PKG_CONFIG_PATH /usr/lib/powerpc-unknown-linux-gnu/pkgconfig
# Linux kernel cross compilation variables
ENV PATH=${PATH}:${CROSS_ROOT}/bin
ENV CROSS_COMPILE=${CROSS_TRIPLE}-
ENV ARCH=powerpc
ENV PATH ${PATH}:${CROSS_ROOT}/bin
ENV CROSS_COMPILE ${CROSS_TRIPLE}-
ENV ARCH powerpc
#include "common.label-and-env"

View File

@ -11,10 +11,10 @@ set(CMAKE_Fortran_COMPILER $ENV{FC})
set(CMAKE_CXX_FLAGS "-I ${cross_root}/include/")
list(APPEND CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(CMAKE_SYSROOT ${cross_root}/${cross_triple}/sysroot)
set(CMAKE_CROSSCOMPILING_EMULATOR /usr/bin/qemu-ppc)

View File

@ -120,7 +120,7 @@ CT_LOG_EXTRA=y
# CT_LOG_DEBUG is not set
CT_LOG_LEVEL_MAX="EXTRA"
# CT_LOG_SEE_TOOLS_WARN is not set
CT_LOG_PROGRESS_BAR=n
CT_LOG_PROGRESS_BAR=y
CT_LOG_TO_FILE=y
CT_LOG_FILE_COMPRESS=y
# end of Paths and misc options

View File

@ -4,13 +4,13 @@ FROM ${ORG}/base:latest
LABEL maintainer="Matt McCormick matt@mmmccormick.com"
# Crosstool-ng version 2023-09-21
ENV CT_VERSION=crosstool-ng-1.25.0
ENV CT_VERSION crosstool-ng-1.25.0
ARG QEMU_VERSION=6.0.0
#include "common.crosstool"
ENV CROSS_TRIPLE=powerpc64le-unknown-linux-gnu
ENV CROSS_TRIPLE powerpc64le-unknown-linux-gnu
WORKDIR /usr/src
@ -22,7 +22,7 @@ RUN apt-get install -y libglib2.0-dev zlib1g-dev libpixman-1-dev && \
make install && \
cd .. && rm -rf qemu-${QEMU_VERSION}
ENV CROSS_ROOT=${XCC_PREFIX}/${CROSS_TRIPLE}
ENV CROSS_ROOT ${XCC_PREFIX}/${CROSS_TRIPLE}
ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
AR=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ar \
CC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gcc \
@ -31,19 +31,19 @@ ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
LD=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ld \
FC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gfortran
ENV QEMU_LD_PREFIX="${CROSS_ROOT}/${CROSS_TRIPLE}/sysroot"
ENV QEMU_SET_ENV="LD_LIBRARY_PATH=${CROSS_ROOT}/lib:${QEMU_LD_PREFIX}"
ENV QEMU_LD_PREFIX "${CROSS_ROOT}/${CROSS_TRIPLE}/sysroot"
ENV QEMU_SET_ENV "LD_LIBRARY_PATH=${CROSS_ROOT}/lib:${QEMU_LD_PREFIX}"
WORKDIR /work
COPY Toolchain.cmake /usr/lib/${CROSS_TRIPLE}/
ENV CMAKE_TOOLCHAIN_FILE=/usr/lib/${CROSS_TRIPLE}/Toolchain.cmake
ENV CMAKE_TOOLCHAIN_FILE /usr/lib/${CROSS_TRIPLE}/Toolchain.cmake
ENV PKG_CONFIG_PATH=/usr/lib/powerpc64le-unknown-linux-gnu/pkgconfig
ENV PKG_CONFIG_PATH /usr/lib/powerpc64le-unknown-linux-gnu/pkgconfig
# Linux kernel cross compilation variables
ENV PATH=${PATH}:${CROSS_ROOT}/bin
ENV CROSS_COMPILE=${CROSS_TRIPLE}-
ENV ARCH=powerpc
ENV PATH ${PATH}:${CROSS_ROOT}/bin
ENV CROSS_COMPILE ${CROSS_TRIPLE}-
ENV ARCH powerpc
#include "common.label-and-env"

View File

@ -11,10 +11,10 @@ set(CMAKE_Fortran_COMPILER $ENV{FC})
set(CMAKE_CXX_FLAGS "-I ${cross_root}/include/")
list(APPEND CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(CMAKE_SYSROOT ${cross_root}/${cross_triple}/sysroot)

View File

@ -120,7 +120,7 @@ CT_LOG_EXTRA=y
# CT_LOG_DEBUG is not set
CT_LOG_LEVEL_MAX="EXTRA"
# CT_LOG_SEE_TOOLS_WARN is not set
CT_LOG_PROGRESS_BAR=n
CT_LOG_PROGRESS_BAR=y
CT_LOG_TO_FILE=y
CT_LOG_FILE_COMPRESS=y
# end of Paths and misc options

View File

@ -4,13 +4,13 @@ FROM ${ORG}/base:latest
LABEL maintainer="Matt McCormick matt@mmmccormick.com"
# Crosstool-ng version 2024-08-04
ENV CT_VERSION=crosstool-ng-1.26.0
ENV CT_VERSION crosstool-ng-1.26.0
ARG QEMU_VERSION=6.0.0
#include "common.crosstool"
ENV CROSS_TRIPLE=powerpc64le-unknown-linux-gnu
ENV CROSS_TRIPLE powerpc64le-unknown-linux-gnu
WORKDIR /usr/src
@ -22,7 +22,7 @@ RUN apt-get install -y libglib2.0-dev zlib1g-dev libpixman-1-dev && \
make install && \
cd .. && rm -rf qemu-${QEMU_VERSION}
ENV CROSS_ROOT=${XCC_PREFIX}/${CROSS_TRIPLE}
ENV CROSS_ROOT ${XCC_PREFIX}/${CROSS_TRIPLE}
ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
AR=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ar \
CC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gcc \
@ -31,19 +31,19 @@ ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
LD=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ld \
FC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gfortran
ENV QEMU_LD_PREFIX="${CROSS_ROOT}/${CROSS_TRIPLE}/sysroot"
ENV QEMU_SET_ENV="LD_LIBRARY_PATH=${CROSS_ROOT}/lib:${QEMU_LD_PREFIX}"
ENV QEMU_LD_PREFIX "${CROSS_ROOT}/${CROSS_TRIPLE}/sysroot"
ENV QEMU_SET_ENV "LD_LIBRARY_PATH=${CROSS_ROOT}/lib:${QEMU_LD_PREFIX}"
WORKDIR /work
COPY Toolchain.cmake /usr/lib/${CROSS_TRIPLE}/
ENV CMAKE_TOOLCHAIN_FILE=/usr/lib/${CROSS_TRIPLE}/Toolchain.cmake
ENV CMAKE_TOOLCHAIN_FILE /usr/lib/${CROSS_TRIPLE}/Toolchain.cmake
ENV PKG_CONFIG_PATH=/usr/lib/powerpc64le-unknown-linux-gnu/pkgconfig
ENV PKG_CONFIG_PATH /usr/lib/powerpc64le-unknown-linux-gnu/pkgconfig
# Linux kernel cross compilation variables
ENV PATH=${PATH}:${CROSS_ROOT}/bin
ENV CROSS_COMPILE=${CROSS_TRIPLE}-
ENV ARCH=powerpc
ENV PATH ${PATH}:${CROSS_ROOT}/bin
ENV CROSS_COMPILE ${CROSS_TRIPLE}-
ENV ARCH powerpc
#include "common.label-and-env"

View File

@ -11,10 +11,10 @@ set(CMAKE_Fortran_COMPILER $ENV{FC})
set(CMAKE_CXX_FLAGS "-I ${cross_root}/include/")
list(APPEND CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(CMAKE_SYSROOT ${cross_root}/${cross_triple}/sysroot)

View File

@ -121,7 +121,7 @@ CT_LOG_EXTRA=y
# CT_LOG_DEBUG is not set
CT_LOG_LEVEL_MAX="EXTRA"
# CT_LOG_SEE_TOOLS_WARN is not set
CT_LOG_PROGRESS_BAR=n
CT_LOG_PROGRESS_BAR=y
CT_LOG_TO_FILE=y
CT_LOG_FILE_COMPRESS=y
# end of Paths and misc options

View File

@ -4,13 +4,13 @@ FROM ${ORG}/base:latest
LABEL maintainer="Matt McCormick matt@mmmccormick.com"
# Crosstool-ng version 2022-05-19
ENV CT_VERSION=crosstool-ng-1.25.0
ENV CT_VERSION crosstool-ng-1.25.0
ARG QEMU_VERSION=6.0.0
#include "common.crosstool"
ENV CROSS_TRIPLE=riscv32-unknown-linux-gnu
ENV CROSS_TRIPLE riscv32-unknown-linux-gnu
WORKDIR /usr/src
@ -22,7 +22,7 @@ RUN apt-get install -y libglib2.0-dev zlib1g-dev libpixman-1-dev && \
make install && \
cd .. && rm -rf qemu-${QEMU_VERSION}
ENV CROSS_ROOT=${XCC_PREFIX}/${CROSS_TRIPLE}
ENV CROSS_ROOT ${XCC_PREFIX}/${CROSS_TRIPLE}
ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
AR=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ar \
CC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gcc \
@ -31,19 +31,19 @@ ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
LD=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ld \
FC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gfortran
ENV QEMU_LD_PREFIX="${CROSS_ROOT}/${CROSS_TRIPLE}/sysroot"
ENV QEMU_SET_ENV="LD_LIBRARY_PATH=${CROSS_ROOT}/lib:${QEMU_LD_PREFIX}"
ENV QEMU_LD_PREFIX "${CROSS_ROOT}/${CROSS_TRIPLE}/sysroot"
ENV QEMU_SET_ENV "LD_LIBRARY_PATH=${CROSS_ROOT}/lib:${QEMU_LD_PREFIX}"
WORKDIR /work
COPY Toolchain.cmake /usr/lib/${CROSS_TRIPLE}/
ENV CMAKE_TOOLCHAIN_FILE=/usr/lib/${CROSS_TRIPLE}/Toolchain.cmake
ENV CMAKE_TOOLCHAIN_FILE /usr/lib/${CROSS_TRIPLE}/Toolchain.cmake
ENV PKG_CONFIG_PATH=/usr/lib/riscv32-unknown-linux-gnu/pkgconfig
ENV PKG_CONFIG_PATH /usr/lib/riscv32-unknown-linux-gnu/pkgconfig
# Linux kernel cross compilation variables
ENV PATH=${PATH}:${CROSS_ROOT}/bin
ENV CROSS_COMPILE=${CROSS_TRIPLE}-
ENV ARCH=riscv32
ENV PATH ${PATH}:${CROSS_ROOT}/bin
ENV CROSS_COMPILE ${CROSS_TRIPLE}-
ENV ARCH riscv32
#include "common.label-and-env"

View File

@ -11,10 +11,10 @@ set(CMAKE_Fortran_COMPILER $ENV{FC})
set(CMAKE_CXX_FLAGS "-I ${cross_root}/include/")
list(APPEND CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(CMAKE_SYSROOT ${cross_root}/${cross_triple}/sysroot)

View File

@ -124,7 +124,7 @@ CT_LOG_EXTRA=y
# CT_LOG_DEBUG is not set
CT_LOG_LEVEL_MAX="EXTRA"
# CT_LOG_SEE_TOOLS_WARN is not set
CT_LOG_PROGRESS_BAR=n
CT_LOG_PROGRESS_BAR=y
CT_LOG_TO_FILE=y
CT_LOG_FILE_COMPRESS=y
# end of Paths and misc options

View File

@ -4,13 +4,13 @@ FROM ${ORG}/base:latest
LABEL maintainer="Matt McCormick matt@mmmccormick.com"
# Crosstool-ng version 2022-05-19
ENV CT_VERSION=crosstool-ng-1.25.0
ENV CT_VERSION crosstool-ng-1.25.0
ARG QEMU_VERSION=6.0.0
#include "common.crosstool"
ENV CROSS_TRIPLE=riscv64-unknown-linux-gnu
ENV CROSS_TRIPLE riscv64-unknown-linux-gnu
WORKDIR /usr/src
@ -22,7 +22,7 @@ RUN apt-get install -y libglib2.0-dev zlib1g-dev libpixman-1-dev && \
make install && \
cd .. && rm -rf qemu-${QEMU_VERSION}
ENV CROSS_ROOT=${XCC_PREFIX}/${CROSS_TRIPLE}
ENV CROSS_ROOT ${XCC_PREFIX}/${CROSS_TRIPLE}
ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
AR=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ar \
CC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gcc \
@ -31,19 +31,19 @@ ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
LD=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ld \
FC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gfortran
ENV QEMU_LD_PREFIX="${CROSS_ROOT}/${CROSS_TRIPLE}/sysroot"
ENV QEMU_SET_ENV="LD_LIBRARY_PATH=${CROSS_ROOT}/lib:${QEMU_LD_PREFIX}"
ENV QEMU_LD_PREFIX "${CROSS_ROOT}/${CROSS_TRIPLE}/sysroot"
ENV QEMU_SET_ENV "LD_LIBRARY_PATH=${CROSS_ROOT}/lib:${QEMU_LD_PREFIX}"
WORKDIR /work
COPY Toolchain.cmake /usr/lib/${CROSS_TRIPLE}/
ENV CMAKE_TOOLCHAIN_FILE=/usr/lib/${CROSS_TRIPLE}/Toolchain.cmake
ENV CMAKE_TOOLCHAIN_FILE /usr/lib/${CROSS_TRIPLE}/Toolchain.cmake
ENV PKG_CONFIG_PATH=/usr/lib/riscv64-unknown-linux-gnu/pkgconfig
ENV PKG_CONFIG_PATH /usr/lib/riscv64-unknown-linux-gnu/pkgconfig
# Linux kernel cross compilation variables
ENV PATH=${PATH}:${CROSS_ROOT}/bin
ENV CROSS_COMPILE=${CROSS_TRIPLE}-
ENV ARCH=riscv64
ENV PATH ${PATH}:${CROSS_ROOT}/bin
ENV CROSS_COMPILE ${CROSS_TRIPLE}-
ENV ARCH riscv64
#include "common.label-and-env"

Some files were not shown because too many files have changed in this diff Show More