Compare commits

...

134 Commits

Author SHA1 Message Date
Bensuperpc ddfb106bf8 Fix import/export docker image 2026-07-04 08:41:52 +02:00
Matt McCormick 3b5d46f70b Merge pull request #929 from dockcross/dependabot/github_actions/actions/download-artifact-8
build(deps): bump actions/download-artifact from 7 to 8
2026-07-02 14:06:07 -04:00
Matt McCormick 5fd14ac6dc Merge pull request #937 from arrowd/loongarch64
Introduce linux-loongarch64
2026-05-15 16:25:38 -04:00
Jonas Vautherin dcde0d124c ci: add C_arg: -DCMAKE_C_FLAGS=-Wno-incompatible-pointer-types to loongarch64 2026-05-11 21:57:22 +02:00
Gleb Popov 175e4d66e2 Introduce linux-loongarch64 2026-05-11 22:25:12 +03:00
Matt McCormick 4aaaa2c847 Merge pull request #934 from julianoes/manylinux_2_34-aarch64
Add manylinux_2_34_aarch64 (rebased and fixed up)
2026-04-14 09:33:20 -04:00
Julian Oes 6a3933b03b Add manylinux_2_34 includes to DOCKER_COMPOSITE_SOURCES
The common.manylinux_2_34 and common-manylinux_2_34.crosstool includes
were missing from the Makefile, so the sed preprocessor never expanded
them when generating Dockerfiles from .in files. This caused XCC_PREFIX
to be undefined in the aarch64 Dockerfile.
2026-04-10 09:32:09 +12:00
Julian Oes 7264bf7768 Build git without gettext to avoid missing msgfmt
The pypa manylinux_2_34 base image does not provide the msgfmt binary,
causing the git source build to fail. Git translations are not needed
in a build container.
2026-04-10 09:32:01 +12:00
Julian Oes ad3c0cad8c manylinux_2_34: fix libstdc++ ABI mismatch by isolating host headers
Using -I/usr/include during the crosstool-ng build of libstdc++ pulled
in host x86_64 headers where int64_t is long long, contaminating the
aarch64 cross-build where int64_t should be long. This caused linker
errors for std::__atomic_futex_unsigned_base symbols due to mismatched
C++ name mangling between headers and the built library.

Copy only the required sys/sdt.h headers into /opt/ct-ng-includes and
point CT_CC_GCC_ENABLE_CXX_FLAGS there instead, matching the approach
used by manylinux_2_28-aarch64.
2026-04-09 03:22:00 +12:00
Julian Oes 84419c14a5 manylinux_2_34: add another perl dependency for OpenSSL build 2026-04-09 03:21:59 +12:00
Julian Oes 8c8f0f6fa6 manylinux_2_34: add missing tools for OpenSSL test build 2026-04-09 03:21:58 +12:00
Julian Oes 4fb4c4e401 Remove copy_libstd.sh workaround from manylinux_2_34-aarch64
The libstdc++ copy trick is no longer needed, as noted in PR #931
which removed it for manylinux2014-aarch64.
2026-04-09 03:21:57 +12:00
Julian Oes 9c32f366f9 Fix CMAKE_CROSSCOMPILING_EMULATOR path to use qemu-aarch64-static
AlmaLinux 9 doesn't package qemu-user-static, so the Dockerfile
downloads the static binary as /usr/bin/qemu-aarch64-static.
The Toolchain.cmake was incorrectly referencing /usr/bin/qemu-aarch64.
2026-04-09 03:21:56 +12:00
Julian Oes 2b735bef0e Fix typos in Dockerfile.in and prepare_cross_env.sh 2026-04-09 03:21:55 +12:00
Julian Oes 324d42a107 Fix typo: rename docker_setup_scrpits to docker_setup_scripts 2026-04-09 03:21:54 +12:00
Julian Oes 3348cdba6d Revert CMAKE_FIND_ROOT_PATH_MODE_* to match other variants
Remove CACHE STRING "" from CMAKE_FIND_ROOT_PATH_MODE_PROGRAM,
CMAKE_FIND_ROOT_PATH_MODE_LIBRARY, and CMAKE_FIND_ROOT_PATH_MODE_INCLUDE
to be consistent with all other cross-compilation toolchain files.
2026-04-09 03:21:53 +12:00
Joris Gillis c847b1910e allow overriding of CMAKE_FIND_ROOT_PATH_MODE_* 2026-04-09 03:21:51 +12:00
Joris Gillis 49aa64b08f Add manylinux_2_34-aarch64 to CI configuration 2026-04-09 03:21:47 +12:00
Joris Gillis b59e741d8f Add manylinux_2_34-aarch64 documentation to README 2026-04-09 03:21:44 +12:00
Joris Gillis 65320e84c6 Add manylinux_2_34-aarch64 cross-compilation image
New Docker image for building manylinux_2_34 compatible wheels targeting
64-bit ARM (aarch64) architecture.

- Based on AlmaLinux 9 with crosstool-ng 1.27.0 toolchain
- Uses multiarch/qemu-user-static for cross-compilation emulation
- Includes wheel repair script for manylinux compliance
- GCC configured with --disable-gcov (Bug 100289 workaround)
2026-04-09 03:21:40 +12:00
Matt McCormick 3853c9f0da Merge pull request #935 from julianoes/manylinux_2_28-aarch64
Add manylinux_2_28_aarch64
2026-04-08 10:12:33 -04:00
Julian Oes fc73010e35 Readme: Add manylinux_2_28-aarch64 2026-04-07 09:50:52 +12:00
Julian Oes 7679060f71 manylinux_2_28: add perl dependency for OpenSSL build 2026-04-04 11:32:15 +13:00
Julian Oes c3389c3671 CI: add manylinux_2_28 build 2026-04-04 11:32:02 +13:00
Julian Oes f15327adbd Add perl-IPC-Cmd package for OpenSSL build support
AlmaLinux 8 splits perl-IPC-Cmd into a separate package, which is
needed by OpenSSL's Configure script.
2026-04-03 14:32:20 +13:00
Julian Oes 003dfa0517 Remove copy_libstd.sh workaround from manylinux_2_28-aarch64
The libstdc++ copy trick is no longer needed, as noted in PR #931
which removed it for manylinux2014-aarch64.
2026-04-03 14:28:11 +13:00
Julian Oes 7633bc2b5e Add manylinux_2_28-aarch64 image and fix qemu path in 2_34 variant
Add a new manylinux_2_28-aarch64 cross-compilation image targeting
AlmaLinux 8 (glibc 2.28) for building portable Python wheels for
aarch64 from x86_64 hosts. Based on the manylinux_2_34-aarch64
variant with adjusted glibc (2.28) and kernel headers (4.18).

Also fix CMAKE_CROSSCOMPILING_EMULATOR in the 2_34 Toolchain.cmake
to use /usr/bin/qemu-aarch64-static (matching what the Dockerfile
actually installs).
2026-04-03 14:28:10 +13:00
Matt McCormick 9b3357cf9b Merge pull request #933 from dockcross/dependabot/github_actions/docker/login-action-4
build(deps): bump docker/login-action from 3 to 4
2026-03-12 17:21:48 -04:00
dependabot[bot] 326655d148 build(deps): bump docker/login-action from 3 to 4
Bumps [docker/login-action](https://github.com/docker/login-action) from 3 to 4.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v3...v4)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-04 18:22:30 +00:00
Jonas Vautherin b2fe0003a7 Merge pull request #931 from dockcross/jonas/fix-manylinux2014-aarch64
manylinux2014-aarch64: fix libstdc++
2026-03-04 13:50:10 +01:00
Jonas Vautherin da91964615 manylinux2014-aarch64: fix libstdc++ 2026-03-04 00:09:00 +01:00
Matt McCormick 8e64601fd2 Merge pull request #930 from dockcross/dependabot/github_actions/actions/upload-artifact-7
build(deps): bump actions/upload-artifact from 6 to 7
2026-03-02 13:28:58 -05:00
Matt McCormick 551d8b719c Merge pull request #928 from MUWASEC/patch-1
fix bash warning message in dockcross.sh
2026-02-27 15:39:12 -05:00
dependabot[bot] dc32c32646 build(deps): bump actions/upload-artifact from 6 to 7
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 6 to 7.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-27 18:22:30 +00:00
dependabot[bot] 06384754b0 build(deps): bump actions/download-artifact from 7 to 8
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 7 to 8.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v7...v8)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: '8'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-27 18:22:18 +00:00
muwa00 471f25e046 fix bash warning message in dockcross.sh 2026-02-25 22:19:46 +07:00
Matt McCormick af62f2c926 Merge pull request #925 from thewtex/wasm-bump
web-wasm: bump emscripten to 5.0.0
2026-02-21 07:45:14 -05:00
Matt McCormick f41690cc1e web-wasm: bump emscripten to 5.0.1
Disable raylib, which seems to have an unrelated error.
2026-02-20 16:57:16 -05:00
Matt McCormick 84793ba73e Merge pull request #927 from dockcross/openssl-patch-path
ci: update MAVSDK openssl patch
2026-02-20 16:54:06 -05:00
Matt McCormick 8385fa701f ci: update MAVSDK openssl patch
And use commit for reproducible fetch
2026-02-19 11:09:21 -05:00
Matt McCormick 3dfb3ff1a9 Merge pull request #919 from dockcross/dependabot/github_actions/actions/checkout-6
build(deps): bump actions/checkout from 5 to 6
2026-02-03 05:39:22 -05:00
dependabot[bot] eff583f55e build(deps): bump actions/checkout from 5 to 6
Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-03 02:34:37 +00:00
Jonas Vautherin 90e40d4cbf Merge pull request #923 from dockcross/upload-download-artifact
ci: update upload and download artifact action versions to latest
2026-02-02 10:34:42 +01:00
Matt McCormick 937d4df040 ci: update upload and download artifact action versions to latest 2026-02-01 21:47:01 -05:00
Matt McCormick b37f297308 Merge pull request #922 from dmlary/manylinux-builder-group
manylinux: add builder group to own python files
2026-01-29 13:57:47 -05:00
David M. Lary c3e5f808a6 manylinux: Fixes for gid check, and chown python /man directories 2026-01-26 15:06:24 -06:00
David M. Lary f3fc294a08 manylinux: add builder group to own python files
The manylinux images can take over a minute to start on spinning disks
(not SSDs) because pre_exec.sh is changing the ownership of all the
python install directories to be writable by the BUILDER_UID.  This is
detailed further in #853.

I changed the build steps for manylinux images to add a group called
`builder`, then change the python directories to be owned by the
`builder` group, and group writable.  I then changed pre_exec.sh to add
BUILDER_USER to the builder group prior to the gosu switch to become
BUILDER_USER.  The result is that BUILDER_USER is in the `builder`
group that can write to the python directories, allowing the user to
install python packages without permission denied errors.

There was one additional change to support this, and that was the
arguments to `gosu` in entrypoint.sh.  Previously the arguments were
`$BUILDER_UID:BUILDER_GID`, but providing the gid prevents `gosu` from
loading additional groups (such as `builder`) from /etc/group.  I
removed the GID argument to allow `gosu` to pick up additional groups
from /etc/group.

fixes #853
2026-01-21 15:58:45 -06:00
Matt McCormick 1d3b81221c Merge pull request #904 from deckstose/push-pytvwvzxrmql
fix: use more portable `type -P` to find executable
2026-01-05 14:17:18 -05:00
Matt McCormick 8b9ace46ce Merge pull request #913 from thewtex/change-rustup-install
common: install rustup into /opt/rustup
2025-10-10 21:58:52 -04:00
Matt McCormick 63e91f59aa common: install rustup into /opt/rustup
To avoid long-running chown's per https://github.com/dockcross/dockcross/issues/901
2025-10-09 08:17:27 -04:00
Matt McCormick 98e6c48697 Merge pull request #912 from thewtex/wasi-bump
wasi: bump wasi-sdk to version 27
2025-09-29 22:26:24 -04:00
Matt McCormick 9de64a24c2 wasi: bump wasi-sdk to version 27
Includes LLVM bump to version 21.
2025-09-26 10:59:35 -04:00
Matt McCormick 66fda89f8d Merge pull request #911 from thewtex/buildah-manifest-tool
ci: push multi-arch images with manifest-tool
2025-09-25 22:08:26 -04:00
Matt McCormick 13872ace65 ci: push multi-arch images with manifest-tool
Instead of buildah.

