Merge remote-tracking branch 'origin/master' into add_tinycc

This commit is contained in:
Bensuperpc 2021-08-10 00:46:39 +02:00
commit 88222c9793
22 changed files with 216 additions and 851 deletions

View File

@ -9,8 +9,8 @@ jobs:
- uses: actions/stale@v4
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
exempt-issue-milestones: 'future,alpha,beta,release'
exempt-pr-milestones: 'bugfix,improvement'
exempt-issue-milestones: 'future,alpha,beta,release,bugfix,improvement,enhancement,help wanted'
exempt-pr-milestones: 'bugfix,improvement,enhancement,help wanted'
exempt-all-pr-assignees: true
stale-issue-message: 'This issue is stale because it has been open 120 days with no activity. Remove stale label or comment or this will be closed in 30 days.'
stale-pr-message: 'This PR is stale because it has been open 120 days with no activity. Remove stale label or comment or this will be closed in 30 days.'

View File

@ -5,12 +5,12 @@ on:
branches:
- '*'
paths-ignore:
- '**/README.md'
- '**.md'
pull_request:
branches:
- '*'
paths-ignore:
- '**/README.md'
- '**.md'
workflow_dispatch:
jobs:
@ -52,7 +52,7 @@ jobs:
linux-armv7, linux-armv7a, linux-armv7l-musl,
linux-x64-clang, linux-s390x, linux-x64, linux-x86,
linux-mips, linux-ppc64le, web-wasm,
manylinux2014-x64, manylinux2014-x86, manylinux2014-aarch64,
manylinux2014-x64, manylinux2014-x86,
windows-static-x64, windows-static-x64-posix, windows-static-x86,
windows-shared-x64, windows-shared-x64-posix, windows-shared-x86,
linux-riscv64, linux-riscv32, linux-m68k-uclibc, linux-x64-tinycc, linux-xtensa-uclibc]

View File

@ -5,12 +5,12 @@ on:
branches:
- '*'
paths-ignore:
- '**/README.md'
- '**.md'
pull_request:
branches:
- '*'
paths-ignore:
- '**/README.md'
- '**.md'
workflow_dispatch:
jobs:

View File

@ -26,7 +26,7 @@ STANDARD_IMAGES = android-arm android-arm64 android-x86 android-x86_64 \
GEN_IMAGES = android-arm android-arm64 \
linux-x86 linux-x64 linux-x64-clang linux-arm64 linux-arm64-musl \
manylinux2014-x64 manylinux2014-x86 \
manylinux2014-aarch64 web-wasm linux-mips \
web-wasm linux-mips \
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 \
@ -37,8 +37,7 @@ GEN_IMAGES = android-arm android-arm64 \
GEN_IMAGE_DOCKERFILES = $(addsuffix /Dockerfile,$(GEN_IMAGES))
# These images are expected to have explicit rules for *both* build and testing
NON_STANDARD_IMAGES = manylinux2014-x64 manylinux2014-x86 \
manylinux2014-aarch64 web-wasm
NON_STANDARD_IMAGES = manylinux2014-x64 manylinux2014-x86 web-wasm
# Docker composite files
DOCKER_COMPOSITE_SOURCES = common.docker common.debian common.manylinux \
@ -122,25 +121,6 @@ web-wasm.test: web-wasm
$(BIN)/dockcross-web-wasm python test/run.py --exe-suffix ".js"
rm -rf web-wasm/test
#
# manylinux2014-aarch64
#
manylinux2014-aarch64: manylinux2014-aarch64/Dockerfile
mkdir -p $@/imagefiles && cp -r imagefiles $@/
$(DOCKER) build -t $(ORG)/manylinux2014-aarch64:latest \
-t $(ORG)/manylinux2014-aarch64:$(TAG) \
--build-arg IMAGE=$(ORG)/manylinux2014-aarch64 \
--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 manylinux2014-aarch64/Dockerfile .
rm -rf $@/imagefiles
manylinux2014-aarch64.test: manylinux2014-aarch64
$(DOCKER) run $(RM) $(ORG)/manylinux2014-aarch64 > $(BIN)/dockcross-manylinux2014-aarch64 \
&& chmod +x $(BIN)/dockcross-manylinux2014-aarch64
$(BIN)/dockcross-manylinux2014-aarch64 /opt/python/cp38-cp38/bin/python test/run.py
#
# manylinux2014-x64
#
@ -226,7 +206,7 @@ purge: clean
# Check bash syntax
bash-check:
find . -type f \( -name "*.sh" -o -name "*.bash" \) -print0 | xargs -0 -P"$(shell nproc)" -I{} \
$(SHELLCHECK) --check-sourced --color=auto --format=gcc --severity=error --shell=bash --enable=all "{}"
$(SHELLCHECK) --check-sourced --color=auto --format=gcc --severity=warning --shell=bash --enable=all "{}"
#
# testing implicit rule

265
README.md
View File

