diff --git a/.github/workflows/expired.yml b/.github/workflows/expired.yml index 476d8c8..e378831 100644 --- a/.github/workflows/expired.yml +++ b/.github/workflows/expired.yml @@ -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.' diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index a581fcd..06ba801 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -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-xtensa-uclibc] diff --git a/.github/workflows/shellcheck.yml b/.github/workflows/shellcheck.yml index 2e183f9..4304cf1 100644 --- a/.github/workflows/shellcheck.yml +++ b/.github/workflows/shellcheck.yml @@ -5,12 +5,12 @@ on: branches: - '*' paths-ignore: - - '**/README.md' + - '**.md' pull_request: branches: - '*' paths-ignore: - - '**/README.md' + - '**.md' workflow_dispatch: jobs: diff --git a/Makefile b/Makefile index 744d3f2..dea92dc 100644 --- a/Makefile +++ b/Makefile @@ -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 linux-arm64-full \ 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 common.buildroot \ @@ -123,25 +122,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 # @@ -227,7 +207,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 diff --git a/README.md b/README.md index c0de382..f336ed6 100644 --- a/README.md +++ b/README.md @@ -12,35 +12,24 @@ Cross compiling toolchains in Docker images. - 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](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 +Note that commands are executed verbatim. If any shell processing for environment variable expansion or redirection is required, please use ```bash bash -c "" ``` @@ -79,39 +68,39 @@ The dockcross script will execute the given command-line inside the container, a | Image name | Target arch | Compiler | Target OS | |:-------:|:--------:|:------:|:-----:| | dockcross/base | - | - | - | -| dockcross/android-arm | ARMv7 | Clang | Android 32 bit | +| dockcross/android-arm | ARMv7 | Clang | Android | | dockcross/android-arm64 | ARMv8 | Clang | Android | -| dockcross/android-x86 | x86 | Clang | Android x86 | -| dockcross/android-x86_64 | x86_64 | Clang | Android x86_64 | -| dockcross/linux-arm64 | ARMv8 | GCC | Linux ARMv8 | -| dockcross/linux-arm64-musl | ARMv8 | GCC + musl | Linux ARMv8 | -| dockcross/linux-armv5 | ARMv5 | GCC | Linux ARMv5 | -| dockcross/linux-armv5-musl | ARMv5 | GCC + musl | Linux ARMv5 | -| dockcross/linux-armv6 | ARMv6 | GCC | Linux ARMv6 | -| dockcross/linux-armv6-lts | ARMv6 | GCC + Glibc 2.28 | Linux ARMv6 | -| dockcross/linux-armv6-musl | ARMv6 | GCC + musl | Linux ARMv6 | -| dockcross/linux-armv7 | ARMv7 | GCC | Linux ARMv7 | -| dockcross/linux-armv7a | ARMv7a | GCC | Linux ARMv7a | -| dockcross/linux-armv7l-musl | ARMv7l | GCC + musl | Linux ARMv7l | -| dockcross/linux-mips | mips | GCC | Linux mips | -| dockcross/linux-s390x | s390x | GCC | Linux s390x | -| dockcross/linux-ppc64le | ppc64le | GCC | Linux ppc64le | -| dockcross/linux-riscv32 | riscv32 | GCC | Linux riscv32 | -| dockcross/linux-riscv64 | riscv64 | GCC | Linux riscv64 | -| dockcross/linux-m68k-uclibc | m68k | GCC + uclibc | Linux m68k | -| dockcross/linux-xtensa-uclibc | xtensa | GCC + uclibc | Linux xtensa | -| dockcross/manylinux2014-x86 | x86 | GCC | Linux x86 | -| dockcross/manylinux2014-x64 | x86_64 | GCC | Linux x86_64 | -| dockcross/linux-x86 | x86 | GCC | Linux x86 | -| dockcross/linux-x64 | x86_64 | GCC | Linux x86_64 | -| dockcross/linux-x64-clang | x86_64 | Clang | Linux x86_64 | +| 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 x86 | -| dockcross/windows-shared-x64 | x86_64 | GCC | Windows x86_64 | -| dockcross/windows-shared-x64-posix | x86_64 | GCC | Windows x86_64 | -| dockcross/windows-static-x86 | x86 | GCC | Windows x86 | -| dockcross/windows-static-x64 | x86_64 | GCC | Windows x86_64 | -| dockcross/windows-static-x64-posix | x86_64 | GCC | Windows x86_64 | +| 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 @@ -278,12 +267,6 @@ Docker [manylinux2014](https://github.com/pypa/manylinux) image for building Lin 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/manylinux2014-aarch64 - -![Docker Image Size (tag)](https://img.shields.io/docker/image-size/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** to \"TRUE\" in the toolchain. - ### 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) @@ -328,6 +311,18 @@ linking. 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 diff --git a/common/common-manylinux.crosstool b/common/common-manylinux.crosstool index 535e144..a61004b 100644 --- a/common/common-manylinux.crosstool +++ b/common/common-manylinux.crosstool @@ -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. diff --git a/imagefiles/build-and-install-cmake.sh b/imagefiles/build-and-install-cmake.sh index aaee83f..8cb0133 100755 --- a/imagefiles/build-and-install-cmake.sh +++ b/imagefiles/build-and-install-cmake.sh @@ -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 diff --git a/imagefiles/build-and-install-curl.sh b/imagefiles/build-and-install-curl.sh index 54f14f9..e67248b 100755 --- a/imagefiles/build-and-install-curl.sh +++ b/imagefiles/build-and-install-curl.sh @@ -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 } diff --git a/imagefiles/build-and-install-git.sh b/imagefiles/build-and-install-git.sh index b6237ef..662dbe1 100755 --- a/imagefiles/build-and-install-git.sh +++ b/imagefiles/build-and-install-git.sh @@ -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 diff --git a/imagefiles/build-and-install-openssl.sh b/imagefiles/build-and-install-openssl.sh index cc5f7b8..6c2ddee 100755 --- a/imagefiles/build-and-install-openssl.sh +++ b/imagefiles/build-and-install-openssl.sh @@ -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 } diff --git a/imagefiles/build-and-install-python.sh b/imagefiles/build-and-install-python.sh index 887ac5a..12efe2d 100755 --- a/imagefiles/build-and-install-python.sh +++ b/imagefiles/build-and-install-python.sh @@ -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}" diff --git a/imagefiles/dockcross.sh b/imagefiles/dockcross.sh index cd718b9..49cb2fb 100755 --- a/imagefiles/dockcross.sh +++ b/imagefiles/dockcross.sh @@ -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() { diff --git a/imagefiles/entrypoint.sh b/imagefiles/entrypoint.sh index 6b24ac8..1e2bca7 100755 --- a/imagefiles/entrypoint.sh +++ b/imagefiles/entrypoint.sh @@ -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 diff --git a/imagefiles/install-cmake-binary.sh b/imagefiles/install-cmake-binary.sh index 2e9fb92..35113d1 100755 --- a/imagefiles/install-cmake-binary.sh +++ b/imagefiles/install-cmake-binary.sh @@ -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 diff --git a/imagefiles/install-crosstool-ng-toolchain.sh b/imagefiles/install-crosstool-ng-toolchain.sh index 098fe42..0e21584 100755 --- a/imagefiles/install-crosstool-ng-toolchain.sh +++ b/imagefiles/install-crosstool-ng-toolchain.sh @@ -89,7 +89,7 @@ BOOTSTRAP_PREFIX="${CTNG}/prefix" ./bootstrap ./configure \ --prefix "${BOOTSTRAP_PREFIX}" -make -j$(nproc) +make -j"$(nproc)" make install ## diff --git a/imagefiles/install-gosu-binary.sh b/imagefiles/install-gosu-binary.sh index 2eb082e..599a0a0 100755 --- a/imagefiles/install-gosu-binary.sh +++ b/imagefiles/install-gosu-binary.sh @@ -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" diff --git a/manylinux2014-aarch64/Dockerfile.in b/manylinux2014-aarch64/Dockerfile.in deleted file mode 100644 index 32c9e60..0000000 --- a/manylinux2014-aarch64/Dockerfile.in +++ /dev/null @@ -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} diff --git a/manylinux2014-aarch64/Toolchain.cmake b/manylinux2014-aarch64/Toolchain.cmake deleted file mode 100644 index 5f657b7..0000000 --- a/manylinux2014-aarch64/Toolchain.cmake +++ /dev/null @@ -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) diff --git a/manylinux2014-aarch64/crosstool-ng.config b/manylinux2014-aarch64/crosstool-ng.config deleted file mode 100644 index 1a5adb2..0000000 --- a/manylinux2014-aarch64/crosstool-ng.config +++ /dev/null @@ -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 diff --git a/tools/container-diff.sh b/tools/container-diff.sh deleted file mode 100755 index d4c860d..0000000 --- a/tools/container-diff.sh +++ /dev/null @@ -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: " - 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 diff --git a/tools/dockcross-builder.sh b/tools/dockcross-builder.sh new file mode 100755 index 0000000..6aa2072 --- /dev/null +++ b/tools/dockcross-builder.sh @@ -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##*/} " + exit 1 +fi diff --git a/tools/docker-container-diff.sh b/tools/docker-container-diff.sh new file mode 100644 index 0000000..1deb6bf --- /dev/null +++ b/tools/docker-container-diff.sh @@ -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: " + echo "For local image: daemon://" + echo "For remote image: remote://" + 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