- Simplified workflow: manifest-tool provides a more straightforward command-line interface for creating manifest lists
- Better integration: manifest-tool is specifically designed for manifest list/OCI index creation and management
- Cross-platform compatibility: Works with both Docker v2.2 manifest lists and OCI v1 indexes
- Template-based approach: The --template and --platforms flags provide a cleaner way to specify multi-arch images
2025-09-24 11:24:33 -04:00
Matt McCormick 6ea98ba7f7 Merge pull request #909 from thewtex/manylinux-2-28-gcc-version
manylinux_2_28: GCC toolset version 14 sudo removal
2025-09-13 15:43:56 -04:00
Matt McCormick 015205b0c9 manylinux_2_28: GCC toolset version 14 sudo removal 2025-09-12 16:51:26 -04:00
Matt McCormick 87b9db46eb Merge pull request #908 from thewtex/emscripten-4.0.14
web-wasm: bump emscripten to 4.0.14
2025-09-11 10:06:47 -04:00
Matt McCormick 2eaff8a971 Merge pull request #907 from thewtex/manylinux-2-28-x64-bump
manylinux_2_28_x64: bump base to 2025.08.12-1
2025-09-11 08:27:58 -04:00
Matt McCormick c59cf19b0b web-wasm: bump emscripten to 4.0.14 2025-09-10 15:28:59 -04:00
Matt McCormick d59579d028 manylinux_2_28_x64: bump base to 2025.08.12-1
Relatively recent image that passed container security checks.
2025-09-10 15:16:29 -04:00
Matt McCormick b1ae758f3d Merge pull request #906 from dockcross/dependabot/github_actions/actions/stale-10
build(deps): bump actions/stale from 9 to 10
2025-09-10 14:41:12 -04:00
Matt McCormick c5d3885212 Merge pull request #905 from jcfr/update-imagefiles-utils-script
chore(imagesfiles): Refactor script introducing fetch_source function
2025-09-10 14:39:43 -04:00
dependabot[bot] 9b52d93255 build(deps): bump actions/stale from 9 to 10
Bumps [actions/stale](https://github.com/actions/stale) from 9 to 10.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/v9...v10)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-version: '10'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-04 18:02:02 +00:00
Jean-Christophe Fillion-Robin e52623c8dc fix(install-cmake-binary): Revert back to installing upstream CMake package
Since the Centos 5 image is not maintained anymore, there is no need to install
the custom CMake package originally intended to support GLIBC version from Centos 5.
2025-08-27 12:34:45 -04:00
Jean-Christophe Fillion-Robin 9f4e0b7413 chore(imagesfiles): Refactor script introducing fetch_source function
Update options preferring their more explicit long form:
`-f` is `--fail`
`-s` is `--silent`
`-S` is `--show-error`
`-L` is `--location`

Additionally, `-O` is removed in favor of explicitly specifying the output file using `-o`
2025-08-27 11:57:08 -04:00
Steffen Winter 4a8ba629f6 fix: use more portable type -p to find executable
`which` is not guaranteed to be installed on all machines. Since the
script is meant to be run on the user's host machine it is more portable
to use `type -p` here.

Closes: https://github.com/dockcross/dockcross/issues/880
2025-08-25 22:36:16 +02:00
Jonas Vautherin 0a27819132 Merge pull request #903 from dockcross/update-android-to-sdk-24
Update Android SDK to 24
2025-08-18 08:02:40 +02:00
Jonas Vautherin c756bd6080 Update Android SDK to 24 2025-08-16 13:32:11 +02:00
Matt McCormick 7075966713 Merge pull request #902 from dockcross/dependabot/github_actions/actions/checkout-5
build(deps): bump actions/checkout from 4 to 5
2025-08-13 13:51:27 -04:00
dependabot[bot] 70ac69b358 build(deps): bump actions/checkout from 4 to 5
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-12 20:28:23 +00:00
Bensuperpc 0415f7888d Merge pull request #899 from bensuperpc/update-ci
Add SQLite test build and update Makefile
2025-08-08 18:11:17 +02:00
Jonas Vautherin 886c97e98f Merge pull request #900 from dockcross/dependabot/github_actions/actions/download-artifact-5
build(deps): bump actions/download-artifact from 4 to 5
2025-08-07 19:08:02 +02:00
dependabot[bot] 6532c5bdee build(deps): bump actions/download-artifact from 4 to 5
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 4 to 5.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-06 18:42:20 +00:00
Bensuperpc 0e30f0a04e Add SQLite test build and update Makefile
Signed-off-by: Bensuperpc <bensuperpc@gmail.com>
2025-08-05 09:08:38 +02:00
Jonas Vautherin 86f66d2270 Merge pull request #895 from Enaium/master
Update ndk to r28b
2025-07-31 23:57:06 +02:00
Jonas Vautherin a9155a09f6 Disable unmaintained C-Plus-Plus build test 2025-07-31 07:01:11 +02:00
Jean-Christophe Fillion-Robin 14a29475ca Merge pull request #897 from jcfr/update-install-gosu-binary-to-prefer-checking-against-secured-key-server
fix(install-gosu-binary): Prefer checking key from server using "hkps" protocol
2025-07-22 13:24:49 -04:00
Jean-Christophe Fillion-Robin f48bb9b136 fix(entrypoint.sh): Avoid error if rustup is not installed
Only move `/root/.rustup` and `/root/.cargo` directories if they exist.
This prevents errors when re-using the script in environments where
Rust is not installed (e.g. https://github.com/dockbuild/dockbuild).

Previously, `mv` would fail if either directory was missing:

```
mv: cannot stat '/root/.rustup': No such file or directory
mv: cannot stat '/root/.cargo': No such file or directory
```
2025-07-22 13:23:18 -04:00
Jean-Christophe Fillion-Robin fe6baacdd3 fix(install-gosu-binary): Prefer checking key from server using "hkps" protocol 2025-07-21 18:26:10 -04:00
Jonas Vautherin 11090d1ded Update Stockfish to 17.1 2025-07-15 12:24:53 +02:00
Enaium 731b331faf Update ndk to r28b 2025-07-07 11:07:43 +08:00
Matt McCormick 70cca217e4 Merge pull request #894 from drinkcat/dev-pts-0-silence
entrypoint.sh: Silence errors if /dev/pts/0 does not exist
2025-07-02 16:27:25 -04:00
Nicolas Boichat 52604c0b66 entrypoint.sh: Silence errors if /dev/pts/0 does not exist 2025-07-02 11:41:08 +08:00
Matt McCormick 3deaae3929 Merge pull request #891 from maxiaogood/maxiao_fix_dev_pts
fix /dev/pts/0 permissions
2025-06-10 22:35:40 -04:00
Matt McCormick 15f69e2d8a Merge pull request #888 from thewtex/deploy-multi-host-name
ci: fix multi-host deploy import image name
2025-06-08 08:52:56 -04:00
Matt McCormick c31dde3d41 Merge pull request #887 from drinkcat/move-rust
Speed up dockcross entrypoint
2025-06-07 22:11:55 -04:00
Matthew McCormick 3ada9c5df8 ci: fix multi-host deploy import image name
remove -$(HOST_NAME) from the image name. It is on the tag.
2025-06-07 22:10:21 -04:00
Matt McCormick 518960a612 Merge pull request #892 from thewtex/musl-cc-https
linux-arm: use https for musl.cc downloads
2025-06-07 22:08:11 -04:00
Matt McCormick 1bebfd7300 linux-arm-musl: use mirror of musl.cc sources for reliability 2025-06-07 17:15:41 -04:00
Matt McCormick ce8865c0af linux-arm: use https for musl.cc downloads 2025-06-06 15:33:29 -04:00
maxiao dcb6bde44b Change ownership of /dev/pts/0 to new user 2025-05-30 23:17:25 +08:00
maxiao 0ca299216e fix /dev/pts/0 permissions 2025-05-30 23:06:00 +08:00
Nicolas Boichat 27e0cf6c78 imagefiles/entrypoint.sh: Move rust/cargo directories
Presumably we do not need those as root.
2025-05-28 15:31:51 +02:00
Nicolas Boichat 494c154b87 imagefiles/entrypoint.sh: Remove sync call
This slows down the container startup for what appears to be no
good reason.

This workaround was added in 2016:
dd9d902538 ,
see also https://github.com/moby/moby/issues/13594#issuecomment-262441366 ,
and hopefully AUFS has been fixed by now.
2025-05-28 14:41:52 +02:00
Matt McCormick abab9c6b4b Merge pull request #885 from thewtex/host-arch-syntax
Makefile: address HOST_ARCH specification syntax
2025-05-27 10:49:31 -04:00
Matt McCormick d823872763 Makefile: address HOST_ARCH specification syntax
For:

```
Makefile:297: target '-e' given more than once in the same rule
35
Makefile:305: warning: overriding recipe for target 'base-shell'
36
Makefile:298: warning: ignoring old recipe for target 'base-shell'
37
Makefile:305: warning: overriding recipe for target 'uname'
38
Makefile:298: warning: ignoring old recipe for target 'uname'
39
Makefile:305: warning: overriding recipe for target '-m'
40
Makefile:298: warning: ignoring old recipe for target '-m'
41
Makefile:305: warning: overriding recipe for target '|'
42
Makefile:298: warning: ignoring old recipe for target '|'
43
Makefile:305: warning: overriding recipe for target 'sed'
44
Makefile:298: warning: ignoring old recipe for target 'sed'
45
Makefile:305: warning: overriding recipe for target '-e'
46
Makefile:298: warning: ignoring old recipe for target '-e'
47
Makefile:305: warning: overriding recipe for target ''s/x86_64/amd64/''
48
Makefile:298: warning: ignoring old recipe for target ''s/x86_64/amd64/''
```
2025-05-26 17:45:25 -04:00
Matt McCormick 95d67e95d0 Merge pull request #882 from thewtex/python-version-bump
manylinux: bump python script version from 3.8 to 3.11
2025-05-23 15:04:36 -04:00
Matt McCormick 72c453f7c1 manylinux: bump python script version from 3.8 to 3.11 2025-05-22 14:27:42 -04:00
Matt McCormick 1cfb3b1459 Merge pull request #881 from thewtex/ci-deploy-multiarch
Ci deploy multiarch
2025-05-22 14:26:47 -04:00
Matthew McCormick a10699233d ci: mock HOST_ARCH for image tagging and push during deployment
We want to apply the versioned tag.
2025-05-21 17:49:04 -04:00
Matthew McCormick 9668cbac87 ci: specify tag when loading images for deployment
If not specified, the default is `<none>` instead of the expected
latest-$(HOST_ARCH).
2025-05-21 17:39:54 -04:00
Matt McCormick a3b42cd215 Merge pull request #878 from elupus/patch-1
Add CROSS_ROOT env variable on windows
2025-03-24 15:49:47 -04:00
Joakim Plate bcc2e1c2a5 Add CROSS_ROOT env variable on windows
The cross root variable is useful when there is need to install additional libs in a child dockerfile, so ensure it is set in the windows
variants.
2025-03-24 14:55:54 +01:00
Jonas Vautherin 4bd0eec07e Merge pull request #877 from dockcross/fix-cmake-prefix-path
Add CMAKE_PREFIX_PATH to CMAKE_FIND_ROOT_PATH
2025-03-11 01:11:42 +01:00
Jonas Vautherin 5836581678 Merge pull request #876 from dockcross/podman-fix-perl-build
Untar perl with --no-same-owner
2025-03-11 01:10:44 +01:00
Jonas Vautherin 83766c341d Add CMAKE_PREFIX_PATH to CMAKE_FIND_ROOT_PATH 2025-03-09 01:43:04 +01:00
Jonas Vautherin 663c6da5bf Untar perl with --no-same-owner 2025-03-08 16:25:12 +01:00
Matt McCormick 86f7a8625c Merge pull request #875 from VxDxK/rust-in-aarch64-linux-musl
Add Rust support to linux-arm64-musl
2025-03-06 07:10:02 -05:00
Matt McCormick b73eaf9a77 Merge pull request #872 from thewtex/deploy-multi-arch
ci: fix multiarch deploy path
2025-03-05 21:13:02 -05:00
Vadim Ponomarev 7edeef6bc2 Support building rust binaries for aarch64-linux-musl 2025-03-06 00:41:31 +03:00
Matt McCormick 91a1cfe30b ci: fix multiarch deploy path
Use the directory, similar to `base`.
2025-03-05 12:41:36 -05:00
Matt McCormick 762ed4a396 Merge pull request #863 from hjmjohnson/master
ENH: Adding initial manylinux_2_34-x64 support.
2025-03-05 12:40:57 -05:00
Hans Johnson b25c978187 ENH: Update to latest fully passing release
quay.io/pypa/manylinux_2_28_x86_64:2025-02-15-d68c3fb

The release 2025-02-15-d68c3fb is the latest release
that has no security failures identified.
2025-03-04 14:45:38 -06:00
Hans Johnson 2235db7afb BUG: Update openssl 1.1.1w building with c99 conformance
```
test/v3ext.c:201:24: error: implicit declaration of function 'memcmp' [-Wimplicit-function-declaration]
  201 |         if (!TEST_true(memcmp(ip1->data, ip2->data, ip1->length) <= 0))
      |                        ^~~~~~
test/testutil.h:360:66: note: in definition of macro 'TEST_true'
  360 | # define TEST_true(a)         test_true(__FILE__, __LINE__, #a, (a) != 0)
      |                                                                  ^
test/v3ext.c:18:1: note: include '<string.h>' or provide a declaration of 'memcmp'
   17 | #include "testutil.h"
  +++ |+#include <string.h>
   18 |
```
2025-03-04 14:43:18 -06:00
Hans Johnson 1678be2d0d ENH: Update to latest fully passing release
The release 2025-02-23-361da4c is the latest release
that has no security failures identified.
2025-03-04 12:07:38 -06:00
Hans Johnson 16e96d1b07 BUG: Install missing library libatomic
```txt
411.0 /tmp/tmp.9qZYWcxd6F/rustup-init: error while loading shared libraries: libatomic.so.1: cannot open shared object file: No such file or directory
411.0 /tmp/tmp.9qZYWcxd6F/rustup-init: error while loading shared libraries: libatomic.so.1: cannot open shared object file: No such file or directory
------
Dockerfile:97
--------------------
  96 |
  97 | >>> RUN \
  98 | >>>   X86_FLAG=$([ "$DEFAULT_DOCKCROSS_IMAGE" = "dockcross/manylinux2014-x86" ] && echo "-32" || echo "") && \
  99 | >>>   /buildscripts/build-and-install-openssl.sh $X86_FLAG && \
 100 | >>>   /buildscripts/build-and-install-openssh.sh && \
 101 | >>>   /buildscripts/build-and-install-curl.sh && \
 102 | >>>   /buildscripts/build-and-install-git.sh && \
 103 | >>>   /buildscripts/build-and-install-cmake.sh $X86_FLAG && \
 104 | >>>   /buildscripts/build-and-install-rustup.sh && \
 105 | >>>   /buildscripts/install-liquidprompt-binary.sh && \
 106 | >>>   PYTHON=$([ -e /opt/python/cp38-cp38/bin/python ] && echo "/opt/python/cp38-cp38/bin/python" || echo "python3") && \
 107 | >>>   /buildscripts/install-python-packages.sh -python ${PYTHON} && \
 108 | >>>   /buildscripts/build-and-install-ninja.sh -python ${PYTHON} && \
 109 | >>>   /buildscripts/build-and-install-flatcc.sh && \
 110 | >>>   rm -rf /buildscripts
 111 |
--------------------
ERROR: failed to solve: process "/bin/sh -c X86_FLAG=$([ \"$DEFAULT_DOCKCROSS_IMAGE\" = \"dockcross/manylinux2014-x86\" ] && echo \"-32\" || echo \"\") &&   /buildscripts/build-and-install-openssl.sh $X86_FLAG &&   /buildscripts/build-and-install-openssh.sh &&   /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/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 &&   rm -rf /buildscripts" did not complete successfully: exit code: 1
```
2025-03-04 12:06:05 -06:00
Hans Johnson 7317e5bf2a ENH: Adding initial manylinux_2_34-x64 support. 2025-03-04 06:36:05 -06:00
Hans Johnson 08ddf8271b ENH: Update manylinux_2_28-x64 to latest version
manylinux_2_28-x64 now supports the gcc 14 toolchain.
2025-03-04 06:36:05 -06:00
Matt McCormick e66c1880ec Merge pull request #864 from hjmjohnson/fix-new-docker-ENV-syntax
Fix new docker env syntax
2025-03-03 16:15:42 -05:00
Bensuperpc ec5e88f98c Merge pull request #865 from bensuperpc/update-crosstool-ng-127
Update Crosstool-ng 1.26.0 to 1.27.0 on linux-arm64 (keep same GCC, glibc etc...)
Update OpenSSL from 1.1.1o to 1.1.1w
Update Ninja from 1.11.1 to 1.12.1
Update git from 2.42.0 to 2.48.1
Update Liquidpromt from 1.11 to 1.12 and add to env ARG
2025-03-02 20:18:18 +01:00
Hans Johnson 49d9ab4342 COMP: Remove docker build warning
- LegacyKeyValueFormat: "ENV key=value" should be used
  instead of legacy "ENV key value" format (line 42)

"""
The new format for declaring environment variables in Dockerfiles is ENV
key=value. This format, where the key and value are separated by an
equals sign (=), is the recommended approach. The older format, ENV key
value (with a space as a separator), is deprecated.
""" -- google search
2025-03-02 09:28:39 -06:00
Matt McCormick c76accc121 Merge pull request #871 from drinkcat/crosstool-no-progress-bar
*/crosstool-ng.config: Set CT_LOG_PROGRESS_BAR to no
2025-02-28 16:47:15 -05:00
Nicolas Boichat 925499ed12 */crosstool-ng.config: Set CT_LOG_PROGRESS_BAR to no
The crosstool progress bar completely saturates the CI logs, while
providing little added value.
2025-02-28 10:45:27 +01:00
Matt McCormick 37e2800939 Merge pull request #869 from drinkcat/cmake_find_root_fix
*/Toolchain.cmake: Set CMAKE_FIND_ROOT_PATH_LIBRARY/INCLUDE to ONLY
2025-02-27 13:45:24 -05:00
Matt McCormick 9e8e187280 Merge pull request #867 from dockcross/android-add-rust
Install rustup globally and add Rust support to Android images
2025-02-27 13:45:00 -05:00
Matt McCormick a08b4afce0 Merge pull request #868 from jspanchu/bump-emscripten-4.0.3
web-wasm: bump emscripten to 4.0.3
2025-02-27 13:44:18 -05:00
Jonas Vautherin a41e71ea67 Update README to mention Rust support 2025-02-25 23:21:11 +01:00
Jonas Vautherin 283f79eacf Add rust support to android-x86_64 2025-02-25 23:21:10 +01:00
Jonas Vautherin 4a4babf7fa Add rust support to android-x86 2025-02-25 23:21:10 +01:00
Jonas Vautherin e6619f6a22 Add rust support to android-arm 2025-02-25 23:21:09 +01:00
Jonas Vautherin d91bdd6564 Add rust support to android-arm64 2025-02-25 23:21:07 +01:00
Jonas Vautherin 133cdd4bf5 Install rustup in common.docker 2025-02-25 23:21:05 +01:00
Jaswant Panchumarti 2592f3a90f web-wasm: bump emscripten to 4.0.3 2025-02-25 10:49:40 -05:00
Nicolas Boichat 69c4db9338 */Toolchain.cmake: Set CMAKE_FIND_ROOT_PATH_LIBRARY/INCLUDE to ONLY
For some reason, the default setting in all Toolchain.cmake
is:
```
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
```

For cross-compilation, CMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER
makes sense (we only want to find executables in host system root),
but CMAKE_FIND_ROOT_PATH_MODE_LIBRARY/INCLUDE should be set
to ONLY, otherwise cmake may find libraries in host system root,
and try to link with incompatible libraries (instead of
cross-compilation sysroot).

Fixes #431.
2025-02-25 16:14:39 +01:00
168 changed files with 4775 additions and 898 deletions
+1 -1
View File
@@ -6,7 +6,7 @@ jobs:
stale:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v9
- uses: actions/stale@v10
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
exempt-issue-milestones: 'future,alpha,beta,release,bugfix,improvement,enhancement,help wanted'
+225 -149
View File
@@ -18,7 +18,7 @@ jobs:
runs-on: ubuntu-22.04
steps:
- name: checkout code
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
submodules: "recursive"
fetch-depth: 1
@@ -32,10 +32,10 @@ jobs:
- name: archive base
run: |
mkdir -p cache
docker export dockcross/base:latest | xz -e9 -T0 > ./cache/base.tar.xz
docker export dockcross/base:latest | xz -e6 -T0 > ./cache/base.tar.xz
- name: save base
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: cache
path: ./cache
@@ -43,7 +43,7 @@ jobs:
- name: Login to Docker Hub
if: github.ref == 'refs/heads/master'
uses: docker/login-action@v3
uses: docker/login-action@v4
with:
username: ${{ secrets.DOCKER_USER }}
password: ${{ secrets.DOCKER_PASS }}
@@ -62,7 +62,7 @@ jobs:
os: [ubuntu-22.04, ubuntu-22.04-arm]
steps:
- name: checkout code
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
submodules: "recursive"
fetch-depth: 1
@@ -83,10 +83,10 @@ jobs:
- name: archive base
run: |
mkdir -p cache
docker export dockcross/base:latest-${{ env.HOST_ARCH }} | xz -e9 -T0 > ./cache/base-multiarch.tar.xz
docker export dockcross/base:latest-${{ env.HOST_ARCH }} | xz -e6 -T0 > ./cache/base-multiarch.tar.xz
- name: save base
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: cache-${{ matrix.os }}
path: ./cache
@@ -94,7 +94,7 @@ jobs:
- name: Login to Docker Hub
if: github.ref == 'refs/heads/master'
uses: docker/login-action@v3
uses: docker/login-action@v4
with:
username: ${{ secrets.DOCKER_USER }}
password: ${{ secrets.DOCKER_PASS }}
@@ -126,8 +126,8 @@ jobs:
openssl_arg: "android-arm no-shared",
C: "no",
C_arg: "",
C-Plus-Plus: "yes",
C-Plus-Plus_arg: "",
SQLite: "yes",
SQLite_arg: "",
llama_cpp: "no",
llama_cpp_arg: "",
fmt: "no",
@@ -148,8 +148,8 @@ jobs:
openssl_arg: "android-arm64 no-shared",
C: "no",
C_arg: "",
C-Plus-Plus: "yes",
C-Plus-Plus_arg: "",
SQLite: "yes",
SQLite_arg: "",
llama_cpp: "no",
llama_cpp_arg: "",
fmt: "no",
@@ -170,8 +170,8 @@ jobs:
openssl_arg: "android-x86 no-shared",
C: "no",
C_arg: "",
C-Plus-Plus: "yes",
C-Plus-Plus_arg: "",
SQLite: "yes",
SQLite_arg: "",
llama_cpp: "no",
llama_cpp_arg: "",
fmt: "no",
@@ -192,8 +192,8 @@ jobs:
openssl_arg: "android-x86_64 no-shared",
C: "no",
C_arg: "",
C-Plus-Plus: "yes",
C-Plus-Plus_arg: "",
SQLite: "yes",
SQLite_arg: "",
llama_cpp: "no",
llama_cpp_arg: "",
fmt: "no",
@@ -215,8 +215,8 @@ jobs:
openssl_arg: "linux-aarch64",
C: "yes",
C_arg: "",
C-Plus-Plus: "no",
C-Plus-Plus_arg: "",
SQLite: "yes",
SQLite_arg: "",
llama_cpp: "yes",
llama_cpp_arg: "",
fmt: "yes",
@@ -237,8 +237,8 @@ jobs:
openssl_arg: "linux-aarch64",
C: "yes",
C_arg: "",
C-Plus-Plus: "yes",
C-Plus-Plus_arg: "",
SQLite: "yes",
SQLite_arg: "",
llama_cpp: "no",
llama_cpp_arg: "",
fmt: "yes",
@@ -259,8 +259,8 @@ jobs:
openssl_arg: "linux-aarch64",
C: "yes",
C_arg: "",
C-Plus-Plus: "yes",
C-Plus-Plus_arg: "",
SQLite: "yes",
SQLite_arg: "",
llama_cpp: "no",
llama_cpp_arg: "",
fmt: "yes",
@@ -281,8 +281,8 @@ jobs:
openssl_arg: "linux-aarch64",
C: "yes",
C_arg: "",
C-Plus-Plus: "yes",
C-Plus-Plus_arg: "",
SQLite: "yes",
SQLite_arg: "",
llama_cpp: "no",
llama_cpp_arg: "",
fmt: "yes",
@@ -304,8 +304,8 @@ jobs:
openssl_arg: "",
C: "no",
C_arg: "",
C-Plus-Plus: "yes",
C-Plus-Plus_arg: "",
SQLite: "yes",
SQLite_arg: "",
llama_cpp: "no",
llama_cpp_arg: "",
fmt: "yes",
@@ -327,8 +327,8 @@ jobs:
openssl_arg: "linux-armv4",
C: "no",
C_arg: "",
C-Plus-Plus: "yes",
C-Plus-Plus_arg: "",
SQLite: "yes",
SQLite_arg: "",
llama_cpp: "no",
llama_cpp_arg: "",
fmt: "yes",
@@ -349,8 +349,8 @@ jobs:
openssl_arg: "linux-armv4",
C: "no",
C_arg: "",
C-Plus-Plus: "yes",
C-Plus-Plus_arg: "",
SQLite: "yes",
SQLite_arg: "",
llama_cpp: "no",
llama_cpp_arg: "",
fmt: "yes",
@@ -371,8 +371,8 @@ jobs:
openssl_arg: "linux-armv4",
C: "no",
C_arg: "",
C-Plus-Plus: "yes",
C-Plus-Plus_arg: "",
SQLite: "yes",
SQLite_arg: "",
llama_cpp: "no",
llama_cpp_arg: "",
fmt: "yes",
@@ -394,8 +394,8 @@ jobs:
openssl_arg: "linux-armv4",
C: "no",
C_arg: "",
C-Plus-Plus: "yes",
C-Plus-Plus_arg: "",
SQLite: "yes",
SQLite_arg: "",
llama_cpp: "no",
llama_cpp_arg: "",
fmt: "yes",
@@ -416,8 +416,8 @@ jobs:
openssl_arg: "linux-armv4",
C: "no",
C_arg: "",
C-Plus-Plus: "yes",
C-Plus-Plus_arg: "",
SQLite: "yes",
SQLite_arg: "",
llama_cpp: "no",
llama_cpp_arg: "",
fmt: "yes",
@@ -438,8 +438,8 @@ jobs:
openssl_arg: "linux-armv4",
C: "no",
C_arg: "",
C-Plus-Plus: "yes",
C-Plus-Plus_arg: "",
SQLite: "yes",
SQLite_arg: "",
llama_cpp: "no",
llama_cpp_arg: "",
fmt: "yes",
@@ -461,8 +461,8 @@ jobs:
openssl_arg: "linux-armv4",
C: "no",
C_arg: "",
C-Plus-Plus: "yes",
C-Plus-Plus_arg: "",
SQLite: "yes",
SQLite_arg: "",
llama_cpp: "no",
llama_cpp_arg: "",
fmt: "yes",
@@ -483,8 +483,8 @@ jobs:
openssl_arg: "linux-armv4",
C: "no",
C_arg: "",
C-Plus-Plus: "yes",
C-Plus-Plus_arg: "",
SQLite: "yes",
SQLite_arg: "",
llama_cpp: "no",
llama_cpp_arg: "",
fmt: "yes",
@@ -505,8 +505,8 @@ jobs:
openssl_arg: "linux-armv4",
C: "no",
C_arg: "",
C-Plus-Plus: "yes",
C-Plus-Plus_arg: "",
SQLite: "yes",
SQLite_arg: "",
llama_cpp: "no",
llama_cpp_arg: "",
fmt: "yes",
@@ -527,8 +527,8 @@ jobs:
openssl_arg: "linux-armv4",
C: "no",
C_arg: "",
C-Plus-Plus: "yes",
C-Plus-Plus_arg: "",
SQLite: "yes",
SQLite_arg: "",
llama_cpp: "no",
llama_cpp_arg: "",
fmt: "yes",
@@ -549,8 +549,8 @@ jobs:
openssl_arg: "linux-armv4",
C: "no",
C_arg: "",
C-Plus-Plus: "yes",
C-Plus-Plus_arg: "",
SQLite: "yes",
SQLite_arg: "",
llama_cpp: "no",
llama_cpp_arg: "",
fmt: "yes",
@@ -572,8 +572,8 @@ jobs:
openssl_arg: "linux-x86",
C: "yes",
C_arg: "",
C-Plus-Plus: "yes",
C-Plus-Plus_arg: "",
SQLite: "yes",
SQLite_arg: "",
llama_cpp: "no",
llama_cpp_arg: "",
fmt: "yes",
@@ -595,8 +595,8 @@ jobs:
openssl_arg: "linux-generic32",
C: "yes",
C_arg: "",
C-Plus-Plus: "yes",
C-Plus-Plus_arg: "",
SQLite: "yes",
SQLite_arg: "",
llama_cpp: "no",
llama_cpp_arg: "",
fmt: "yes",
@@ -618,8 +618,8 @@ jobs:
openssl_arg: "linux-x86_64",
C: "yes",
C_arg: "",
C-Plus-Plus: "yes",
C-Plus-Plus_arg: "",
SQLite: "yes",
SQLite_arg: "",
llama_cpp: "no",
llama_cpp_arg: "",
fmt: "yes",
@@ -640,8 +640,8 @@ jobs:
openssl_arg: "linux-generic64 no-tests no-asm no-hw no-dtls no-shared no-dso",
C: "no",
C_arg: "",
C-Plus-Plus: "yes",
C-Plus-Plus_arg: "",
SQLite: "no",
SQLite_arg: "",
llama_cpp: "no",
llama_cpp_arg: "",
fmt: "yes",
@@ -662,8 +662,8 @@ jobs:
openssl_arg: "linux-x86_64-clang",
C: "yes",
C_arg: "",
C-Plus-Plus: "yes",
C-Plus-Plus_arg: "",
SQLite: "yes",
SQLite_arg: "",
llama_cpp: "no",
llama_cpp_arg: "",
fmt: "yes",
@@ -684,8 +684,8 @@ jobs:
openssl_arg: "linux-x86_64",
C: "yes",
C_arg: "",
C-Plus-Plus: "yes",
C-Plus-Plus_arg: "",
SQLite: "yes",
SQLite_arg: "",
llama_cpp: "no",
llama_cpp_arg: "",
fmt: "yes",
@@ -707,8 +707,8 @@ jobs:
openssl_arg: "linux-generic32",
C: "no",
C_arg: "",
C-Plus-Plus: "yes",
C-Plus-Plus_arg: "",
SQLite: "yes",
SQLite_arg: "",
llama_cpp: "no",
llama_cpp_arg: "",
fmt: "yes",
@@ -729,8 +729,8 @@ jobs:
openssl_arg: "linux-generic64",
C: "no",
C_arg: "",
C-Plus-Plus: "yes",
C-Plus-Plus_arg: "",
SQLite: "yes",
SQLite_arg: "",
llama_cpp: "no",
llama_cpp_arg: "",
fmt: "yes",
@@ -752,8 +752,8 @@ jobs:
openssl_arg: "linux64-s390x",
C: "yes",
C_arg: "",
C-Plus-Plus: "yes",
C-Plus-Plus_arg: "",
SQLite: "yes",
SQLite_arg: "",
llama_cpp: "no",
llama_cpp_arg: "",
fmt: "yes",
@@ -763,6 +763,24 @@ jobs:
cpython: "yes",
cpython_arg: "--host=s390x-ibm-linux-gnu --target=s390x-ibm-linux-gnu",
}
# Linux loongarch64 images
- {
image: "linux-loongarch64",
stockfish: "yes",
stockfish_arg: "ARCH=loongarch64",
ninja: "yes",
ninja_arg: "",
openssl: "yes",
openssl_arg: "linux64-loongarch64",
C: "yes",
C_arg: "-DCMAKE_C_FLAGS=-Wno-incompatible-pointer-types",
C-Plus-Plus: "yes",
C-Plus-Plus_arg: "",
fmt: "yes",
fmt_arg: "",
cpython: "yes",
cpython_arg: "--host=loongarch64-unknown-linux-gnu --target=loongarch64-unknown-linux-gnu",
}
# Linux mips images
- {
image: "linux-mips",
@@ -775,8 +793,8 @@ jobs:
openssl_arg: "linux-generic32",
C: "yes",
C_arg: "",
C-Plus-Plus: "yes",
C-Plus-Plus_arg: "",
SQLite: "yes",
SQLite_arg: "",
llama_cpp: "no",
llama_cpp_arg: "",
fmt: "yes",
@@ -797,8 +815,8 @@ jobs:
openssl_arg: "linux-generic32",
C: "no",
C_arg: "",
C-Plus-Plus: "yes",
C-Plus-Plus_arg: "",
SQLite: "yes",
SQLite_arg: "",
llama_cpp: "no",
llama_cpp_arg: "",
fmt: "yes",
@@ -820,8 +838,8 @@ jobs:
openssl_arg: "linux-generic32",
C: "yes",
C_arg: "",
C-Plus-Plus: "yes",
C-Plus-Plus_arg: "",
SQLite: "yes",
SQLite_arg: "",
llama_cpp: "no",
llama_cpp_arg: "",
fmt: "yes",
@@ -842,8 +860,8 @@ jobs:
openssl_arg: "linux-ppc",
C: "yes",
C_arg: "",
C-Plus-Plus: "no",
C-Plus-Plus_arg: "",
SQLite: "yes",
SQLite_arg: "",
llama_cpp: "yes",
llama_cpp_arg: "",
fmt: "yes",
@@ -865,8 +883,8 @@ jobs:
openssl_arg: "linux-ppc64le",
C: "yes",
C_arg: "",
C-Plus-Plus: "no",
C-Plus-Plus_arg: "",
SQLite: "yes",
SQLite_arg: "",
llama_cpp: "yes",
llama_cpp_arg: "",
fmt: "yes",
@@ -888,8 +906,8 @@ jobs:
openssl_arg: "linux-ppc64le",
C: "yes",
C_arg: "",
C-Plus-Plus: "yes",
C-Plus-Plus_arg: "",
SQLite: "yes",
SQLite_arg: "",
llama_cpp: "no",
llama_cpp_arg: "",
fmt: "yes",
@@ -911,8 +929,8 @@ jobs:
openssl_arg: "linux-generic32 no-asm no-threads no-engine no-hw no-weak-ssl-ciphers no-dtls no-shared no-dso",
C: "no",
C_arg: "",
C-Plus-Plus: "yes",
C-Plus-Plus_arg: "",
SQLite: "yes",
SQLite_arg: "",
llama_cpp: "no",
llama_cpp_arg: "",
fmt: "no",
@@ -934,8 +952,8 @@ jobs:
openssl_arg: "linux-generic64 no-asm no-threads no-engine no-hw no-weak-ssl-ciphers no-dtls no-shared no-dso",
C: "no",
C_arg: "",
C-Plus-Plus: "yes",
C-Plus-Plus_arg: "",
SQLite: "no",
SQLite_arg: "",
llama_cpp: "no",
llama_cpp_arg: "",
fmt: "no",
@@ -957,8 +975,8 @@ jobs:
openssl_arg: "mingw64 no-asm",
C: "no",
C_arg: "",
C-Plus-Plus: "no",
C-Plus-Plus_arg: "",
SQLite: "no",
SQLite_arg: "",
llama_cpp: "no",
llama_cpp_arg: "",
fmt: "yes",
@@ -979,8 +997,8 @@ jobs:
openssl_arg: "mingw64 no-asm",
C: "no",
C_arg: "",
C-Plus-Plus: "no",
C-Plus-Plus_arg: "",
SQLite: "no",
SQLite_arg: "",
llama_cpp: "no",
llama_cpp_arg: "",
fmt: "yes",
@@ -1001,8 +1019,8 @@ jobs:
openssl_arg: "mingw64 no-asm",
C: "no",
C_arg: "",
C-Plus-Plus: "no",
C-Plus-Plus_arg: "",
SQLite: "no",
SQLite_arg: "",
llama_cpp: "no",
llama_cpp_arg: "",
fmt: "yes",
@@ -1023,8 +1041,8 @@ jobs:
openssl_arg: "mingw64 no-asm",
C: "no",
C_arg: "",
C-Plus-Plus: "no",
C-Plus-Plus_arg: "",
SQLite: "no",
SQLite_arg: "",
llama_cpp: "no",
llama_cpp_arg: "",
fmt: "yes",
@@ -1046,8 +1064,8 @@ jobs:
openssl_arg: "mingw no-asm",
C: "no",
C_arg: "",
C-Plus-Plus: "no",
C-Plus-Plus_arg: "",
SQLite: "no",
SQLite_arg: "",
llama_cpp: "no",
llama_cpp_arg: "",
fmt: "yes",
@@ -1068,8 +1086,8 @@ jobs:
openssl_arg: "mingw no-asm",
C: "no",
C_arg: "",
C-Plus-Plus: "no",
C-Plus-Plus_arg: "",
SQLite: "no",
SQLite_arg: "",
llama_cpp: "no",
llama_cpp_arg: "",
fmt: "no",
@@ -1091,8 +1109,8 @@ jobs:
openssl_arg: "mingw no-asm",
C: "no",
C_arg: "",
C-Plus-Plus: "no",
C-Plus-Plus_arg: "",
SQLite: "no",
SQLite_arg: "",
llama_cpp: "no",
llama_cpp_arg: "",
fmt: "yes",
@@ -1113,8 +1131,8 @@ jobs:
openssl_arg: "mingw64 no-asm",
C: "no",
C_arg: "",
C-Plus-Plus: "no",
C-Plus-Plus_arg: "",
SQLite: "no",
SQLite_arg: "",
llama_cpp: "no",
llama_cpp_arg: "",
fmt: "yes",
@@ -1136,8 +1154,8 @@ jobs:
openssl_arg: "linux-x86_64",
C: "no",
C_arg: "",
C-Plus-Plus: "no",
C-Plus-Plus_arg: "",
SQLite: "yes",
SQLite_arg: "",
llama_cpp: "no",
llama_cpp_arg: "",
fmt: "yes",
@@ -1147,6 +1165,28 @@ jobs:
cpython: "yes",
cpython_arg: "",
}
- {
image: "manylinux_2_28-aarch64",
multiarch: "",
stockfish: "no",
stockfish_arg: "",
ninja: "no",
ninja_arg: "",
openssl: "yes",
openssl_arg: "linux-aarch64",
C: "no",
C_arg: "",
SQLite: "yes",
SQLite_arg: "",
llama_cpp: "no",
llama_cpp_arg: "",
fmt: "no",
fmt_arg: "",
raylib: "no",
raylib_arg: "",
cpython: "yes",
cpython_arg: "--host=aarch64-unknown-linux-gnu --target=aarch64-unknown-linux-gnu",
}
# manylinux2014 images
- {
image: "manylinux2014-x86",
@@ -1159,8 +1199,8 @@ jobs:
openssl_arg: "linux-x86",
C: "no",
C_arg: "",
C-Plus-Plus: "no",
C-Plus-Plus_arg: "",
SQLite: "yes",
SQLite_arg: "",
llama_cpp: "no",
llama_cpp_arg: "",
fmt: "yes",
@@ -1181,8 +1221,8 @@ jobs:
openssl_arg: "linux-x86_64",
C: "no",
C_arg: "",
C-Plus-Plus: "no",
C-Plus-Plus_arg: "",
SQLite: "yes",
SQLite_arg: "",
llama_cpp: "no",
llama_cpp_arg: "",
fmt: "yes",
@@ -1203,8 +1243,31 @@ jobs:
openssl_arg: "linux-aarch64",
C: "no",
C_arg: "",
C-Plus-Plus: "no",
C-Plus-Plus_arg: "",
SQLite: "yes",
SQLite_arg: "",
llama_cpp: "no",
llama_cpp_arg: "",
fmt: "no",
fmt_arg: "",
raylib: "no",
raylib_arg: "",
cpython: "yes",
cpython_arg: "--host=aarch64-unknown-linux-gnu --target=aarch64-unknown-linux-gnu",
}
# manylinux_2_34 aarch64 images
- {
image: "manylinux_2_34-aarch64",
multiarch: "",
stockfish: "no",
stockfish_arg: "",
ninja: "no",
ninja_arg: "",
openssl: "yes",
openssl_arg: "linux-aarch64",
C: "no",
C_arg: "",
SQLite: "yes",
SQLite_arg: "",
llama_cpp: "no",
llama_cpp_arg: "",
fmt: "no",
@@ -1226,17 +1289,18 @@ jobs:
openssl_arg: "linux-generic64 no-asm no-threads no-engine no-hw no-weak-ssl-ciphers no-dtls no-shared no-dso",
C: "no",
C_arg: "",
C-Plus-Plus: "no",
C-Plus-Plus_arg: "",
SQLite: "yes",
SQLite_arg: "",
llama_cpp: "no",
llama_cpp_arg: "",
fmt: "no",
fmt_arg: "",
raylib: "yes",
raylib: "no",
raylib_arg: "-DPLATFORM=Web",
cpython: "no",
cpython_arg: "",
}
# web-wasi images
- {
image: "web-wasi",
multiarch: "yes",
@@ -1248,8 +1312,8 @@ jobs:
openssl_arg: "linux-generic64 no-asm no-threads no-engine no-hw no-weak-ssl-ciphers no-dtls no-shared no-dso",
C: "no",
C_arg: "",
C-Plus-Plus: "no",
C-Plus-Plus_arg: "",
SQLite: "no",
SQLite_arg: "",
llama_cpp: "no",
llama_cpp_arg: "",
fmt: "no",
@@ -1259,6 +1323,7 @@ jobs:
cpython: "no",
cpython_arg: "",
}
# web-wasi-threads images
- {
image: "web-wasi-threads",
multiarch: "yes",
@@ -1270,8 +1335,8 @@ jobs:
openssl_arg: "linux-generic64 no-asm no-threads no-engine no-hw no-weak-ssl-ciphers no-dtls no-shared no-dso",
C: "no",
C_arg: "",
C-Plus-Plus: "no",
C-Plus-Plus_arg: "",
SQLite: "no",
SQLite_arg: "",
llama_cpp: "no",
llama_cpp_arg: "",
fmt: "no",
@@ -1293,8 +1358,8 @@ jobs:
openssl_arg: "",
C: "no",
C_arg: "",
C-Plus-Plus: "no",
C-Plus-Plus_arg: "",
SQLite: "no",
SQLite_arg: "",
llama_cpp: "no",
llama_cpp_arg: "",
fmt: "no",
@@ -1310,7 +1375,7 @@ jobs:
}
steps:
- name: checkout code
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
submodules: "recursive"
fetch-depth: 1
@@ -1322,7 +1387,7 @@ jobs:
run: |
echo "HOST_ARCH=$(uname -m | sed -e 's/x86_64/amd64/' -e 's/aarch64/arm64/')" >> $GITHUB_ENV
- uses: actions/download-artifact@v4
- uses: actions/download-artifact@v8
with:
name: cache
path: ./cache
@@ -1330,7 +1395,7 @@ jobs:
- name: load base
run: xz -d -k < ./cache/base.tar.xz | docker import - dockcross/base:latest
- uses: actions/download-artifact@v4
- uses: actions/download-artifact@v8
with:
name: cache-${{ matrix.os }}
path: ./cache
@@ -1354,15 +1419,15 @@ jobs:
make ${{ matrix.arch_name.image }}.test
fi
# Updated on 19/05/2022
# Updated on 15/07/2025
- name: stockfish build test
if: ${{ matrix.arch_name.stockfish == 'yes' && (matrix.arch_name.multiarch == 'yes' || env.HOST_ARCH == 'amd64') }}
run: |
git clone --depth 1 --branch sf_15 https://github.com/official-stockfish/Stockfish.git
cd Stockfish/src
./../../tools/dockcross-make-builder.sh ${{ matrix.arch_name.image }} net
./../../tools/dockcross-make-builder.sh ${{ matrix.arch_name.image }} build ${{ matrix.arch_name.stockfish_arg }} -j${nproc}
cd ../..
git clone --depth 1 --branch sf_17.1 https://github.com/official-stockfish/Stockfish.git
cd Stockfish
./../tools/dockcross-make-builder.sh ${{ matrix.arch_name.image }} -C src net
./../tools/dockcross-make-builder.sh ${{ matrix.arch_name.image }} -C src build ${{ matrix.arch_name.stockfish_arg }} -j${nproc}
cd ..
rm -rf Stockfish
# Updated on 12/09/2022
@@ -1373,13 +1438,13 @@ jobs:
cd ninja
./../tools/dockcross-cmake-builder.sh ${{ matrix.arch_name.image }} ${{ matrix.arch_name.ninja_arg }}
# Updated on 12/09/2022
# Updated on 04/04/2025 (Use openSSL_1_1_1w to fix error: implicit declaration of function 'memcmp')
- name: openssl build test
if: ${{ matrix.arch_name.openssl == 'yes' && (matrix.arch_name.multiarch == 'yes' || env.HOST_ARCH == 'amd64') }}
run: |
git clone --depth 1 --branch OpenSSL_1_1_1q https://github.com/openssl/openssl.git
git clone --depth 1 --branch OpenSSL_1_1_1w https://github.com/openssl/openssl.git
cd openssl
wget https://raw.githubusercontent.com/mavlink/MAVSDK/main/third_party/openssl/dockcross-android.patch
wget https://raw.githubusercontent.com/mavlink/MAVSDK/17ad598f0e004d225f5e939aa2947a95791f2f9b/cpp/third_party/openssl/dockcross-android.patch
patch -p 0 < dockcross-android.patch
./../tools/dockcross-command.sh ${{ matrix.arch_name.image }} ./Configure ${{ matrix.arch_name.openssl_arg }}
./../tools/dockcross-make-builder.sh ${{ matrix.arch_name.image }} -j${nproc}
@@ -1397,16 +1462,17 @@ jobs:
cd ..
rm -rf C
# 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') }}
# Updated on 03/08/2025
- name: SQLite build test
if: ${{ matrix.arch_name.SQLite == 'yes' && (matrix.arch_name.multiarch == 'yes' || env.HOST_ARCH == 'amd64') }}
run: |
git clone https://github.com/TheAlgorithms/C-Plus-Plus.git
cd C-Plus-Plus
git checkout 0594923efa8e6b006a5d754c5e7976850290577c
./../tools/dockcross-cmake-builder.sh ${{ matrix.arch_name.image }} ${{ matrix.arch_name.C-Plus-Plus_arg }}
git clone https://github.com/sqlite/sqlite.git
cd sqlite
git checkout 1cf61ce636915a5e92d4aa883755cee258aa98d6
./../tools/dockcross-command.sh ${{ matrix.arch_name.image }} ./configure ${{ matrix.arch_name.SQLite_arg }}
./../tools/dockcross-make-builder.sh ${{ matrix.arch_name.image }} -j${nproc} sqlite3 sqlite3.c sqldiff
cd ..
rm -rf C-Plus-Plus
rm -rf sqlite
# Updated on 03/08/2024
- name: llama.cpp build test
@@ -1483,19 +1549,19 @@ jobs:
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 }}.tar.xz
docker save dockcross/${{ matrix.arch_name.image }}:latest-${{ env.HOST_ARCH }} | xz -e6 -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
uses: actions/upload-artifact@v7
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 }}.tar.xz
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
uses: docker/login-action@v4
with:
username: ${{ secrets.DOCKER_USER }}
password: ${{ secrets.DOCKER_PASS }}
@@ -1515,43 +1581,53 @@ jobs:
image_name: ["linux-arm64", "web-wasm", "web-wasi", "web-wasi-threads"]
steps:
- name: checkout code
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
submodules: "recursive"
fetch-depth: 1
- name: download ${{ matrix.image_name }}-amd64
uses: actions/download-artifact@v4
uses: actions/download-artifact@v8
with:
name: cache-${{ matrix.image_name }}-amd64
path: ./cache/${{ matrix.image_name }}-amd64.tar.xz
path: ./cache-${{ matrix.image_name }}-amd64
- name: download ${{ matrix.image_name }}-arm64
uses: actions/download-artifact@v4
uses: actions/download-artifact@v8
with:
name: cache-${{ matrix.image_name }}-arm64
path: ./cache/${{ matrix.image_name }}-arm64.tar.xz
path: ./cache-${{ matrix.image_name }}-arm64
- name: load images
run: |
xz -d -k < ./cache/${{ matrix.image_name }}-amd64.tar.xz | docker import - dockcross/${{ matrix.image_name }}-amd64
xz -d -k < ./cache/${{ matrix.image_name }}-arm64.tar.xz | docker import - dockcross/${{ matrix.image_name }}-arm64
xz -d -k < ./cache-${{ matrix.image_name }}-amd64/${{ matrix.image_name }}-amd64.tar.xz | docker load
xz -d -k < ./cache-${{ matrix.image_name }}-arm64/${{ matrix.image_name }}-arm64.tar.xz | docker load
- name: Login to Docker Hub
if: github.ref == 'refs/heads/master'
uses: docker/login-action@v3
uses: docker/login-action@v4
with:
username: ${{ secrets.DOCKER_USER }}
password: ${{ secrets.DOCKER_PASS }}
- name: Install manifest-tool
if: github.ref == 'refs/heads/master'
run: |
wget https://github.com/estesp/manifest-tool/releases/latest/download/binaries-manifest-tool.tar.gz -O - | tar -xz
sudo cp manifest-tool-linux-amd64 /usr/local/bin/manifest-tool
sudo chmod +x /usr/local/bin/manifest-tool
- name: deploy-multi-arch
if: github.ref == 'refs/heads/master'
run: |
docker images
make ${{ matrix.image_name }}.tag-amd64
make ${{ matrix.image_name }}.tag-arm64
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
+1 -1
View File
@@ -18,7 +18,7 @@ jobs:
name: Shellcheck
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Run ShellCheck
uses: ludeeus/action-shellcheck@master
with:
+16 -16
View File
@@ -106,10 +106,10 @@ set(CMAKE_Fortran_COMPILER $ENV{FC})
set(CMAKE_CXX_FLAGS "-I ${cross_root}/include/")
set(CMAKE_FIND_ROOT_PATH ${cross_root} ${cross_root}/${cross_triple})
list(APPEND CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
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:
+85 -47
View File
@@ -8,7 +8,9 @@
# Common values: docker, podman, buildah
DOCKER := $(or $(OCI_EXE), docker)
BUILD_DOCKER := $(or $(BUILD_DOCKER), $(DOCKER))
BUILDAH := $(or $(BUILDAH_EXE), buildah)
MANIFEST_TOOL := $(or $(MANIFEST_TOOL_EXE), manifest-tool)
RM = --rm
# Name of the docker-equivalent executable for running test containers.
# Supports the use case:
#
@@ -30,7 +32,7 @@ TAG_FLAG := $(or $(TAG_FLAG), --tag)
ORG = dockcross
# Host architecture
HOST_ARCH := $(shell uname -m | sed -e 's/x86_64/amd64/' -e 's/aarch64/arm64/')
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
@@ -41,7 +43,8 @@ STANDARD_IMAGES := android-arm android-arm64 android-x86 android-x86_64 \
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 \
linux-loongarch64 linux-mips linux-mips-uclibc linux-mips-lts \
linux-ppc linux-ppc64le linux-ppc64le-lts linux-riscv64 linux-riscv32 linux-xtensa-uclibc \
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 +52,11 @@ 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_28-x64 manylinux_2_34-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 \
manylinux2014-aarch64 manylinux_2_28-aarch64 manylinux_2_34-aarch64 linux-arm64-lts \
web-wasm web-wasi web-wasi-emulated-threads web-wasi-threads \
linux-loongarch64 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 \
@@ -68,12 +72,12 @@ MULTIARCH_IMAGES := linux-arm64 \
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 manylinux2014-x64 manylinux2014-x86 \
manylinux2014-aarch64 web-wasm web-wasi-emulated-threads web-wasi-threads
NON_STANDARD_IMAGES := manylinux_2_28-x64 manylinux_2_34-x64 manylinux2014-x64 manylinux2014-x86 \
manylinux2014-aarch64 manylinux_2_28-aarch64 manylinux_2_34-aarch64 web-wasm web-wasi-emulated-threads web-wasi-threads
# Docker composite files
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 \
DOCKER_COMPOSITE_SOURCES = common.docker common.debian common.manylinux2014 common.manylinux_2_28 common.manylinux_2_34 common.buildroot \
common.crosstool common.webassembly common.windows common-manylinux.crosstool common-manylinux_2_28.crosstool common-manylinux_2_34.crosstool common.dockcross \
common.label-and-env
DOCKER_COMPOSITE_FOLDER_PATH = common/
DOCKER_COMPOSITE_PATH = $(addprefix $(DOCKER_COMPOSITE_FOLDER_PATH),$(DOCKER_COMPOSITE_SOURCES))
@@ -93,13 +97,6 @@ windows-armv7.test_ARGS = --exe-suffix ".exe"
windows-arm64.test_ARGS = --exe-suffix ".exe"
bare-armv7emhf-nano_newlib.test_ARGS = --linker-flags="--specs=nosys.specs"
# On CircleCI, do not attempt to delete container
# See https://circleci.com/docs/docker-btrfs-error/
RM = --rm
ifeq ("$(CIRCLECI)", "true")
RM =
endif
# Tag images with date and Git short hash in addition to revision
TAG := $(shell date '+%Y%m%d')-$(shell git rev-parse --short HEAD)
@@ -122,21 +119,8 @@ test: base.test $(addsuffix .test,$(IMAGES))
#
# Generic Targets (can specialize later).
#
$(GEN_IMAGE_DOCKERFILES) Dockerfile: %Dockerfile: %Dockerfile.in $(DOCKER_COMPOSITE_PATH)
sed \
-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.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' \
-e '/common-manylinux.crosstool/ r $(DOCKER_COMPOSITE_FOLDER_PATH)common-manylinux.crosstool' \
-e '/common.webassembly/ r $(DOCKER_COMPOSITE_FOLDER_PATH)common.webassembly' \
-e '/common.windows/ r $(DOCKER_COMPOSITE_FOLDER_PATH)common.windows' \
-e '/common.dockcross/ r $(DOCKER_COMPOSITE_FOLDER_PATH)common.dockcross' \
-e '/common.label-and-env/ r $(DOCKER_COMPOSITE_FOLDER_PATH)common.label-and-env' \
$< > $@
sed $(foreach f,$(DOCKER_COMPOSITE_SOURCES),-e '/$(f)/ r $(DOCKER_COMPOSITE_FOLDER_PATH)$(f)') $< > $@
#
# web-wasm
@@ -188,10 +172,6 @@ web-wasi-threads: web-wasi web-wasi-threads/Dockerfile
# manylinux2014-aarch64
#
manylinux2014-aarch64: manylinux2014-aarch64/Dockerfile manylinux2014-x64
@# Register qemu
docker run --rm --privileged hypriot/qemu-register
@# 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 \
@@ -202,13 +182,50 @@ manylinux2014-aarch64: manylinux2014-aarch64/Dockerfile manylinux2014-x64
--build-arg BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` \
-f manylinux2014-aarch64/Dockerfile .
rm -rf $@/imagefiles
@# libstdc++ is coppied into image, now remove it
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 \
&& chmod +x $(BIN)/dockcross-manylinux2014-aarch64
$(BIN)/dockcross-manylinux2014-aarch64 -i $(ORG)/manylinux2014-aarch64:latest /opt/python/cp38-cp38/bin/python test/run.py
$(BIN)/dockcross-manylinux2014-aarch64 -i $(ORG)/manylinux2014-aarch64:latest /opt/python/cp311-cp311/bin/python test/run.py
#
# manylinux_2_28-aarch64
#
manylinux_2_28-aarch64: manylinux_2_28-aarch64/Dockerfile manylinux_2_28-x64
mkdir -p $@/imagefiles && cp -r imagefiles $@/
$(BUILD_DOCKER) $(BUILD_CMD) $(TAG_FLAG) $(ORG)/manylinux_2_28-aarch64:$(TAG) \
$(TAG_FLAG) $(ORG)/manylinux_2_28-aarch64:latest \
--build-arg IMAGE=$(ORG)/manylinux_2_28-aarch64 \
--build-arg VERSION=$(TAG) \
--build-arg VCS_REF=`git rev-parse --short HEAD` \
--build-arg VCS_URL=`git config --get remote.origin.url` \
-f manylinux_2_28-aarch64/Dockerfile .
rm -rf $@/imagefiles
manylinux_2_28-aarch64.test: manylinux_2_28-aarch64
$(TEST_DOCKER) run $(RM) $(ORG)/manylinux_2_28-aarch64:latest > $(BIN)/dockcross-manylinux_2_28-aarch64 \
&& chmod +x $(BIN)/dockcross-manylinux_2_28-aarch64
$(BIN)/dockcross-manylinux_2_28-aarch64 -i $(ORG)/manylinux_2_28-aarch64:latest /opt/python/cp311-cp311/bin/python test/run.py
#
# manylinux_2_34-aarch64
#
manylinux_2_34-aarch64: manylinux_2_34-aarch64/Dockerfile manylinux_2_34-x64
mkdir -p $@/imagefiles && cp -r imagefiles $@/
$(BUILD_DOCKER) $(BUILD_CMD) $(TAG_FLAG) $(ORG)/manylinux_2_34-aarch64:$(TAG) \
$(TAG_FLAG) $(ORG)/manylinux_2_34-aarch64:latest \
--build-arg IMAGE=$(ORG)/manylinux_2_34-aarch64 \
--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-aarch64/Dockerfile .
rm -rf $@/imagefiles
manylinux_2_34-aarch64.test: manylinux_2_34-aarch64
$(TEST_DOCKER) run $(RM) $(ORG)/manylinux_2_34-aarch64:latest > $(BIN)/dockcross-manylinux_2_34-aarch64 \
&& chmod +x $(BIN)/dockcross-manylinux_2_34-aarch64
$(BIN)/dockcross-manylinux_2_34-aarch64 -i $(ORG)/manylinux_2_34-aarch64:latest /opt/python/cp311-cp311/bin/python test/run.py
#
# manylinux_2_28-x64
@@ -230,6 +247,26 @@ manylinux_2_28-x64.test: 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
#
@@ -248,7 +285,7 @@ manylinux2014-x64: manylinux2014-x64/Dockerfile
manylinux2014-x64.test: manylinux2014-x64
$(TEST_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/cp38-cp38/bin/python test/run.py
$(BIN)/dockcross-manylinux2014-x64 -i $(ORG)/manylinux2014-x64:latest /opt/python/cp311-cp311/bin/python test/run.py
#
# manylinux2014-x86
@@ -268,7 +305,7 @@ manylinux2014-x86: manylinux2014-x86/Dockerfile
manylinux2014-x86.test: manylinux2014-x86
$(TEST_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/cp38-cp38/bin/python test/run.py
$(BIN)/dockcross-manylinux2014-x86 -i $(ORG)/manylinux2014-x86:latest /opt/python/cp311-cp311/bin/python test/run.py
#
# base-$(HOST_ARCH)
@@ -380,16 +417,17 @@ $(addsuffix .push,$(STANDARD_IMAGES) $(NON_STANDARD_IMAGES)): $$(basename $$@)
.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
$(MANIFEST_TOOL) push from-args \
--platforms linux/amd64,linux/arm64 \
--template $(ORG)/$(basename $@):latest-ARCH \
--target $(ORG)/$(basename $@):latest
.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)
$(MANIFEST_TOOL) push from-args \
--platforms linux/amd64,linux/arm64 \
--template $(ORG)/$(basename $@):$(TAG)-ARCH \
--target $(ORG)/$(basename $@):$(TAG)
#
# testing prerequisites implicit rule
+40 -1
View File
@@ -18,6 +18,8 @@ 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.
@@ -30,6 +32,7 @@ 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
@@ -100,6 +103,7 @@ The dockcross script will execute the given command-line inside the container, a
| dockcross/linux-armv7-lts | ARMv7 | GCC 8.5.0 + Glibc 2.28 | Linux |
| dockcross/linux-armv7a | ARMv7a | GCC | Linux |
| dockcross/linux-armv7l-musl | ARMv7l | GCC + musl | Linux |
| dockcross/linux-loongarch64 | LoongArch64 | GCC | Linux |
| dockcross/linux-mips | mips | GCC | Linux |
| dockcross/linux-mips-uclibc | mips | GCC + uclibc | Linux |
| dockcross/linux-mips-lts | mips | GCC 8.5.0 + Glibc 2.28 | Linux |
@@ -113,6 +117,9 @@ 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_28-aarch64 | aarch64 | GCC | Linux |
| dockcross/manylinux_2_34-x64 | x86_64 | GCC | Linux |
| dockcross/manylinux_2_34-aarch64 | ARMv8 | GCC | Linux |
| dockcross/manylinux2014-x86 | x86 | GCC | Linux |
| dockcross/manylinux2014-x64 | x86_64 | GCC | Linux |
| dockcross/linux-i686 | x86 | GCC | Linux |
@@ -277,6 +284,12 @@ board PC with TI SoC AM3358 on board, Cortex-A8.
Toolchain configured for ARMv7-L, using
[musl](https://www.musl-libc.org/) as base \"libc\".
### dockcross/linux-loongarch64
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-loongarch64/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-loongarch64)
Generic Linux LoongArch64 cross compiler toolchain.
### dockcross/linux-mips
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-mips/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-mips)
@@ -381,6 +394,24 @@ 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_28-aarch64
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/manylinux_2_28-aarch64/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/manylinux_2_28-aarch64)
Docker [manylinux_2_28](https://github.com/pypa/manylinux) image for building Linux aarch64 / arm64 [Python wheel packages](http://pythonwheels.com/). It includes Python 3.6, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13, and 3.14. 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/manylinux_2_34-aarch64
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/manylinux_2_34-aarch64/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/manylinux_2_34-aarch64)
Docker [manylinux_2_34](https://github.com/pypa/manylinux) image for building Linux aarch64 / arm64 [Python wheel packages](http://pythonwheels.com/). It includes CPython 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13, 3.13t (free-threaded) and PyPy 3.10. 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. This image is designed to run on x86_64 hosts and cross-compile for aarch64 targets using QEMU emulation.
### 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)
@@ -566,7 +597,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
```
@@ -610,6 +641,14 @@ Note that the architecture is now `aarch64` instead of `amd64`, so it runs nativ
\-\--
## Multi-architecture Image Creation
For creating multi-architecture container images, this project uses [manifest-tool](https://github.com/estesp/manifest-tool) to create and manage manifest lists that combine platform-specific images into a single multi-platform reference. This allows container runtimes to automatically select the appropriate image based on the target architecture.
The multi-architecture images are built on different architectures (amd64 and arm64) and then combined using manifest-tool's `push from-args` command, which creates manifest lists pointing to the individual platform-specific images.
---
Credits:
- [sdt/docker-raspberry-pi-cross-compiler](https://github.com/sdt/docker-raspberry-pi-cross-compiler), who invented the base of the **dockcross** script.
+9 -3
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=28b
ENV ANDROID_API=24
RUN mkdir -p /build && \
cd /build && \
@@ -35,7 +35,13 @@ 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"
+3 -3
View File
@@ -15,10 +15,10 @@ set(CMAKE_Fortran_COMPILER $ENV{FC})
set(CMAKE_EXE_LINKER_FLAGS "-llog")
set(CMAKE_SHARED_LINKER_FLAGS "-llog")
set(CMAKE_FIND_ROOT_PATH $ENV{CROSS_ROOT})
list(APPEND CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} $ENV{CROSS_ROOT})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_SYSROOT $ENV{CROSS_ROOT}/sysroot)
set(CMAKE_CROSSCOMPILING_EMULATOR /usr/bin/qemu-arm)
+5
View File
@@ -0,0 +1,5 @@
[build]
target = "armv7-linux-androideabi"
[target.armv7-linux-androideabi]
linker = "/usr/arm-linux-androideabi/bin/armv7a-linux-androideabi23-clang"
+8 -3
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=28b
ENV ANDROID_API=24
RUN mkdir -p /build && \
cd /build && \
@@ -39,8 +39,13 @@ 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"
+3 -3
View File
@@ -14,10 +14,10 @@ set(CMAKE_Fortran_COMPILER $ENV{FC})
set(CMAKE_EXE_LINKER_FLAGS "-llog")
set(CMAKE_SHARED_LINKER_FLAGS "-llog")
set(CMAKE_FIND_ROOT_PATH $ENV{CROSS_ROOT})
list(APPEND CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} $ENV{CROSS_ROOT})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_SYSROOT $ENV{CROSS_ROOT}/sysroot)
set(CMAKE_CROSSCOMPILING_EMULATOR /usr/bin/qemu-arm)
+5
View File
@@ -0,0 +1,5 @@
[build]
target = "aarch64-linux-android"
[target.aarch64-linux-android]
linker = "/usr/aarch64-linux-android/bin/aarch64-linux-android-clang"
+10 -4
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=28b
ENV ANDROID_API=24
RUN mkdir -p /build && \
cd /build && \
@@ -29,8 +29,14 @@ 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
@@ -44,4 +50,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}
+3 -3
View File
@@ -14,8 +14,8 @@ set(CMAKE_Fortran_COMPILER $ENV{FC})
set(CMAKE_EXE_LINKER_FLAGS "-llog")
set(CMAKE_SHARED_LINKER_FLAGS "-llog")
set(CMAKE_FIND_ROOT_PATH $ENV{CROSS_ROOT})
list(APPEND CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} $ENV{CROSS_ROOT})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_SYSROOT $ENV{CROSS_ROOT}/sysroot)
+5
View File
@@ -0,0 +1,5 @@
[build]
target = "i686-linux-android"
[target.i686-linux-android]
linker = "/usr/i686-linux-android/bin/i686-linux-android23-clang"
+10 -4
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=28b
ENV ANDROID_API=24
RUN mkdir -p /build && \
cd /build && \
@@ -29,8 +29,14 @@ 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
@@ -44,4 +50,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}
+3 -3
View File
@@ -14,8 +14,8 @@ set(CMAKE_Fortran_COMPILER $ENV{FC})
set(CMAKE_EXE_LINKER_FLAGS "-llog")
set(CMAKE_SHARED_LINKER_FLAGS "-llog")
set(CMAKE_FIND_ROOT_PATH $ENV{CROSS_ROOT})
list(APPEND CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} $ENV{CROSS_ROOT})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_SYSROOT $ENV{CROSS_ROOT}/sysroot)
+5
View File
@@ -0,0 +1,5 @@
[build]
target = "x86_64-linux-android"
[target.x86_64-linux-android]
linker = "/usr/x86_64-linux-android/bin/x86_64-linux-android-clang"
+9 -9
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"
+1 -1
View File
@@ -10,7 +10,7 @@ set(CMAKE_CXX_COMPILER $ENV{CXX})
set(CMAKE_CXX_FLAGS "-I ${cross_root}/include/")
set(CMAKE_FIND_ROOT_PATH ${cross_root} ${cross_root}/${cross_triple})
list(APPEND CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_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)
@@ -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=y
CT_LOG_PROGRESS_BAR=n
CT_LOG_TO_FILE=y
CT_LOG_FILE_COMPRESS=y
# end of Paths and misc options
+76
View File
@@ -0,0 +1,76 @@
# crosstool.common-manylinux_2_28
#
# Common Docker instructions to install "crosstool-ng" and build a full
# cross-compiler suite from a crosstool-ng configuration, CROSSTOOL_CONFIG.
#
# This import complements the "dockcross/base" image, adding:
# - "ct-ng", a cross-compiler building utilty.
# - A cross-compiler suite configured in "crosstool-ng.config".
#
# The generated cross-compiler will have a CROSS_ROOT of:
# ${XCC_PREFIX}/${CROSS_TRIPLE}
#
# A given platform will need to supply the appropriate "crosstool-ng.config" to
# generate its cross-compiler. This can be built using "ct-ng menuconfig" to
# generate a configuration.
ENV MANYLINUX_DEPS="glibc-devel glibc-devel.i686 libstdc++-devel glib2-devel libX11-devel libXext-devel libXrender-devel mesa-libGL-devel libICE-devel libSM-devel"
ENV PYTHON_COMPILE_DEPS="python3-devel zlib-devel bzip2-devel expat-devel ncurses-devel readline-devel tk-devel gdbm-devel libdb-devel libpcap-devel xz-devel openssl-devel keyutils-libs-devel krb5-devel libcom_err-devel libidn-devel curl-devel perl-devel"
ENV TOOLCHAIN_DEPS="gcc-toolset-14-binutils gcc-toolset-14-gcc gcc-toolset-14-gcc-c++ gcc-toolset-14-gcc-gfortran"
# Install dependent packages required for `ct-ng`.
RUN \
yum -y update && \
yum -y install \
gawk \
gperf \
help2man \
texinfo \
flex \
ncurses-devel \
glibc-static \
rsync \
systemtap-devel \
systemtap-sdt-devel \
${TOOLCHAIN_DEPS} \
${PYTHON_COMPILE_DEPS} \
${MANYLINUX_DEPS} && \
yum clean all
ENV XCC_PREFIX=/usr/xcc
# Add the crosstool-ng script and image-specific toolchain configuration into
# /dockcross/.
#
# Afterwards, we will leave the "ct-ng" config in the image as a reference
# for users.
COPY \
imagefiles/install-crosstool-ng-toolchain.sh \
imagefiles/patch/crosstool-ng/crosstool-ng-zlib-target.patch \
manylinux_2_28-aarch64/crosstool-ng.config \
/dockcross/
# Copy sys/sdt.h to a clean include directory to avoid pulling in all of
# /usr/include (which causes __float128 conflicts on AlmaLinux 8 when
# cross-compiling for aarch64).
RUN mkdir -p /opt/ct-ng-includes/sys && \
cp /usr/include/sys/sdt.h /opt/ct-ng-includes/sys/ && \
cp /usr/include/sys/sdt-config.h /opt/ct-ng-includes/sys/
# Build and install the toolchain, cleaning up artifacts afterwards.
RUN \
mkdir /dockcross/crosstool && \
cd /dockcross/crosstool && \
/dockcross/install-crosstool-ng-toolchain.sh \
-p "${XCC_PREFIX}" \
-c /dockcross/crosstool-ng.config \
-v "${CT_VERSION}" && \
rm -rf /dockcross/crosstool /dockcross/install-crosstool-ng-toolchain.sh && \
# Remove sudo provided by gcc-toolset since it doesn't work with
# our sudo wrapper calling gosu.
rm -f /opt/rh/gcc-toolset-14/root/usr/bin/sudo
# Restore our default workdir (from "dockcross/base").
WORKDIR /work
+76
View File
@@ -0,0 +1,76 @@
# crosstool.common-manylinux_2_34
#
# Common Docker instructions to install "crosstool-ng" and build a full
# cross-compiler suite from a crosstool-ng configuration, CROSSTOOL_CONFIG.
#
# This import complements the "dockcross/base" image, adding:
# - "ct-ng", a cross-compiler building utilty.
# - A cross-compiler suite configured in "crosstool-ng.config".
#
# The generated cross-compiler will have a CROSS_ROOT of:
# ${XCC_PREFIX}/${CROSS_TRIPLE}
#
# A given platform will need to supply the appropriate "crosstool-ng.config" to
# generate its cross-compiler. This can be built using "ct-ng menuconfig" to
# generate a configuration.
ENV MANYLINUX_DEPS="glibc-devel glibc-devel.i686 libstdc++-devel glib2-devel libX11-devel libXext-devel libXrender-devel mesa-libGL-devel libICE-devel libSM-devel"
ENV PYTHON_COMPILE_DEPS="python-devel zlib-devel bzip2-devel expat-devel ncurses-devel readline-devel tk-devel gdbm-devel libdb-devel libpcap-devel xz-devel openssl-devel keyutils-libs-devel krb5-devel libcom_err-devel libidn-devel curl-devel perl-devel"
ENV TOOLCHAIN_DEPS="gcc-toolset-14-binutils gcc-toolset-14-gcc gcc-toolset-14-gcc-c++ gcc-toolset-14-gcc-gfortran"
# Install dependent packages required for `ct-ng`.
RUN \
dnf -y update && \
dnf -y install \
gawk \
gperf \
help2man \
texinfo \
flex \
ncurses-devel \
glibc-static \
rsync \
systemtap-devel \
systemtap-sdt-devel \
${TOOLCHAIN_DEPS} \
${PYTHON_COMPILE_DEPS} \
${MANYLINUX_DEPS} && \
dnf clean all
ENV XCC_PREFIX=/usr/xcc
# Add the crosstool-ng script and image-specific toolchain configuration into
# /dockcross/.
#
# Afterwards, we will leave the "ct-ng" config in the image as a reference
# for users.
COPY \
imagefiles/install-crosstool-ng-toolchain.sh \
imagefiles/patch/crosstool-ng/crosstool-ng-zlib-target.patch \
manylinux_2_34-aarch64/crosstool-ng.config \
/dockcross/
# Copy sys/sdt.h to a clean include directory to avoid pulling in all of
# /usr/include (which causes __float128 conflicts on AlmaLinux 9 when
# cross-compiling for aarch64).
RUN mkdir -p /opt/ct-ng-includes/sys && \
cp /usr/include/sys/sdt.h /opt/ct-ng-includes/sys/ && \
cp /usr/include/sys/sdt-config.h /opt/ct-ng-includes/sys/
# Build and install the toolchain, cleaning up artifacts afterwards.
RUN \
mkdir /dockcross/crosstool && \
cd /dockcross/crosstool && \
/dockcross/install-crosstool-ng-toolchain.sh \
-p "${XCC_PREFIX}" \
-c /dockcross/crosstool-ng.config \
-v "${CT_VERSION}" && \
rm -rf /dockcross/crosstool /dockcross/install-crosstool-ng-toolchain.sh && \
# Remove sudo provided by gcc-toolset since it doesn't work with
# our sudo wrapper calling gosu.
rm -f /opt/rh/gcc-toolset-14/root/usr/bin/sudo
# Restore our default workdir (from "dockcross/base").
WORKDIR /work
+8 -1
View File
@@ -18,6 +18,9 @@ ARG CURL_HASH=3b4378156ba09e224008e81dcce854b7ce4d182b1f9cfb97fe5ed9e9c18c6bd3
ARG PERL_VERSION=perl-5.40.1
ARG PERL_HASH=02f8c45bb379ed0c3de7514fad48c714fd46be8f0b536bfd5320050165a1ee26
ENV RUSTUP_HOME=/opt/rustup
ENV CARGO_HOME=/opt/rustup/cargo
# Image build scripts
COPY \
imagefiles/build-and-install-cmake.sh \
@@ -27,6 +30,7 @@ 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 \
@@ -40,13 +44,16 @@ 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/cp38-cp38/bin/python ] && echo "/opt/python/cp38-cp38/bin/python" || echo "python3") && \
PYTHON=$([ -e /opt/python/cp311-cp311/bin/python ] && echo "/opt/python/cp311-cp311/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 && \
rm -rf /buildscripts
ENV PATH=/opt/rustup/cargo/bin:$PATH
RUN echo "root:root" | chpasswd
WORKDIR /work
ENTRYPOINT ["/dockcross/entrypoint.sh"]
+1
View File
@@ -16,6 +16,7 @@ RUN \
wget \
nasm \
zip \
libatomic \
&& \
yum clean all && \
# Remove sudo provided by devtoolset since it doesn't work with
+3 -1
View File
@@ -10,6 +10,8 @@ RUN \
wget \
nasm \
zip \
perl-IPC-Cmd \
perl-Time-Piece \
&& \
yum clean all
@@ -22,7 +24,7 @@ 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-12/root/usr/bin/sudo && \
rm -f /opt/rh/gcc-toolset-14/root/usr/bin/sudo && \
/buildscripts/install-python-packages.sh && \
rm -rf /buildscripts
+35
View File
@@ -0,0 +1,35 @@
RUN \
set -x && \
yum upgrade -y almalinux-release && \
yum -y install \
gpg \
python3-devel \
zlib-devel \
gettext \
openssh-clients \
wget \
nasm \
zip \
perl-FindBin \
perl-File-Compare \
perl-File-Copy \
perl-IPC-Cmd \
perl-Time-Piece \
&& \
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/
+12 -11
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,14 +125,15 @@ RUN \
#
rm -rf /tmp/wine-*
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
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
WORKDIR /work
+15 -23
View File
@@ -2,8 +2,11 @@
set -ex
MY_DIR=$(dirname "${BASH_SOURCE[0]}")
source $MY_DIR/utils.sh
# Get script directory
SCRIPT_DIR=$(dirname "${BASH_SOURCE[0]}")
# Get build utilities
source $SCRIPT_DIR/utils.sh
#
# Function 'do_curl_build' and 'build_curl'
@@ -20,6 +23,7 @@ if [[ -z "${CURL_HASH}" ]]; then
exit 1
fi
CURL_ROOT="${CURL_VERSION}"
CURL_DOWNLOAD_URL=https://curl.haxx.se/download
function do_curl_build {
@@ -30,28 +34,16 @@ function do_curl_build {
make install > /dev/null
}
function build_curl {
local curl_fname=$1
check_var ${curl_fname}
local curl_sha256=$2
check_var ${curl_sha256}
check_var ${CURL_DOWNLOAD_URL}
curl --connect-timeout 30 \
--max-time 10 \
--retry 5 \
--retry-delay 10 \
--retry-max-time 30 \
-fsSLO ${CURL_DOWNLOAD_URL}/${curl_fname}.tar.gz
check_sha256sum ${curl_fname}.tar.gz ${curl_sha256}
tar -zxf ${curl_fname}.tar.gz
(cd curl-*/ && do_curl_build)
rm -rf curl-*
}
cd /usr/src
build_curl "${CURL_VERSION}" "${CURL_HASH}"
fetch_source "${CURL_ROOT}.tar.gz" "${CURL_DOWNLOAD_URL}"
check_sha256sum "${CURL_ROOT}.tar.gz" "${CURL_HASH}"
tar -zxf "${CURL_ROOT}.tar.gz"
pushd "${CURL_ROOT}"
do_curl_build
popd
rm -rf "${CURL_ROOT}" "${CURL_ROOT}.tar.gz"
(cat /etc/ld.so.conf.d/usr-local.conf 2> /dev/null | grep -q "^/usr/local/lib$") ||
echo '/usr/local/lib' >> /etc/ld.so.conf.d/usr-local.conf
+14 -19
View File
@@ -2,10 +2,12 @@
set -ex
if ! command -v curl &> /dev/null; then
echo >&2 'error: "curl" not found!'
exit 1
fi
# Get script directory
SCRIPT_DIR=$(dirname "${BASH_SOURCE[0]}")
# Get build utilities
source $SCRIPT_DIR/utils.sh
if ! command -v tar &> /dev/null; then
echo >&2 'error: "tar" not found!'
@@ -23,27 +25,20 @@ ldconfig
cd /usr/src
url="https://mirrors.edge.kernel.org/pub/software/scm/git/git-${GIT_VERSION}.tar.gz"
echo "Downloading $url"
curl --connect-timeout 20 \
--max-time 10 \
--retry 5 \
--retry-delay 10 \
--retry-max-time 40 \
-# -LO $url
GIT_ROOT="git-${GIT_VERSION}"
GIT_DOWNLOAD_URL="https://mirrors.edge.kernel.org/pub/software/scm/git"
tar xvzf "git-${GIT_VERSION}.tar.gz" --no-same-owner
rm -f "git-${GIT_VERSION}.tar.gz"
fetch_source "${GIT_ROOT}.tar.gz" "${GIT_DOWNLOAD_URL}"
tar xvzf "${GIT_ROOT}.tar.gz" --no-same-owner
pushd "git-${GIT_VERSION}"
pushd "${GIT_ROOT}"
./configure --prefix=/usr/local --with-curl
make -j"$(nproc)"
make install
make -j"$(nproc)" NO_GETTEXT=YesPlease
make NO_GETTEXT=YesPlease install
popd
rm -rf "${GIT_ROOT}" "${GIT_ROOT}.tar.gz"
ldconfig
rm -rf "git-${GIT_VERSION}"
# turn the detached message off
git config --global advice.detachedHead false
+14 -11
View File
@@ -10,6 +10,12 @@
set -e
set -o pipefail
# Get script directory
SCRIPT_DIR=$(dirname "${BASH_SOURCE[0]}")
# Get build utilities
source $SCRIPT_DIR/utils.sh
PYTHON=python
while [ $# -gt 0 ]; do
case "$1" in
@@ -31,25 +37,22 @@ if [[ -z "${NINJA_VERSION}" ]]; then
fi
# Download
url="https://github.com/ninja-build/ninja/archive/v${NINJA_VERSION}.tar.gz"
NINJA_DOWNLOAD_URL="https://github.com/ninja-build/ninja/archive/"
NINJA_ROOT="v${NINJA_VERSION}"
curl --connect-timeout 30 \
--max-time 10 \
--retry 5 \
--retry-delay 10 \
--retry-max-time 30 \
-# -o ninja.tar.gz -LO "$url"
fetch_source "${NINJA_ROOT}.tar.gz" "${NINJA_DOWNLOAD_URL}"
mkdir ninja
tar -xzvf ./ninja.tar.gz --strip-components=1 -C ./ninja
# Since the archive name doesn't match the top-level directory, explicitly specify it.
mkdir -p "${NINJA_ROOT}"
tar xvzf "${NINJA_ROOT}.tar.gz" --strip-components=1 -C "${NINJA_ROOT}"
# Configure, build and install
pushd ./ninja
pushd "${NINJA_ROOT}"
echo "Configuring ninja using [$PYTHON]"
$PYTHON ./configure.py --bootstrap && ./ninja
cp ./ninja /usr/bin/
popd
# Clean
rm -rf ./ninja*
rm -rf "${NINJA_ROOT}" "${NINJA_ROOT}.tar.gz"
+8 -15
View File
@@ -39,8 +39,11 @@ while [ $# -gt 0 ]; do
shift
done
MY_DIR=$(dirname "${BASH_SOURCE[0]}")
source $MY_DIR/utils.sh
# Get script directory
SCRIPT_DIR=$(dirname "${BASH_SOURCE[0]}")
# Get build utilities
source $SCRIPT_DIR/utils.sh
#
# Function 'do_openssl_build' and 'build_openssl'
@@ -84,15 +87,10 @@ function build_perl {
local perl_sha256=$2
check_var ${perl_sha256}
check_var ${PERL_DOWNLOAD_URL}
curl --connect-timeout 30 \
--max-time 10 \
--retry 5 \
--retry-delay 10 \
--retry-max-time 30 \
-fsSLO ${PERL_DOWNLOAD_URL}/${perl_fname}.tar.gz
fetch_source "${perl_fname}.tar.gz" "${PERL_DOWNLOAD_URL}"
check_sha256sum ${perl_fname}.tar.gz ${perl_sha256}
tar -xzf ${perl_fname}.tar.gz
tar -xzf ${perl_fname}.tar.gz --no-same-owner
(cd ${perl_fname} && do_perl_build)
rm -rf ${perl_fname} ${perl_fname}.tar.gz
}
@@ -109,13 +107,8 @@ function build_openssl {
local openssl_sha256=$2
check_var ${openssl_sha256}
check_var ${OPENSSL_DOWNLOAD_URL}
curl --connect-timeout 30 \
--max-time 10 \
--retry 5 \
--retry-delay 10 \
--retry-max-time 30 \
-fsSLO ${OPENSSL_DOWNLOAD_URL}/${openssl_fname}.tar.gz
fetch_source "${openssl_fname}.tar.gz" "${OPENSSL_DOWNLOAD_URL}"
check_sha256sum ${openssl_fname}.tar.gz ${openssl_sha256}
tar -xzf ${openssl_fname}.tar.gz
(cd ${openssl_fname} && PATH=/opt/perl/bin:${PATH} do_openssl_build)
+10
View File
@@ -0,0 +1,10 @@
#!/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
+3 -3
View File
@@ -24,9 +24,9 @@ has() {
# If OCI_EXE is not already set, search for a container executor (OCI stands for "Open Container Initiative")
if [ -z "$OCI_EXE" ]; then
if which podman >/dev/null 2>/dev/null; then
if type -p podman >/dev/null 2>/dev/null; then
OCI_EXE=podman
elif which docker >/dev/null 2>/dev/null; then
elif type -p docker >/dev/null 2>/dev/null; then
OCI_EXE=docker
else
die "Cannot find a container executor. Search for docker and podman."
@@ -218,7 +218,7 @@ elif [ -n "$CYGWIN" ]; then
HOST_PWD="$( cygpath -w "$( readlink -f "$( pwd ;)" ; )" ; )" ;
else
HOST_PWD=$PWD
[ -L $HOST_PWD ] && HOST_PWD=$(readlink $HOST_PWD)
[ -L "$HOST_PWD" ] && HOST_PWD=$(readlink $HOST_PWD)
fi
# Mount Additional Volumes
+10 -3
View File
@@ -26,8 +26,13 @@ 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 2> /dev/null
export HOME=/home/${BUILDER_USER}
shopt -s dotglob
# Copy the rest
cp -r /root/* $HOME/
chown -R $BUILDER_UID:$BUILDER_GID $HOME
@@ -38,15 +43,17 @@ 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)"; sync
chmod +s "$(which gosu)"
# Execute project specific pre execution hook
if [[ -e /work/.dockcross ]]; then
gosu $BUILDER_UID:$BUILDER_GID /work/.dockcross
fi
# Run the command as the specified user/group.
exec gosu $BUILDER_UID:$BUILDER_GID "$@"
# Run the command as the specified user. The group will be BUILDER_GID,
# as pulled from /etc/passwd, but will have additional groups from
# /etc/group. This is necessary for manylinux to install python packages.
exec gosu $BUILDER_UID "$@"
else
# Just run the command as root.
exec "$@"
+11 -14
View File
@@ -3,6 +3,12 @@
set -ex
set -o pipefail
# Get script directory
SCRIPT_DIR=$(dirname "${BASH_SOURCE[0]}")
# Get build utilities
source $SCRIPT_DIR/utils.sh
ARCH="x86_64"
while [ $# -gt 0 ]; do
@@ -18,11 +24,6 @@ while [ $# -gt 0 ]; do
shift
done
if ! command -v curl &> /dev/null; then
echo >&2 'error: "curl" not found!'
exit 1
fi
if ! command -v tar &> /dev/null; then
echo >&2 'error: "tar" not found!'
exit 1
@@ -35,16 +36,12 @@ fi
cd /usr/src
CMAKE_ROOT=cmake-${CMAKE_VERSION}-Centos5-${ARCH}
url=https://github.com/dockbuild/CMake/releases/download/v${CMAKE_VERSION}/${CMAKE_ROOT}.tar.gz
echo "Downloading $url"
curl --connect-timeout 30 \
--max-time 10 \
--retry 5 \
--retry-delay 10 \
--retry-max-time 30 \
-# -LO $url
CMAKE_ROOT=cmake-${CMAKE_VERSION}-linux-${ARCH}
CMAKE_DOWNLOAD_URL=https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}
echo "Downloading ${CMAKE_DOWNLOAD_URL}/${CMAKE_ROOT}.tar.gz"
fetch_source "${CMAKE_ROOT}.tar.gz" "${CMAKE_DOWNLOAD_URL}"
tar -xzvf "${CMAKE_ROOT}.tar.gz"
rm -f "${CMAKE_ROOT}.tar.gz"
+1
View File
@@ -56,6 +56,7 @@ url_key="https://github.com/tianon/gosu/releases/download/${GOSU_VERSION}/gosu-$
# download and verify the signature
export GNUPGHOME="$(mktemp -d)"
gpg --keyserver hkps://keys.openpgp.org --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4 || \
gpg --keyserver hkp://pool.sks-keyservers.net:80 --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4 || \
gpg --keyserver hkp://pgp.key-server.io:80 --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4 || \
gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4
+17
View File
@@ -22,3 +22,20 @@ function check_sha256sum {
rm -f ${fname}.sha256
}
function fetch_source {
if ! command -v curl &> /dev/null; then
echo >&2 'error: "curl" not found!'
exit 1
fi
local file=$1
check_var "${file}"
local url=$2
check_var "${url}"
curl --fail \
--location \
--silent \
--show-error \
--connect-timeout 30 --max-time 10 \
--retry 5 --retry-delay 10 --retry-max-time 30 \
-o "${file}" ${url}/${file}
}
+10 -10
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"
+3 -3
View File
@@ -11,10 +11,10 @@ set(CMAKE_Fortran_COMPILER $ENV{FC})
set(CMAKE_CXX_FLAGS "-I ${cross_root}/include/")
set(CMAKE_FIND_ROOT_PATH ${cross_root} ${cross_root}/${cross_triple})
list(APPEND CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_SYSROOT ${cross_root}/${cross_triple}/sysroot)
+10 -10
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"
+3 -3
View File
@@ -11,10 +11,10 @@ set(CMAKE_Fortran_COMPILER $ENV{FC})
set(CMAKE_CXX_FLAGS "-I ${cross_root}/include/")
set(CMAKE_FIND_ROOT_PATH ${cross_root} ${cross_root}/${cross_triple})
list(APPEND CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_SYSROOT ${cross_root}/${cross_triple}/sysroot)
set(CMAKE_CROSSCOMPILING_EMULATOR /usr/bin/qemu-aarch64)
+1 -1
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=y
CT_LOG_PROGRESS_BAR=n
CT_LOG_TO_FILE=y
CT_LOG_FILE_COMPRESS=y
# end of Paths and misc options
+24 -15
View File
@@ -1,13 +1,16 @@
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 http://musl.cc/${CROSS_TRIPLE}-cross.tgz
RUN tar -C ${XCC_PREFIX} -xvf ${CROSS_TRIPLE}-cross.tgz
# 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
ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
AR=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ar \
@@ -17,13 +20,19 @@ 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
@@ -32,9 +41,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}
+3 -3
View File
@@ -11,7 +11,7 @@ set(CMAKE_Fortran_COMPILER $ENV{FC})
set(CMAKE_CXX_FLAGS "-I ${cross_root}/include/")
set(CMAKE_FIND_ROOT_PATH ${cross_root} ${cross_root}/${cross_triple})
list(APPEND CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
+7
View File
@@ -0,0 +1,7 @@
[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"
+3 -3
View File
@@ -11,10 +11,10 @@ set(CMAKE_Fortran_COMPILER $ENV{FC})
set(CMAKE_CXX_FLAGS "-I ${cross_root}/include/")
set(CMAKE_FIND_ROOT_PATH ${cross_root} ${cross_root}/${cross_triple})
list(APPEND CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_SYSROOT ${cross_root}/${cross_triple}/sysroot)
set(CMAKE_CROSSCOMPILING_EMULATOR /usr/bin/qemu-aarch64)
+1 -1
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=y
CT_LOG_PROGRESS_BAR=n
CT_LOG_TO_FILE=y
CT_LOG_FILE_COMPRESS=y
# end of Paths and misc options
+10 -10
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"
+3 -3
View File
@@ -10,10 +10,10 @@ set(CMAKE_Fortran_COMPILER $ENV{FC})
set(CMAKE_CXX_FLAGS "-I ${cross_root}/include/")
set(CMAKE_FIND_ROOT_PATH ${cross_root} ${cross_root}/${cross_triple})
list(APPEND CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_SYSROOT ${cross_root}/${cross_triple}/sysroot)
set(CMAKE_CROSSCOMPILING_EMULATOR /usr/bin/qemu-arm)
+1 -1
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=y
CT_LOG_PROGRESS_BAR=n
CT_LOG_TO_FILE=y
CT_LOG_FILE_COMPRESS=y
# end of Paths and misc options
+10 -10
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"
+3 -3
View File
@@ -11,10 +11,10 @@ set(CMAKE_Fortran_COMPILER $ENV{FC})
set(CMAKE_CXX_FLAGS "-I ${cross_root}/include/")
set(CMAKE_FIND_ROOT_PATH ${cross_root} ${cross_root}/${cross_triple})
list(APPEND CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_SYSROOT ${cross_root}/${cross_triple}/sysroot)
set(CMAKE_CROSSCOMPILING_EMULATOR /usr/bin/qemu-arm)
+1 -1
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=y
CT_LOG_PROGRESS_BAR=n
CT_LOG_TO_FILE=y
CT_LOG_FILE_COMPRESS=y
# end of Paths and misc options
+10 -10
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"
+3 -3
View File
@@ -11,10 +11,10 @@ set(CMAKE_Fortran_COMPILER $ENV{FC})
set(CMAKE_CXX_FLAGS "-I ${cross_root}/include/")
set(CMAKE_FIND_ROOT_PATH ${cross_root} ${cross_root}/${cross_triple})
list(APPEND CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_SYSROOT ${cross_root}/${cross_triple}/sysroot)
set(CMAKE_CROSSCOMPILING_EMULATOR /usr/bin/qemu-arm)
+1 -1
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=y
CT_LOG_PROGRESS_BAR=n
CT_LOG_TO_FILE=y
CT_LOG_FILE_COMPRESS=y
# end of Paths and misc options
+10 -10
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"
+3 -3
View File
@@ -11,10 +11,10 @@ set(CMAKE_Fortran_COMPILER $ENV{FC})
set(CMAKE_CXX_FLAGS "-I ${cross_root}/include/")
set(CMAKE_FIND_ROOT_PATH ${cross_root} ${cross_root}/${cross_triple})
list(APPEND CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_SYSROOT ${cross_root}/${cross_triple}/sysroot)
set(CMAKE_CROSSCOMPILING_EMULATOR /usr/bin/qemu-arm)
+1 -1
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=y
CT_LOG_PROGRESS_BAR=n
CT_LOG_TO_FILE=y
CT_LOG_FILE_COMPRESS=y
# end of Paths and misc options
+13 -10
View File
@@ -1,13 +1,16 @@
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 http://musl.cc/${CROSS_TRIPLE}-cross.tgz
RUN tar -C ${XCC_PREFIX} -xvf ${CROSS_TRIPLE}-cross.tgz
# 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
ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
AR=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ar \
@@ -18,12 +21,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
@@ -37,4 +40,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}
+3 -3
View File
@@ -11,7 +11,7 @@ set(CMAKE_Fortran_COMPILER $ENV{FC})
set(CMAKE_CXX_FLAGS "-I ${cross_root}/include/")
set(CMAKE_FIND_ROOT_PATH ${cross_root} ${cross_root}/${cross_triple})
list(APPEND CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
+10 -10
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"
+3 -3
View File
@@ -10,10 +10,10 @@ set(CMAKE_Fortran_COMPILER $ENV{FC})
set(CMAKE_CXX_FLAGS "-I ${cross_root}/include/")
set(CMAKE_FIND_ROOT_PATH ${cross_root} ${cross_root}/${cross_triple})
list(APPEND CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_SYSROOT ${cross_root}/${cross_triple}/sysroot)
set(CMAKE_CROSSCOMPILING_EMULATOR /usr/bin/qemu-arm)
+1 -1
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=y
CT_LOG_PROGRESS_BAR=n
CT_LOG_TO_FILE=y
CT_LOG_FILE_COMPRESS=y
# end of Paths and misc options
+10 -10
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"
+3 -3
View File
@@ -11,10 +11,10 @@ set(CMAKE_Fortran_COMPILER $ENV{FC})
set(CMAKE_CXX_FLAGS "-I ${cross_root}/include/")
set(CMAKE_FIND_ROOT_PATH ${cross_root} ${cross_root}/${cross_triple})
list(APPEND CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_SYSROOT ${cross_root}/${cross_triple}/sysroot)
set(CMAKE_CROSSCOMPILING_EMULATOR /usr/bin/qemu-arm)
+1 -1
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=y
CT_LOG_PROGRESS_BAR=n
CT_LOG_TO_FILE=y
CT_LOG_FILE_COMPRESS=y
# end of Paths and misc options
+10 -10
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"
+3 -3
View File
@@ -11,10 +11,10 @@ set(CMAKE_Fortran_COMPILER $ENV{FC})
set(CMAKE_CXX_FLAGS "-I ${cross_root}/include/")
set(CMAKE_FIND_ROOT_PATH ${cross_root} ${cross_root}/${cross_triple})
list(APPEND CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_SYSROOT ${cross_root}/${cross_triple}/sysroot)
set(CMAKE_CROSSCOMPILING_EMULATOR /usr/bin/qemu-arm)
+1 -1
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=y
CT_LOG_PROGRESS_BAR=n
CT_LOG_TO_FILE=y
CT_LOG_FILE_COMPRESS=y
# end of Paths and misc options
+11 -11
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"
+3 -3
View File
@@ -11,10 +11,10 @@ set(CMAKE_Fortran_COMPILER $ENV{FC})
set(CMAKE_CXX_FLAGS "-I ${cross_root}/include/")
set(CMAKE_FIND_ROOT_PATH ${cross_root} ${cross_root}/${cross_triple})
list(APPEND CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_SYSROOT ${cross_root}/${cross_triple}/sysroot)
set(CMAKE_CROSSCOMPILING_EMULATOR /usr/bin/qemu-arm)
+1 -1
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=y
CT_LOG_PROGRESS_BAR=n
CT_LOG_TO_FILE=y
CT_LOG_FILE_COMPRESS=y
# end of Paths and misc options
+12 -12
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"
+3 -3
View File
@@ -11,10 +11,10 @@ set(CMAKE_Fortran_COMPILER $ENV{FC})
set(CMAKE_CXX_FLAGS "-I ${cross_root}/include/")
set(CMAKE_FIND_ROOT_PATH ${cross_root} ${cross_root}/${cross_triple})
list(APPEND CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_SYSROOT ${cross_root}/${cross_triple}/sysroot)
set(CMAKE_CROSSCOMPILING_EMULATOR /usr/bin/qemu-arm)
+1 -1
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=y
CT_LOG_PROGRESS_BAR=n
CT_LOG_TO_FILE=y
CT_LOG_FILE_COMPRESS=y
# end of Paths and misc options
+13 -10
View File
@@ -1,13 +1,16 @@
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 http://musl.cc/${CROSS_TRIPLE}-cross.tgz
RUN tar -C ${XCC_PREFIX} -xvf ${CROSS_TRIPLE}-cross.tgz
# 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
ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
AR=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ar \
@@ -18,12 +21,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
@@ -37,4 +40,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}
+3 -3
View File
@@ -11,7 +11,7 @@ set(CMAKE_Fortran_COMPILER $ENV{FC})
set(CMAKE_CXX_FLAGS "-I ${cross_root}/include/")
set(CMAKE_FIND_ROOT_PATH ${cross_root} ${cross_root}/${cross_triple})
list(APPEND CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
+9 -9
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"
+3 -3
View File
@@ -9,10 +9,10 @@ set(CMAKE_C_COMPILER $ENV{CC})
set(CMAKE_CXX_COMPILER $ENV{CXX})
set(CMAKE_Fortran_COMPILER $ENV{FC})
set(CMAKE_FIND_ROOT_PATH ${cross_root} ${cross_root}/${cross_triple})
list(APPEND CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_SYSROOT ${cross_root}/${cross_triple}/sysroot)
set(CMAKE_CROSSCOMPILING_EMULATOR /usr/bin/qemu-x86_64 -cpu qemu32)
+1 -1
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=y
CT_LOG_PROGRESS_BAR=n
CT_LOG_TO_FILE=y
CT_LOG_FILE_COMPRESS=y
# end of Paths and misc options
+43
View File
@@ -0,0 +1,43 @@
ARG ORG=dockcross
FROM ${ORG}/base:latest
LABEL maintainer="Gleb Popov arrowd@FreeBSD.org"
# Crosstool-ng version 2025-09-07
ENV CT_VERSION=crosstool-ng-1.28.0
#include "common.crosstool"
# The cross-compiling emulator
RUN apt-get update \
&& apt-get install -y \
qemu-user \
qemu-user-static \
&& apt-get clean --yes
# The CROSS_TRIPLE is a configured alias of the "loongarch64-unknown-linux-gnu" target.
ENV CROSS_TRIPLE=loongarch64-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 \
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 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_TRIPLE}/
ENV CMAKE_TOOLCHAIN_FILE=/usr/lib/${CROSS_TRIPLE}/Toolchain.cmake
ENV PKG_CONFIG_PATH=/usr/lib/loongarch64-unknown-linux-gnu/pkgconfig
# Linux kernel cross compilation variables
ENV PATH=${PATH}:${CROSS_ROOT}/bin
ENV CROSS_COMPILE=${CROSS_TRIPLE}-
ENV ARCH=loongarch64
#include "common.label-and-env"
+20
View File
@@ -0,0 +1,20 @@
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_VERSION 1)
set(CMAKE_SYSTEM_PROCESSOR loongarch64)
set(cross_triple $ENV{CROSS_TRIPLE})
set(cross_root $ENV{CROSS_ROOT})
set(CMAKE_C_COMPILER $ENV{CC})
set(CMAKE_CXX_COMPILER $ENV{CXX})
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_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_SYSROOT ${cross_root}/${cross_triple}/sysroot)
set(CMAKE_CROSSCOMPILING_EMULATOR /usr/bin/qemu-loongarch64)
File diff suppressed because it is too large Load Diff
+10 -10
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"
+3 -3
View File
@@ -11,10 +11,10 @@ set(CMAKE_Fortran_COMPILER $ENV{FC})
set(CMAKE_CXX_FLAGS "-I ${cross_root}/include/")
set(CMAKE_FIND_ROOT_PATH ${cross_root} ${cross_root}/${cross_triple})
list(APPEND CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_SYSROOT ${cross_root}/${cross_triple}/sysroot)
+1 -1
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=y
CT_LOG_PROGRESS_BAR=n
CT_LOG_TO_FILE=y
CT_LOG_FILE_COMPRESS=y
# end of Paths and misc options
+9 -9
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"
+3 -3
View File
@@ -9,10 +9,10 @@ set(CMAKE_C_COMPILER $ENV{CC})
set(CMAKE_CXX_COMPILER $ENV{CXX})
set(CMAKE_Fortran_COMPILER $ENV{FC})
set(CMAKE_FIND_ROOT_PATH ${cross_root} ${cross_root}/${cross_triple})
list(APPEND CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_SYSROOT ${cross_root}/${cross_triple}/sysroot)
set(CMAKE_CROSSCOMPILING_EMULATOR /usr/bin/qemu-mips)
+1 -1
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=y
CT_LOG_PROGRESS_BAR=n
CT_LOG_TO_FILE=y
CT_LOG_FILE_COMPRESS=y
# end of Paths and misc options
+10 -10
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"
+3 -3
View File
@@ -11,10 +11,10 @@ set(CMAKE_Fortran_COMPILER $ENV{FC})
set(CMAKE_CXX_FLAGS "-I ${cross_root}/include/")
set(CMAKE_FIND_ROOT_PATH ${cross_root} ${cross_root}/${cross_triple})
list(APPEND CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_SYSROOT ${cross_root}/${cross_triple}/sysroot)
set(CMAKE_CROSSCOMPILING_EMULATOR /usr/bin/qemu-mips)
+1 -1
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=y
CT_LOG_PROGRESS_BAR=n
CT_LOG_TO_FILE=y
CT_LOG_FILE_COMPRESS=y
# end of Paths and misc options
+9 -9
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"
+3 -3
View File
@@ -9,10 +9,10 @@ set(CMAKE_C_COMPILER $ENV{CC})
set(CMAKE_CXX_COMPILER $ENV{CXX})
set(CMAKE_Fortran_COMPILER $ENV{FC})
set(CMAKE_FIND_ROOT_PATH ${cross_root} ${cross_root}/${cross_triple})
list(APPEND CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_SYSROOT ${cross_root}/${cross_triple}/sysroot)
set(CMAKE_CROSSCOMPILING_EMULATOR /usr/bin/qemu-mips)
+1 -1
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=y
CT_LOG_PROGRESS_BAR=n
CT_LOG_TO_FILE=y
CT_LOG_FILE_COMPRESS=y
# end of Paths and misc options
+10 -10
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"
+3 -3
View File
@@ -11,10 +11,10 @@ set(CMAKE_Fortran_COMPILER $ENV{FC})
set(CMAKE_CXX_FLAGS "-I ${cross_root}/include/")
set(CMAKE_FIND_ROOT_PATH ${cross_root} ${cross_root}/${cross_triple})
list(APPEND CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_SYSROOT ${cross_root}/${cross_triple}/sysroot)
set(CMAKE_CROSSCOMPILING_EMULATOR /usr/bin/qemu-mipsel)
+1 -1
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=y
CT_LOG_PROGRESS_BAR=n
CT_LOG_TO_FILE=y
CT_LOG_FILE_COMPRESS=y
# end of Paths and misc options

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