@ -1,67 +1,52 @@
# dockcross
Cross compiling toolchains in Docker images.
[![image](https://github.com/dockcross/dockcross/workflows/Dockcross%20CI/badge.svg)](https://github.com/dockcross/dockcross/actions?query=branch%3Amaster)
[![image](https://github.com/dockcross/dockcross/workflows/Dockcross%20CI/badge.svg)](https://github.com/dockcross/dockcross/actions?query=branch%3Amaster) [![Shellcheck CI](https://github.com/dockcross/dockcross/actions/workflows/shellcheck.yml/badge.svg)](https://github.com/dockcross/dockcross/actions/workflows/shellcheck.yml)
![GitHub](https://img.shields.io/github/license/dockcross/dockcross) ![GitHub commit activity](https://img.shields.io/github/commit-activity/y/dockcross/dockcross)
## Features
- Pre-built and configured toolchains for cross compiling.
- Most images also contain an emulator for the target system.
- Clean separation of build tools, source code, and build artifacts.
- Commands in the container are run as the calling user, so that any
created files have the expected ownership, (i.e. not root).
- Make variables ([CC]{.title-ref}, [LD]{.title-ref} etc) are set to
point to the appropriate tools in the container.
- Commands in the container are run as the calling user, so that any created files have the expected ownership, (i.e. not root).
- Make variables **CC**, **CXX**, **LD** etc) are set to point to the appropriate tools in the container.
- Recent [CMake](https://cmake.org) and ninja are precompiled.
- [Conan.io](https://www.conan.io) can be used as a package manager.
- Toolchain files configured for CMake.
- 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]{.title-ref} environment variable. By default, it searches
for [docker]{.title-ref} and
\[[podman]{.title-ref}\](<https://podman.io/>) executable.
- 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.
## Examples
1. `dockcross make`: Build the *Makefile* in the current directory.
2. `dockcross cmake -Bbuild -H. -GNinja`: Run CMake with a build
directory `./build` for a *CMakeLists.txt* file in the current
directory and generate `ninja` build configuration files.
2. `dockcross cmake -Bbuild -H. -GNinja`: Run CMake with a build directory `./build` for a *CMakeLists.txt* file in the current directory and generate `ninja` build configuration files.
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.
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.
Note that commands are executed verbatim. If any shell processing for
environment variable expansion or redirection is required, please use
[bash -c \'command args\...\']{.title-ref}.
Note that commands are executed verbatim. If any shell processing for environment variable expansion or redirection is required, please use
```bash
bash -c "<command args>"
```
## Installation
This image does not need to be run manually. Instead, there is a helper
script to execute build commands on source code existing on the local
host filesystem. This script is bundled with the image.
This image does not need to be run manually. Instead, there is a helper script to execute build commands on source code existing on the local host filesystem. This script is bundled with the image.
To install the helper script, run one of the images with no arguments,
and redirect the output to a file:
To install the helper script, run one of the images with no arguments, and redirect the output to a file:
docker run --rm CROSS_COMPILER_IMAGE_NAME > ./dockcross
chmod +x ./dockcross
mv ./dockcross ~/bin/
Where [CROSS_COMPILER_IMAGE_NAME]{.title-ref} is the name of the
cross-compiler toolchain Docker instance, e.g.
[dockcross/linux-armv7]{.title-ref}.
Where **CROSS_COMPILER_IMAGE_NAME** is the name of the cross-compiler toolchain Docker instance, e.g: **dockcross/linux-armv7**.
Only 64-bit x86_64 images are provided; a 64-bit x86_64 host system is
required.
Only 64-bit x86_64 images are provided; a 64-bit x86_64 host system is required.
## Usage
@ -72,264 +57,272 @@ For the impatient, here\'s how to compile a hello world for armv7:
chmod +x ./dockcross-linux-armv7
./dockcross-linux-armv7 bash -c '$CC test/C/hello.c -o hello_arm'
Note how invoking any toolchain command (make, gcc, etc.) is just a
matter of prepending the **dockcross** script on the commandline:
Note how invoking any toolchain command (make, gcc, etc.) is just a matter of prepending the **dockcross** script on the commandline:
./dockcross-linux-armv7 [command] [args...]
The dockcross script will execute the given command-line inside the
container, along with all arguments passed after the command. Commands
that evaluate environmental variables in the image, like
[\$CC]{.title-ref} above, should be executed in [bash -c].
The present working directory is mounted within the image, which can be
used to make source code available in the Docker container.
The dockcross script will execute the given command-line inside the container, along with all arguments passed after the command. Commands that evaluate environmental variables in the image, like **$CC** or **$CXX** above, should be executed in [bash -c]. The present working directory is mounted within the image, which can be used to make source code available in the Docker container.
## Summary cross compilers
| Image name | Target arch | Compiler | Target OS |
|:-------:|:--------:|:------:|:-----:|
| dockcross/base | - | - | - |
| dockcross/android-arm | ARMv7 | Clang | Android |
| dockcross/android-arm64 | ARMv8 | Clang | Android |
| dockcross/android-x86 | x86 | Clang | Android |
| dockcross/android-x86_64 | x86_64 | Clang | Android |
| dockcross/linux-arm64 | ARMv8 | GCC | Linux |
| dockcross/linux-arm64-musl | ARMv8 | GCC + musl | Linux |
| dockcross/linux-armv5 | ARMv5 | GCC | Linux |
| dockcross/linux-armv5-musl | ARMv5 | GCC + musl | Linux |
| dockcross/linux-armv6 | ARMv6 | GCC | Linux |
| dockcross/linux-armv6-lts | ARMv6 | GCC + Glibc 2.28 | Linux |
| dockcross/linux-armv6-musl | ARMv6 | GCC + musl | Linux |
| dockcross/linux-armv7 | ARMv7 | GCC | Linux |
| dockcross/linux-armv7a | ARMv7a | GCC | Linux |
| dockcross/linux-armv7l-musl | ARMv7l | GCC + musl | Linux |
| dockcross/linux-mips | mips | GCC | Linux |
| dockcross/linux-s390x | s390x | GCC | Linux |
| dockcross/linux-ppc64le | ppc64le | GCC | Linux |
| dockcross/linux-riscv32 | riscv32 | GCC | Linux |
| dockcross/linux-riscv64 | riscv64 | GCC | Linux |
| dockcross/linux-m68k-uclibc | m68k | GCC + uclibc | Linux |
| dockcross/linux-xtensa-uclibc | xtensa | GCC + uclibc | Linux |
| dockcross/manylinux2014-x86 | x86 | GCC | Linux |
| dockcross/manylinux2014-x64 | x86_64 | GCC | Linux |
| dockcross/linux-x86 | x86 | GCC | Linux |
| dockcross/linux-x64 | x86_64 | GCC | Linux |
| dockcross/linux-x64-clang | x86_64 | Clang | Linux |
| dockcross/web-wasm | JS | LLVM | Web (JS) |
| dockcross/windows-shared-x86 | x86 | GCC | Windows |
| dockcross/windows-shared-x64 | x86_64 | GCC | Windows |
| dockcross/windows-shared-x64-posix | x86_64 | GCC | Windows |
| dockcross/windows-static-x86 | x86 | GCC | Windows |
| dockcross/windows-static-x64 | x86_64 | GCC | Windows |
| dockcross/windows-static-x64-posix | x86_64 | GCC | Windows |
## Cross compilers
### dockcross/base
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/base/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/base/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/base) ![Docker Stars](https://img.shields.io/docker/stars/dockcross/base)
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/base/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/base) ![Docker Stars](https://img.shields.io/docker/stars/dockcross/base)
Base image for other toolchain images. From Debian Jessie with GCC,
make, autotools, CMake, Ninja, Git, and Python.
Base image for other toolchain images. From Debian Jessie with GCC, make, autotools, CMake, Ninja, Git, and Python.
### dockcross/android-arm
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/android-arm/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/android-arm/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/android-arm)
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/android-arm/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/android-arm)
The Android NDK standalone toolchain for the arm architecture.
### dockcross/android-arm64
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/android-arm64/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/android-arm64/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/android-arm64)
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/android-arm64/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/android-arm64)
The Android NDK standalone toolchain for the arm64 architecture.
### dockcross/android-x86
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/android-x86/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/android-x86/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/android-x86)
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/android-x86/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/android-x86)
The Android NDK standalone toolchain for the x86 architecture.
### dockcross/android-x86_64
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/android-x86_64/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/android-x86_64/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/android-x86_64)
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/android-x86_64/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/android-x86_64)
The Android NDK standalone toolchain for the x86_64 architecture.
### dockcross/linux-arm64
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-arm64/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-arm64/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-arm64)
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-arm64/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-arm64)
Cross compiler for the 64-bit ARM platform on Linux, also known as
AArch64.
Cross compiler for the 64-bit ARM platform on Linux, also known as AArch64.
### dockcross/linux-arm64-musl
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-arm64-musl/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-arm64-musl/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-arm64-musl)
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-arm64-musl/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-arm64-musl)
Cross compiler for the 64-bit ARM platform on Linux (also known as
AArch64), using [musl](https://www.musl-libc.org/) as base \"libc\".
### dockcross/linux-armv5
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-armv5/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-armv5/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-armv5)
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-armv5/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-armv5)
Linux armv5 cross compiler toolchain for legacy devices like the
Parrot AR Drone.
### dockcross/linux-armv5-musl
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-armv5-musl/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-armv5-musl/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-armv5-musl)
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-armv5-musl/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-armv5-musl)
Linux armv5 cross compiler toolchain using
[musl](https://www.musl-libc.org/) as base \"libc\".
### dockcross/linux-armv6
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-armv6/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-armv6/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-armv6)
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-armv6/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-armv6)
Linux ARMv6 cross compiler toolchain for the Raspberry Pi
### dockcross/linux-armv6-lts
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-armv6-lts/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-armv6-lts/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-armv6-lts)
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-armv6-lts/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-armv6-lts)
Linux ARMv6 cross compiler toolchain for the Raspberry Pi (Debian buster...)
### dockcross/linux-armv6-musl
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-armv6-musl/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-armv6-musl/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-armv6-musl)
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-armv6-musl/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-armv6-musl)
Linux ARMv6 cross compiler toolchain for the Raspberry Pi, etc,
using [musl](https://www.musl-libc.org/) as base \"libc\".
### dockcross/linux-armv7
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-armv7/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-armv7/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-armv7)
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-armv7/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-armv7)
Generic Linux armv7 cross compiler toolchain.
### dockcross/linux-armv7a
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-armv7a/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-armv7a/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-armv7a)
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-armv7a/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-armv7a)
Toolchain configured for ARMv7-A used in Beaglebone Black single
board PC with TI SoC AM3358 on board, Cortex-A8.
### dockcross/linux-armv7l-musl
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-armv7l-musl/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-armv7l-musl/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-armv7l-musl)
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-armv7l-musl/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-armv7l-musl)
Toolchain configured for ARMv7-L, using
[musl](https://www.musl-libc.org/) as base \"libc\".
### dockcross/linux-mipsel
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-mipsel/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-mipsel/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-mipsel)
Linux mipsel cross compiler toolchain for little endian MIPS GNU
systems.
### dockcross/linux-mips
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-mips/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-mips/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/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)
Linux mips cross compiler toolchain for big endian 32-bit hard float
MIPS GNU systems.
### dockcross/linux-s390x
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-s390x/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-s390x/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-s390x)
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-s390x/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-s390x)
Linux s390x cross compiler toolchain for S390X GNU systems.
### dockcross/linux-riscv64
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-riscv64/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-riscv64/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-riscv64)
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-riscv64/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-riscv64)
Linux risc-v 64bit cross compiler toolchain for risc-v 64bit GNU systems.
### dockcross/linux-riscv32
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-riscv32/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-riscv32/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-riscv32)
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-riscv32/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-riscv32)
Linux risc-v 32bit cross compiler toolchain for risc-v 32bit GNU systems.
### dockcross/linux-m68k-uclibc
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-m68k-uclibc/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-m68k-uclibc/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-m68k-uclibc)
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-m68k-uclibc/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-m68k-uclibc)
Linux m68k cross compiler toolchain for m68k GNU systems (http://www.mac.linux-m68k.org/ and http://www.linux-m68k.org/).
### dockcross/linux-ppc64le
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-ppc64le/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-ppc64le/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-ppc64le)
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-ppc64le/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-ppc64le)
Linux PowerPC 64 little endian cross compiler toolchain for the
POWER8, etc. Important: Due to Issue #430, automatic build of newer
images has been disabled.
Linux PowerPC 64 little endian cross compiler toolchain for the POWER8, etc. Important: Due to Issue #430, automatic build of newer images has been disabled.
### dockcross/linux-x64
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-x64/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-x64/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-x64)
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-x64/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-x64)
Linux x86_64 / amd64 compiler. Since the Docker image is natively
x86_64, this is not actually a cross compiler.
Linux x86_64/amd64 compiler. Since the Docker image is natively x86_64, this is not actually a cross compiler.
### dockcross/linux-x64-clang
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-x64-clang/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-x64-clang/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-x64-clang)
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-x64-clang/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-x64-clang)
Linux clang x86_64 / amd64 compiler. Since the Docker image is
natively x86_64, this is not actually a cross compiler.
Linux clang x86_64/amd64 compiler. Since the Docker image is natively x86_64, this is not actually a cross compiler.
### dockcross/linux-x86
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-x86/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-x86/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-x86)
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-x86/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-x86)
Linux i686 cross compiler.
### dockcross/manylinux2014-x64
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/manylinux2014-x64/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/manylinux2014-x64/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/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)
Docker [manylinux2014](https://github.com/pypa/manylinux) image for
building Linux x86_64 / amd64 [Python wheel
packages](http://pythonwheels.com/). It includes Python 3.5, 3.6,
3.7, 3.8, and 3.9. 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
[MANYLINUX2014]{.title-ref} to \"TRUE\" in the toolchain.
Docker [manylinux2014](https://github.com/pypa/manylinux) image for building Linux x86_64 / amd64 [Python wheel packages](http://pythonwheels.com/). It includes Python 3.5, 3.6, 3.7, 3.8, and 3.9. 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 **MANYLINUX2014** to \"TRUE\" in the toolchain.
### dockcross/manylinux2014-x86
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/manylinux2014-x86/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/manylinux2014-x86/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/manylinux2014-x86)
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/manylinux2014-x86/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/manylinux2014-x86)
Docker [manylinux2014](https://github.com/pypa/manylinux) image for
building Linux i686 [Python wheel
packages](http://pythonwheels.com/). It includes Python 3.5, 3.6,
3.7, 3.8, and 3.9. 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
[MANYLINUX2014]{.title-ref} to \"TRUE\" in the toolchain.
### dockcross/manylinux2014-aarch64
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/manylinux2014-aarch64/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/manylinux2014-aarch64/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/manylinux2014-aarch64)
Docker [manylinux2014](https://github.com/pypa/manylinux) image for
building Linux aarch64 / arm64 [Python wheel
packages](http://pythonwheels.com/). It includes Python 3.5, 3.6,
3.7, 3.8, and 3.9. 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
[MANYLINUX2014]{.title-ref} to \"TRUE\" in the toolchain.
Docker [manylinux2014](https://github.com/pypa/manylinux) image for building Linux i686 [Python wheel packages](http://pythonwheels.com/). It includes Python 3.5, 3.6, 3.7, 3.8, and 3.9. 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 **MANYLINUX2014** to \"TRUE\" in the toolchain.
### dockcross/web-wasm
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/web-wasm/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/web-wasm/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/web-wasm)
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/web-wasm/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/web-wasm)
The Emscripten WebAssembly/asm.js/JavaScript cross compiler.
### dockcross/windows-static-x64
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/windows-static-x64/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/windows-static-x64/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/windows-static-x64)
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/windows-static-x64/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/windows-static-x64)
64-bit Windows cross-compiler based on [MXE/MinGW-w64](https://mxe.cc/) with win32 threads and static
linking.
### dockcross/windows-static-x64-posix
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/windows-static-x64-posix/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/windows-static-x64-posix/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/windows-static-x64-posix)
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/windows-static-x64-posix/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/windows-static-x64-posix)
64-bit Windows cross-compiler based on [MXE/MinGW-w64](https://mxe.cc/) with posix threads and static
linking.
### dockcross/windows-static-x86
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/windows-static-x86/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/windows-static-x86/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/windows-static-x86)
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/windows-static-x86/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/windows-static-x86)
32-bit Windows cross-compiler based on [MXE/MinGW-w64](https://mxe.cc/) with win32 threads and static linking.
### dockcross/windows-shared-x64
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/windows-shared-x64/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/windows-shared-x64/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/windows-shared-x64)
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/windows-shared-x64/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/windows-shared-x64)
64-bit Windows cross-compiler based on [MXE/MinGW-w64](https://mxe.cc/) with win32 threads and dynamic linking.
### dockcross/windows-shared-x64-posix
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/windows-shared-x64-posix/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/windows-shared-x64-posix/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/windows-shared-x64-posix)
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/windows-shared-x64-posix/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/windows-shared-x64-posix)
64-bit Windows cross-compiler based on [MXE/MinGW-w64](https://mxe.cc/) with posix threads and dynamic linking.
### dockcross/windows-shared-x86
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/windows-shared-x86/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/windows-shared-x86/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/windows-shared-x86)
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/windows-shared-x86/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/windows-shared-x86)
32-bit Windows cross-compiler based on [MXE/MinGW-w64](https://mxe.cc/) with win32 threads and dynamic linking.
## Summary legacy cross compilers
The list of docker images that are no longer supported or broken
| Image name | Target arch | Compiler | Target OS |
|:-------:|:--------:|:------:|:-----:|
| dockcross/manylinux2014-aarch64 | ARMv8 | GCC 4.8 | manylinux |
| dockcross/manylinux1-x86 | x86 | GCC | manylinux |
| dockcross/manylinux1-x64 | x86_64 | GCC| manylinux |
| dockcross/manylinux2010-x86 | x86 | GCC | manylinux |
| dockcross/manylinux2010-x64 | x86_64 | GCC | manylinux |
## Articles
- [dockcross: C++ Write Once, Run
@ -401,15 +394,11 @@ Default: Image with which the script was created.
### DOCKCROSS_ARGS / \--args\|-a \<docker-run-args>
Extra arguments to pass to the `docker run` command. Quote the entire
set of args if they contain spaces.
Extra arguments to pass to the `docker run` command. Quote the entire set of args if they contain spaces.
## Per-project dockcross configuration
If a shell script named `.dockcross` is found in the current directory
where the dockcross script is started, it is executed before the
dockcross script `command` argument. The shell script is expected to
have a shebang like `#!/usr/bin/env bash`.
If a shell script named `.dockcross` is found in the current directory where the dockcross script is started, it is executed before the dockcross script `command` argument. The shell script is expected to have a shebang like `#!/usr/bin/env bash`.
For example, commands like
`git config --global advice.detachedHead false` can be added to this
@ -439,31 +428,17 @@ And then in the shell:
chmod +x linux-armv7 ## Gives the script execution permission.
./linux-armv7 bash ## Runs the helper script with the argument "bash", which starts an interactive container using your extended image.
## What is the difference between [dockcross]{.title-ref} and [dockbuild]{.title-ref} ?
## What is the difference between **dockcross** and **dockbuild** ?
The key difference is that
[dockbuild](https://github.com/dockbuild/dockbuild#readme) images do
**NOT** provide a [toolchain
file](https://cmake.org/cmake/help/latest/manual/cmake-toolchains.7.html)
but they use the same method to conveniently isolate the build
environment as
[dockcross](https://github.com/dockcross/dockcross#readme).
The key difference is that [dockbuild](https://github.com/dockbuild/dockbuild#readme) images do **NOT** provide a [toolchain file](https://cmake.org/cmake/help/latest/manual/cmake-toolchains.7.html) but they use the same method to conveniently isolate the build environment as [dockcross](https://github.com/dockcross/dockcross#readme).
[dockbuild]{.title-ref} is used to build binaries for Linux x86_64 /
amd64 that will work across most Linux distributions.
[dockbuild]{.title-ref} performs a native Linux build where the host
build system is a Linux x86_64 / amd64 Docker image (so that it can be
used for building binaries on any system which can run Docker images)
and the target runtime system is Linux x86_x64 / amd64.
**dockbuild** is used to build binaries for Linux x86_64/amd64 that will work across most Linux distributions.
**dockbuild** performs a native Linux build where the host build system is a Linux x86_64 / amd64 Docker image (so that it can be used for building binaries on any system which can run Docker images) and the target runtime system is Linux x86_x64/ amd64.
[dockcross]{.title-ref} is used to build binaries for many different
platforms. [dockcross]{.title-ref} performs a cross compilation where
the host build system is a Linux x86_64 / amd64 Docker image (so that it
can be used for building binaries on any system which can run Docker
images) and the target runtime system varies.
**dockcross** is used to build binaries for many different platforms. **dockcross** performs a cross compilation where the host build system is a Linux x86_64 / amd64 Docker image (so that it can be used for building binaries on any system which can run Docker images) and the target runtime system varies.
\-\--
Credits go to
[sdt/docker-raspberry-pi-cross-compiler](https://github.com/sdt/docker-raspberry-pi-cross-compiler),
who invented the base of the **dockcross** script.
Credits:
- [sdt/docker-raspberry-pi-cross-compiler](https://github.com/sdt/docker-raspberry-pi-cross-compiler), who invented the base of the **dockcross** script.
- [https://github.com/steeve/cross-compiler](https://github.com/steeve/cross-compiler),

View File

@ -49,7 +49,6 @@ COPY \
imagefiles/install-crosstool-ng-toolchain.sh \
imagefiles/patch/crosstool-ng/crosstool-ng-expat.patch \
imagefiles/patch/crosstool-ng/Fix-error-with-bash-5-and-up.patch \
manylinux2014-aarch64/crosstool-ng.config \
/dockcross/
# Build and install the toolchain, cleaning up artifacts afterwards.

View File

@ -25,7 +25,7 @@ if ! command -v git &> /dev/null; then
exit 1
fi
if [[ "${CMAKE_VERSION}" == "" ]]; then
if [[ -z "${CMAKE_VERSION}" ]]; then
echo >&2 'error: CMAKE_VERSION env. variable must be set to a non-empty value'
exit 1
fi
@ -33,16 +33,16 @@ fi
cd /usr/src
# If the first link doesn't work, it will use the mirror on github
git clone "$CMAKE_URL" CMake -b v$CMAKE_VERSION --depth 1 \
|| git clone "$CMAKE_MIRROR_URL" CMake -b v$CMAKE_VERSION --depth 1
git clone "$CMAKE_URL" CMake -b "v$CMAKE_VERSION" --depth 1 \
|| git clone "$CMAKE_MIRROR_URL" CMake -b "v$CMAKE_VERSION" --depth 1
mkdir /usr/src/CMake-build
cd /usr/src/CMake-build
${WRAPPER} /usr/src/CMake/bootstrap \
--parallel=$(nproc) \
--parallel="$(nproc)" \
-- -DCMAKE_USE_OPENSSL=OFF
${WRAPPER} make -j$(nproc)
${WRAPPER} make -j"$(nproc)"
mkdir /usr/src/CMake-ssl-build
@ -55,7 +55,7 @@ ${WRAPPER} /usr/src/CMake-build/bin/cmake \
-DCMAKE_USE_OPENSSL:BOOL=ON \
-DOPENSSL_ROOT_DIR:PATH=/usr/local/ssl \
../CMake
${WRAPPER} make -j$(nproc) install
${WRAPPER} make -j"$(nproc)" install
# Cleanup install tree
cd /usr/src/cmake-$CMAKE_VERSION

View File

@ -18,7 +18,7 @@ function do_curl_build {
# We do this shared to avoid obnoxious linker issues where git couldn't
# link properly. If anyone wants to make this build statically go for it.
LIBS=-ldl CFLAGS=-Wl,--exclude-libs,ALL ./configure --with-ssl --disable-static > /dev/null
make -j$(nproc) > /dev/null
make -j"$(nproc)" > /dev/null
make install > /dev/null
}

View File

@ -12,7 +12,7 @@ if ! command -v tar &> /dev/null; then
exit 1
fi
if [[ "${GIT_VERSION}" == "" ]]; then
if [[ -z "${GIT_VERSION}" ]]; then
echo >&2 'error: GIT_VERSION env. variable must be set to a non-empty value'
exit 1
fi
@ -32,18 +32,18 @@ curl --connect-timeout 20 \
--retry-max-time 40 \
-# -LO $url
tar xvzf git-${GIT_VERSION}.tar.gz --no-same-owner
rm -f git-${GIT_VERSION}.tar.gz
tar xvzf "git-${GIT_VERSION}.tar.gz" --no-same-owner
rm -f "git-${GIT_VERSION}.tar.gz"
pushd git-${GIT_VERSION}
pushd "git-${GIT_VERSION}"
./configure --prefix=/usr/local --with-curl
make -j$(nproc)
make -j"$(nproc)"
make install
popd
ldconfig
rm -rf git-${GIT_VERSION}
rm -rf "git-${GIT_VERSION}"
# turn the detached message off
git config --global advice.detachedHead false

View File

@ -59,7 +59,7 @@ PERL_DOWNLOAD_URL=https://www.cpan.org/src/5.0
function do_perl_build {
${WRAPPER} sh Configure -des -Dprefix=/opt/perl > /dev/null
${WRAPPER} make -j$(nproc) > /dev/null
${WRAPPER} make -j"$(nproc)" > /dev/null
${WRAPPER} make install > /dev/null
}
@ -84,7 +84,7 @@ function build_perl {
function do_openssl_build {
${WRAPPER} ./config no-shared -fPIC $CONFIG_FLAG --prefix=/usr/local/ssl --openssldir=/usr/local/ssl > /dev/null
${WRAPPER} make -j$(nproc) > /dev/null
${WRAPPER} make -j"$(nproc)" > /dev/null
${WRAPPER} make install_sw > /dev/null
}

View File

@ -25,13 +25,13 @@ while [ $# -gt 0 ]; do
done
# Download
wget https://www.python.org/ftp/python/${PYTHON_VERSION}/Python-${PYTHON_VERSION}.tgz
tar xvf Python-${PYTHON_VERSION}.tgz
wget "https://www.python.org/ftp/python/${PYTHON_VERSION}/Python-${PYTHON_VERSION}.tgz"
tar xvf "Python-${PYTHON_VERSION}.tgz"
# Configure, build and install
cd Python-${PYTHON_VERSION}
cd "Python-${PYTHON_VERSION}" || exit 1
# Disable --enable-shared --enable-optimizations --prefix=/usr/local/python-${PYTHON_VERSION}
./configure --with-ensurepip=install
make -j$(nproc)
make -j"$(nproc) "
make install #altinstall
ln -s /usr/local/bin/python3 /usr/local/bin/python
@ -39,4 +39,4 @@ ln -s /usr/local/bin/pip3 /usr/local/bin/pip
# Clean
cd ..
rm -rf Python-${PYTHON_VERSION}
rm -rf "Python-${PYTHON_VERSION}"

View File

@ -41,20 +41,20 @@ command:update-image() {
}
help:update-image() {
echo Pull the latest $FINAL_IMAGE .
echo "Pull the latest $FINAL_IMAGE ."
}
command:update-script() {
if cmp -s <( $OCI_EXE run --rm $FINAL_IMAGE ) $0; then
echo $0 is up to date
echo "$0 is up to date"
else
echo -n Updating $0 '... '
echo -n "Updating $0 ... "
$OCI_EXE run --rm $FINAL_IMAGE > $0 && echo ok
fi
}
help:update-image() {
echo Update $0 from $FINAL_IMAGE .
echo "Update $0 from $FINAL_IMAGE ."
}
command:update() {
@ -63,7 +63,7 @@ command:update() {
}
help:update() {
echo Pull the latest $FINAL_IMAGE, and then update $0 from that.
echo "Pull the latest $FINAL_IMAGE, and then update $0 from that."
}
command:help() {

View File

@ -24,8 +24,8 @@ fi
# The dockcross script sets the BUILDER_UID and BUILDER_GID vars.
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
groupadd -o -g "$BUILDER_GID" "$BUILDER_GROUP" 2> /dev/null
useradd -o -m -g "$BUILDER_GID" -u "$BUILDER_UID" "$BUILDER_USER" 2> /dev/null
export HOME=/home/${BUILDER_USER}
shopt -s dotglob
cp -r /root/* $HOME/
@ -37,8 +37,8 @@ if [[ -n $BUILDER_UID ]] && [[ -n $BUILDER_GID ]]; then
fi
# Enable passwordless sudo capabilities for the user
chown root:$BUILDER_GID $(which gosu)
chmod +s $(which gosu); sync
chown root:$BUILDER_GID "$(which gosu)"
chmod +s "$(which gosu)"; sync
# Execute project specific pre execution hook
if [[ -e /work/.dockcross ]]; then

View File

@ -28,7 +28,7 @@ if ! command -v tar &> /dev/null; then
exit 1
fi
if [[ "${CMAKE_VERSION}" == "" ]]; then
if [[ -z "${CMAKE_VERSION}" ]]; then
echo >&2 'error: CMAKE_VERSION env. variable must be set to a non-empty value'
exit 1
fi
@ -45,10 +45,10 @@ curl --connect-timeout 30 \
--retry-max-time 30 \
-# -LO $url
tar -xzvf ${CMAKE_ROOT}.tar.gz
rm -f ${CMAKE_ROOT}.tar.gz
tar -xzvf "${CMAKE_ROOT}.tar.gz"
rm -f "${CMAKE_ROOT}.tar.gz"
cd ${CMAKE_ROOT}
cd "${CMAKE_ROOT}"
rm -rf doc man
rm -rf bin/cmake-gui

View File

@ -89,7 +89,7 @@ BOOTSTRAP_PREFIX="${CTNG}/prefix"
./bootstrap
./configure \
--prefix "${BOOTSTRAP_PREFIX}"
make -j$(nproc)
make -j"$(nproc)"
make install
##

View File

@ -14,7 +14,7 @@ if ! command -v gpg &> /dev/null; then
fi
GOSU_VERSION=1.12
dpkgArch=$(if test $(uname -m) = "x86_64"; then echo amd64; else echo i386; fi)
dpkgArch=$(if test "$(uname -m)" = "x86_64"; then echo amd64; else echo i386; fi)
url="https://github.com/tianon/gosu/releases/download/${GOSU_VERSION}/gosu-${dpkgArch}"
url_key="https://github.com/tianon/gosu/releases/download/${GOSU_VERSION}/gosu-${dpkgArch}.asc"

View File

@ -1,63 +0,0 @@
# manylinux2014-aarch64 is based on manylinux2014-x64 and the aarch64 toolchain installed. This allows to
# run the container on a x86_64 host.
# This image is not based on "pypa/manylinux2014_aarch64" because it would require the host to be aarch64.
# For more details, read https://github.com/dockcross/dockcross/issues/367
FROM dockcross/manylinux2014-x64
# This is for 64-bit ARM Manylinux machine
# Crosstool-ng version
# Issues with crosstool-ng-1.24.0 and up : https://github.com/dockcross/dockcross/issues/367
ENV CT_VERSION crosstool-ng-1.23.0
#include "common-manylinux.crosstool"
# The cross-compiling emulator
RUN \
yum -y update && \
yum -y install \
qemu-user \
qemu-system-arm && \
yum clean all
# The CROSS_TRIPLE is a configured alias of the "aarch64-unknown-linux-gnueabi" target.
ENV CROSS_TRIPLE aarch64-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 \
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 manylinux2014-aarch64/Toolchain.cmake ${CROSS_ROOT}/
ENV CMAKE_TOOLCHAIN_FILE ${CROSS_ROOT}/Toolchain.cmake
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 AUDITWHEEL_ARCH aarch64
ENV AUDITWHEEL_PLAT manylinux2014_$AUDITWHEEL_ARCH
# Build-time metadata as defined at http://label-schema.org
ARG BUILD_DATE
ARG IMAGE=dockcross/manylinux2014-aarch64
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}

View File

@ -1,21 +0,0 @@
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_VERSION 1)
set(CMAKE_SYSTEM_PROCESSOR aarch64)
set(MANYLINUX2014 TRUE)
set(cross_triple "aarch64-unknown-linux-gnueabi")
set(cross_root /usr/xcc/${cross_triple})
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/")
set(CMAKE_FIND_ROOT_PATH ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(CMAKE_SYSROOT ${cross_root}/${cross_triple}/sysroot)
set(CMAKE_CROSSCOMPILING_EMULATOR /usr/bin/qemu-aarch64)

View File

@ -1,530 +0,0 @@
#
# Automatically generated file; DO NOT EDIT.
# Crosstool-NG Configuration
#
CT_CONFIGURE_has_static_link=y
CT_CONFIGURE_has_wget=y
CT_CONFIGURE_has_curl=y
CT_CONFIGURE_has_stat_flavor_GNU=y
CT_CONFIGURE_has_make_3_81_or_newer=y
CT_CONFIGURE_has_libtool_2_4_or_newer=y
CT_CONFIGURE_has_libtoolize_2_4_or_newer=y
CT_CONFIGURE_has_autoconf_2_63_or_newer=y
CT_CONFIGURE_has_autoreconf_2_63_or_newer=y
CT_CONFIGURE_has_gnu_m4_1_4_12_or_newer=y
CT_CONFIGURE_has_git=y
CT_MODULES=y
#
# Paths and misc options
#
#
# crosstool-NG behavior
#
# CT_OBSOLETE is not set
# CT_EXPERIMENTAL is not set
# CT_DEBUG_CT is not set
#
# Paths
#
CT_LOCAL_TARBALLS_DIR="${HOME}/src"
CT_SAVE_TARBALLS=y
CT_WORK_DIR="${CT_TOP_DIR}/.build"
CT_BUILD_TOP_DIR="${CT_WORK_DIR}/${CT_HOST:+HOST-${CT_HOST}/}${CT_TARGET}"
CT_PREFIX_DIR="${CT_PREFIX:-${HOME}/x-tools}/${CT_HOST:+HOST-${CT_HOST}/}${CT_TARGET}"
CT_RM_RF_PREFIX_DIR=y
CT_REMOVE_DOCS=y
CT_PREFIX_DIR_RO=y
CT_STRIP_HOST_TOOLCHAIN_EXECUTABLES=y
# CT_STRIP_TARGET_TOOLCHAIN_EXECUTABLES is not set
#
# Downloading
#
CT_DOWNLOAD_AGENT_WGET=y
# CT_DOWNLOAD_AGENT_CURL is not set
# CT_DOWNLOAD_AGENT_NONE is not set
# CT_FORBID_DOWNLOAD is not set
# CT_FORCE_DOWNLOAD is not set
CT_CONNECT_TIMEOUT=10
CT_DOWNLOAD_WGET_OPTIONS="--passive-ftp --tries=3 -nc --progress=dot:binary"
# CT_ONLY_DOWNLOAD is not set
# CT_USE_MIRROR is not set
#
# Extracting
#
# CT_FORCE_EXTRACT is not set
CT_OVERRIDE_CONFIG_GUESS_SUB=y
# CT_ONLY_EXTRACT is not set
CT_PATCH_BUNDLED=y
# CT_PATCH_LOCAL is not set
# CT_PATCH_BUNDLED_LOCAL is not set
# CT_PATCH_LOCAL_BUNDLED is not set
# CT_PATCH_BUNDLED_FALLBACK_LOCAL is not set
# CT_PATCH_LOCAL_FALLBACK_BUNDLED is not set
# CT_PATCH_NONE is not set
CT_PATCH_ORDER="bundled"
#
# Build behavior
#
CT_PARALLEL_JOBS=0
CT_LOAD=""
CT_USE_PIPES=y
CT_EXTRA_CFLAGS_FOR_BUILD=""
CT_EXTRA_LDFLAGS_FOR_BUILD=""
CT_EXTRA_CFLAGS_FOR_HOST=""
CT_EXTRA_LDFLAGS_FOR_HOST=""
# CT_CONFIG_SHELL_SH is not set
# CT_CONFIG_SHELL_ASH is not set
CT_CONFIG_SHELL_BASH=y
# CT_CONFIG_SHELL_CUSTOM is not set
CT_CONFIG_SHELL="${bash}"
#
# Logging
#
# CT_LOG_ERROR is not set
# CT_LOG_WARN is not set
# CT_LOG_INFO is not set
CT_LOG_EXTRA=y
# CT_LOG_ALL is not set
# 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_TO_FILE=y
CT_LOG_FILE_COMPRESS=y
#
# Target options
#
CT_ARCH="arm"
# CT_ARCH_alpha is not set
CT_ARCH_arm=y
# CT_ARCH_avr is not set
# CT_ARCH_m68k is not set
# CT_ARCH_mips is not set
# CT_ARCH_nios2 is not set
# CT_ARCH_powerpc is not set
# CT_ARCH_s390 is not set
# CT_ARCH_sh is not set
# CT_ARCH_sparc is not set
# CT_ARCH_x86 is not set
# CT_ARCH_xtensa is not set
CT_ARCH_alpha_AVAILABLE=y
CT_ARCH_arm_AVAILABLE=y
CT_ARCH_avr_AVAILABLE=y
CT_ARCH_m68k_AVAILABLE=y
CT_ARCH_microblaze_AVAILABLE=y
CT_ARCH_mips_AVAILABLE=y
CT_ARCH_nios2_AVAILABLE=y
CT_ARCH_powerpc_AVAILABLE=y
CT_ARCH_s390_AVAILABLE=y
CT_ARCH_sh_AVAILABLE=y
CT_ARCH_sparc_AVAILABLE=y
CT_ARCH_x86_AVAILABLE=y
CT_ARCH_xtensa_AVAILABLE=y
CT_ARCH_SUFFIX=""
#
# Generic target options
#
# CT_MULTILIB is not set
CT_DEMULTILIB=y
CT_ARCH_SUPPORTS_BOTH_MMU=y
CT_ARCH_DEFAULT_HAS_MMU=y
CT_ARCH_USE_MMU=y
CT_ARCH_SUPPORTS_BOTH_ENDIAN=y
CT_ARCH_DEFAULT_LE=y
# CT_ARCH_BE is not set
CT_ARCH_LE=y
CT_ARCH_ENDIAN="little"
CT_ARCH_SUPPORTS_32=y
CT_ARCH_SUPPORTS_64=y
CT_ARCH_DEFAULT_32=y
CT_ARCH_BITNESS=64
# CT_ARCH_32 is not set
CT_ARCH_64=y
#
# Target optimisations
#
CT_ARCH_SUPPORTS_WITH_ARCH=y
CT_ARCH_SUPPORTS_WITH_CPU=y
CT_ARCH_SUPPORTS_WITH_TUNE=y
CT_ARCH_EXCLUSIVE_WITH_CPU=y
CT_ARCH_ARCH=""
CT_ARCH_CPU=""
CT_ARCH_TUNE=""
CT_TARGET_CFLAGS=""
CT_TARGET_LDFLAGS=""
CT_ARCH_FLOAT=""
#
# arm other options
#
CT_ARCH_ARM_MODE="arm"
CT_ARCH_ARM_MODE_ARM=y
# CT_ARCH_ARM_MODE_THUMB is not set
# CT_ARCH_ARM_INTERWORKING is not set
CT_ARCH_ARM_EABI_FORCE=y
CT_ARCH_ARM_EABI=y
#
# Toolchain options
#
#
# General toolchain options
#
CT_FORCE_SYSROOT=y
CT_USE_SYSROOT=y
CT_SYSROOT_NAME="sysroot"
CT_SYSROOT_DIR_PREFIX=""
CT_WANTS_STATIC_LINK=y
CT_WANTS_STATIC_LINK_CXX=y
# CT_STATIC_TOOLCHAIN is not set
CT_TOOLCHAIN_PKGVERSION=""
CT_TOOLCHAIN_BUGURL=""
#
# Tuple completion and aliasing
#
CT_TARGET_VENDOR=""
CT_TARGET_ALIAS_SED_EXPR=""
CT_TARGET_ALIAS=""
#
# Toolchain type
#
CT_CROSS=y
# CT_CANADIAN is not set
CT_TOOLCHAIN_TYPE="cross"
#
# Build system
#
CT_BUILD=""
CT_BUILD_PREFIX=""
CT_BUILD_SUFFIX=""
#
# Misc options
#
# CT_TOOLCHAIN_ENABLE_NLS is not set
#
# Operating System
#
CT_KERNEL_SUPPORTS_SHARED_LIBS=y
CT_KERNEL="linux"
CT_KERNEL_VERSION="4.10.8"
# CT_KERNEL_bare_metal is not set
CT_KERNEL_linux=y
CT_KERNEL_bare_metal_AVAILABLE=y
CT_KERNEL_linux_AVAILABLE=y
# CT_KERNEL_LINUX_CUSTOM is not set
CT_KERNEL_V_4_10=y
# CT_KERNEL_V_4_9 is not set
# CT_KERNEL_V_4_4 is not set
# CT_KERNEL_V_4_1 is not set
# CT_KERNEL_V_3_16 is not set
# CT_KERNEL_V_3_12 is not set
# CT_KERNEL_V_3_10 is not set
# CT_KERNEL_V_3_4 is not set
# CT_KERNEL_V_3_2 is not set
CT_KERNEL_windows_AVAILABLE=y
#
# Common kernel options
#
CT_SHARED_LIBS=y
#
# linux other options
#
CT_KERNEL_LINUX_VERBOSITY_0=y
# CT_KERNEL_LINUX_VERBOSITY_1 is not set
# CT_KERNEL_LINUX_VERBOSITY_2 is not set
CT_KERNEL_LINUX_VERBOSE_LEVEL=0
CT_KERNEL_LINUX_INSTALL_CHECK=y
#
# Binary utilities
#
CT_ARCH_BINFMT_ELF=y
CT_BINUTILS="binutils"
CT_BINUTILS_binutils=y
#
# GNU binutils
#
CT_BINUTILS_VERSION="2.28"
# CT_BINUTILS_SHOW_LINARO is not set
CT_BINUTILS_V_2_28=y
# CT_BINUTILS_V_2_27 is not set
# CT_BINUTILS_V_2_26 is not set
CT_BINUTILS_2_27_or_later=y
CT_BINUTILS_2_26_or_later=y
CT_BINUTILS_2_25_1_or_later=y
CT_BINUTILS_2_25_or_later=y
CT_BINUTILS_2_24_or_later=y
CT_BINUTILS_2_23_2_or_later=y
CT_BINUTILS_HAS_HASH_STYLE=y
CT_BINUTILS_HAS_GOLD=y
CT_BINUTILS_GOLD_SUPPORTS_ARCH=y
CT_BINUTILS_GOLD_SUPPORT=y
CT_BINUTILS_HAS_PLUGINS=y
CT_BINUTILS_HAS_PKGVERSION_BUGURL=y
CT_BINUTILS_FORCE_LD_BFD_DEFAULT=y
# CT_BINUTILS_LINKER_LD is not set
CT_BINUTILS_LINKER_LD_GOLD=y
# CT_BINUTILS_LINKER_GOLD_LD is not set
CT_BINUTILS_GOLD_INSTALLED=y
CT_BINUTILS_GOLD_THREADS=y
CT_BINUTILS_LINKER_BOTH=y
CT_BINUTILS_LINKERS_LIST="ld,gold"
CT_BINUTILS_LD_WRAPPER=y
CT_BINUTILS_LINKER_DEFAULT="bfd"
CT_BINUTILS_PLUGINS=y
CT_BINUTILS_EXTRA_CONFIG_ARRAY=""
# CT_BINUTILS_FOR_TARGET is not set
#
# binutils other options
#
#
# C-library
#
CT_LIBC="glibc"
CT_LIBC_VERSION="2.17"
CT_LIBC_glibc=y
# CT_LIBC_uClibc is not set
CT_LIBC_avr_libc_AVAILABLE=y
CT_LIBC_glibc_AVAILABLE=y
CT_THREADS="nptl"
CT_CC_GLIBC_SHOW_LINARO=y
# CT_LIBC_GLIBC_V_2_25 is not set
# CT_LIBC_GLIBC_V_2_24 is not set
# CT_LIBC_GLIBC_V_2_23 is not set
# CT_LIBC_GLIBC_2_23_or_later=y
# CT_LIBC_GLIBC_2_20_or_later=y
CT_LIBC_GLIBC_2_17_or_later=y
CT_LIBC_mingw_AVAILABLE=y
CT_LIBC_musl_AVAILABLE=y
CT_LIBC_newlib_AVAILABLE=y
CT_LIBC_none_AVAILABLE=y
CT_LIBC_uClibc_AVAILABLE=y
CT_LIBC_SUPPORT_THREADS_ANY=y
CT_LIBC_SUPPORT_THREADS_NATIVE=y
#
# Common C library options
#
CT_THREADS_NATIVE=y
# CT_CREATE_LDSO_CONF is not set
CT_LIBC_XLDD=y
#
# glibc other options
#
CT_LIBC_GLIBC_NEEDS_PORTS=y
CT_LIBC_glibc_family=y
CT_LIBC_GLIBC_EXTRA_CONFIG_ARRAY=""
CT_LIBC_GLIBC_CONFIGPARMS=""
CT_LIBC_GLIBC_EXTRA_CFLAGS=""
# CT_LIBC_DISABLE_VERSIONING is not set
CT_LIBC_OLDEST_ABI=""
CT_LIBC_GLIBC_FORCE_UNWIND=y
CT_LIBC_ADDONS_LIST="ports"
# CT_LIBC_LOCALES is not set
# CT_LIBC_GLIBC_KERNEL_VERSION_NONE is not set
CT_LIBC_GLIBC_KERNEL_VERSION_AS_HEADERS=y
# CT_LIBC_GLIBC_KERNEL_VERSION_CHOSEN is not set
CT_LIBC_GLIBC_MIN_KERNEL="4.10.8"
#
# C compiler
#
CT_CC="gcc"
CT_CC_CORE_PASSES_NEEDED=y
CT_CC_CORE_PASS_1_NEEDED=y
CT_CC_CORE_PASS_2_NEEDED=y
CT_CC_gcc=y
CT_CC_GCC_VERSION="4.8.5"
# CT_CC_GCC_SHOW_LINARO is not set
CT_CC_GCC_V_4_8_5=y
# CT_CC_GCC_V_5_4_0 is not set
# CT_CC_GCC_V_4_9_4 is not set
CT_CC_GCC_4_8_or_later=y
# CT_CC_GCC_4_9_or_later=y
CT_CC_GCC_4_or_later=y
CT_CC_GCC_4=y
# CT_CC_GCC_6_or_later=y
CT_CC_GCC_ENABLE_PLUGINS=y
CT_CC_GCC_GOLD=y
CT_CC_GCC_ENABLE_CXX_FLAGS="-I/usr/include -fpermissive"
CT_CC_GCC_CORE_EXTRA_CONFIG_ARRAY=""
CT_CC_GCC_EXTRA_CONFIG_ARRAY=""
CT_CC_GCC_STATIC_LIBSTDCXX=y
# CT_CC_GCC_SYSTEM_ZLIB is not set
CT_CC_GCC_CONFIG_TLS=m
#
# Optimisation features
#
CT_CC_GCC_USE_GRAPHITE=y
CT_CC_GCC_USE_LTO=y
#
# Settings for libraries running on target
#
CT_CC_GCC_ENABLE_TARGET_OPTSPACE=y
# CT_CC_GCC_LIBMUDFLAP is not set
CT_CC_GCC_LIBGOMP=y
# CT_CC_GCC_LIBSSP is not set
# CT_CC_GCC_LIBQUADMATH is not set
# CT_CC_GCC_LIBSANITIZER is not set
#
# Misc. obscure options.
#
CT_CC_CXA_ATEXIT=y
# CT_CC_GCC_DISABLE_PCH is not set
CT_CC_GCC_SJLJ_EXCEPTIONS=m
CT_CC_GCC_LDBL_128=m
# CT_CC_GCC_BUILD_ID is not set
CT_CC_GCC_LNK_HASH_STYLE_DEFAULT=y
# CT_CC_GCC_LNK_HASH_STYLE_SYSV is not set
# CT_CC_GCC_LNK_HASH_STYLE_GNU is not set
# CT_CC_GCC_LNK_HASH_STYLE_BOTH is not set
CT_CC_GCC_LNK_HASH_STYLE=""
CT_CC_GCC_DEC_FLOAT_AUTO=y
# CT_CC_GCC_DEC_FLOAT_BID is not set
# CT_CC_GCC_DEC_FLOAT_DPD is not set
# CT_CC_GCC_DEC_FLOATS_NO is not set
CT_CC_SUPPORT_CXX=y
CT_CC_SUPPORT_FORTRAN=y
CT_CC_SUPPORT_JAVA=y
CT_CC_SUPPORT_ADA=y
CT_CC_SUPPORT_OBJC=y
CT_CC_SUPPORT_OBJCXX=y
CT_CC_SUPPORT_GOLANG=y
#
# Additional supported languages:
#
CT_CC_LANG_CXX=y
CT_CC_LANG_FORTRAN=y
# CT_CC_LANG_JAVA is not set
#
# Debug facilities
#
# CT_DEBUG_duma is not set
CT_DEBUG_gdb=y
CT_GDB_CROSS=y
# CT_GDB_CROSS_STATIC is not set
# CT_GDB_CROSS_SIM is not set
CT_GDB_CROSS_PYTHON=y
CT_GDB_CROSS_PYTHON_BINARY=""
CT_GDB_CROSS_EXTRA_CONFIG_ARRAY=""
# CT_GDB_NATIVE is not set
CT_GDB_GDBSERVER=y
CT_GDB_GDBSERVER_HAS_IPA_LIB=y
# CT_GDB_GDBSERVER_BUILD_IPA_LIB is not set
#
# gdb version
#
CT_GDB_VERSION="7.12.1"
# CT_GDB_V_7_12_1 is not set
# CT_GDB_V_7_11_1 is not set
CT_GDB_7_12_or_later=y
CT_GDB_7_2_or_later=y
CT_GDB_7_0_or_later=y
CT_GDB_HAS_PKGVERSION_BUGURL=y
CT_GDB_HAS_PYTHON=n
CT_GDB_INSTALL_GDBINIT=y
# CT_DEBUG_ltrace is not set
# CT_DEBUG_strace is not set
#
# Companion libraries
#
CT_COMPLIBS_NEEDED=y
CT_LIBICONV_NEEDED=y
CT_GETTEXT_NEEDED=y
CT_GMP_NEEDED=y
CT_MPFR_NEEDED=y
CT_ISL_NEEDED=y
CT_CLOOG_NEEDED=y
CT_MPC_NEEDED=y
# CT_EXPAT_NEEDED=y
CT_NCURSES_NEEDED=y
CT_COMPLIBS=y
CT_LIBICONV=y
CT_GETTEXT=y
CT_GMP=y
CT_MPFR=y
CT_ISL=y
CT_CLOOG=y
CT_MPC=y
# CT_EXPAT=y
CT_NCURSES=y
# CT_ZLIB is not set
CT_LIBICONV_V_1_15=y
# CT_LIBICONV_V_1_14 is not set
CT_LIBICONV_VERSION="1.15"
CT_GETTEXT_V_0_19_8_1=y
CT_GETTEXT_VERSION="0.19.8.1"
CT_GMP_V_6_1_2=y
CT_GMP_5_0_2_or_later=y
CT_GMP_VERSION="6.1.2"
CT_MPFR_V_3_1_5=y
CT_MPFR_VERSION="3.1.5"
CT_ISL_V_0_11_1=y
# CT_ISL_V_0_15_or_later=y
# CT_ISL_V_0_14_or_later=y
CT_ISL_V_0_11_or_later=y
CT_ISL_VERSION="0.11.1"
CT_CLOOG_V_0_18_0=y
CT_CLOOG_VERSION="0.18.0"
# CT_CLOOG_0_18_4_or_later=y
CT_CLOOG_0_18_or_later=y
CT_MPC_V_1_0_3=y
CT_MPC_VERSION="1.0.3"
# CT_EXPAT_V_2_2_0=y
# CT_EXPAT_VERSION="2.2.0"
CT_NCURSES_V_6_0=y
CT_NCURSES_VERSION="6.0"
CT_NCURSES_HOST_CONFIG_ARGS=""
CT_NCURSES_HOST_DISABLE_DB=y
CT_NCURSES_HOST_FALLBACKS="linux,xterm,xterm-color,xterm-256color,vt100"
CT_NCURSES_TARGET_CONFIG_ARGS=""
# CT_NCURSES_TARGET_DISABLE_DB is not set
CT_NCURSES_TARGET_FALLBACKS=""
#
# Companion libraries common options
#
# CT_COMPLIBS_CHECK is not set
#
# Companion tools
#
# CT_COMP_TOOLS_FOR_HOST is not set
# CT_COMP_TOOLS_autoconf is not set
CT_COMP_TOOLS_automake=y
CT_AUTOMAKE_V_1_15=y
CT_AUTOMAKE_VERSION="1.15"
CT_COMP_TOOLS_libtool=y
CT_LIBTOOL_V_2_4_6=y
CT_LIBTOOL_VERSION="2.4.6"
# CT_COMP_TOOLS_m4 is not set
# CT_COMP_TOOLS_make is not set

View File

@ -1,26 +0,0 @@
#!/bin/bash
set -euo pipefail
# More info: https://github.com/GoogleContainerTools/container-diff
if (( $# < 1 || $# > 2 )); then
echo "Need 1 or 2 arguments: <img1> <img2>"
exit 1
fi
if (( $# == 1 )); then
container-diff analyze $1 --type=history 2>&1 | tee -a analyze-history.txt
container-diff analyze $1 --type=file 2>&1 | tee -a analyze-file.txt
container-diff analyze $1 --type=size 2>&1 | tee -a analyze-size.txt
container-diff analyze $1 --type=apt 2>&1 | tee -a analyze-apt.txt
container-diff analyze $1 --type=pip 2>&1 | tee -a analyze-pip.txt
fi
if (( $# == 2 )); then
container-diff diff $1 $2 --type=history 2>&1 | tee -a diff-history.txt
container-diff diff $1 $2 --type=file 2>&1 | tee -a diff-file.txt
container-diff diff $1 $2 --type=size 2>&1 | tee -a diff-size.txt
container-diff diff $1 $2 --type=apt 2>&1 | tee -a diff-apt.txt
container-diff diff $1 $2 --type=pip 2>&1 | tee -a diff-pip.txt
fi

24
tools/dockcross-builder.sh Executable file
View File

@ -0,0 +1,24 @@
#!/usr/bin/env bash
if (( $# >= 1 )); then
image=$1
build_file=build-${image%:*}
shift 1
cmake_arg=$*
echo "cmake arg: $cmake_arg"
#echo "Pulling dockcross/$image"
#docker pull dockcross/"$image"
echo "Make script dockcross-$image"
docker run --rm dockcross/"$image" > ./dockcross-"$image"
chmod +x ./dockcross-"$image"
echo "Build $build_file"
./dockcross-"$image" cmake -B "$build_file" -S . -G Ninja "$cmake_arg"
./dockcross-"$image" ninja -C "$build_file"
else
echo "Usage: ${0##*/} <docker imag (ex: linux-x64/linux-x64-clang/linux-arm64/windows-shared-x64/windows-static-x64...)> <cmake arg.>"
exit 1
fi

View File

@ -0,0 +1,27 @@
#!/usr/bin/env bash
# More info: https://github.com/GoogleContainerTools/container-diff
if (( $# < 1 || $# > 2 )); then
echo "Need 1 or 2 arguments: <img1> <img2>"
echo "For local image: daemon://<img>"
echo "For remote image: remote://<img>"
exit 1
fi
if (( $# == 1 )); then
container-diff analyze "$1" --type=history 2>&1 | tee -a analyze-history.txt
container-diff analyze "$1" --type=file 2>&1 | tee -a analyze-file.txt
container-diff analyze "$1" --type=size 2>&1 | tee -a analyze-size.txt
container-diff analyze "$1" --type=apt 2>&1 | tee -a analyze-apt.txt
container-diff analyze "$1" --type=pip 2>&1 | tee -a analyze-pip.txt
fi
if (( $# == 2 )); then
container-diff diff "$1" "$2" --type=history 2>&1 | tee -a diff-history.txt
container-diff diff "$1" "$2" --type=file 2>&1 | tee -a diff-file.txt
container-diff diff "$1" "$2" --type=size 2>&1 | tee -a diff-size.txt
container-diff diff "$1" "$2" --type=apt 2>&1 | tee -a diff-apt.txt
container-diff diff "$1" "$2" --type=pip 2>&1 | tee -a diff-pip.txt
fi