Compare commits

...

17 Commits

Author SHA1 Message Date
61ca500abd Merge pull request #572 from bensuperpc/Update_buildroot
Update buildroot and add LIBABSEIL
2021-08-31 08:17:39 +02:00
ec4c1de0ba Re-add LIBQUADMATH
Re-add LIBQUADMATH

Signed-off-by: Bensuperpc <bensuperpc@gmail.com>
2021-08-30 23:09:27 +02:00
519a6c8736 Add FMT
Add FMT

Signed-off-by: Bensuperpc <bensuperpc@gmail.com>
2021-08-30 20:35:09 +02:00
332bf7ad98 Update buildroot and add LIBABSEIL
Update buildroot and add LIBABSEIL

Signed-off-by: Bensuperpc <bensuperpc@gmail.com>
2021-08-30 20:28:39 +02:00
19322baed2 Move to llvm for NDK 23 2021-08-26 12:16:31 +02:00
9f6e8f0850 Merge pull request #569 from bensuperpc/Add_tests
Update CI: Updating image lists
2021-08-25 14:46:22 +02:00
9c6c6e57e4 Update CI
Updating image lists

Signed-off-by: Bensuperpc <bensuperpc@gmail.com>
2021-08-24 23:54:17 +02:00
e05e6dd677 Merge pull request #566 from bensuperpc/master
Update readme
2021-08-23 14:17:36 +02:00
9b48cd1053 Update readme
Update readme

Signed-off-by: Bensuperpc <bensuperpc@gmail.com>
2021-08-23 14:15:46 +02:00
db51f29778 Merge pull request #562 from odidev/manylinux2014-aarch64
Add manylinux2014-aarch64 with gcc=9.3
2021-08-23 14:11:29 +02:00
52f21639b2 Add manylinux2014-aarch64 with gcc=9.3 2021-08-23 07:22:21 +00:00
d7b98b4fe9 Merge pull request #565 from bensuperpc/Update_web-wasm
Update emscripten/emsdk to 2.0.27
2021-08-23 00:58:16 +02:00
7504651dad Update emscripten/emsdk to 2.0.27
Update emscripten/emsdk to 2.0.27

Signed-off-by: Bensuperpc <bensuperpc@gmail.com>
2021-08-22 21:40:31 +02:00
9c713ea6b5 Merge pull request #563 from bensuperpc/Update_android
Update android NDK to r23 (August 2021)
2021-08-22 11:30:02 +02:00
7427f07a27 Merge pull request #564 from bensuperpc/add_x86_64-full
Add linux-x86_64-full and minor fix
2021-08-22 06:27:55 +02:00
dd60bbb440 Fix wrong url
Fix wrong url

Signed-off-by: Bensuperpc <bensuperpc@gmail.com>
2021-08-21 22:54:17 +02:00
8c081be13b Update android NDK to r23 (August 2021)
Update android NDK to r23 (August 2021)

Signed-off-by: Bensuperpc <bensuperpc@gmail.com>
2021-08-21 20:48:52 +02:00
20 changed files with 1000 additions and 73 deletions

View File

@ -40,22 +40,71 @@ jobs:
docker image push dockcross/base --all-tags
image:
name: ${{ matrix.arch_name }}
name: ${{ matrix.arch_name.image }}
needs: base
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
arch_name: [android-arm, android-arm64, android-x86, android-x86_64,
linux-arm64, linux-arm64-musl, linux-armv5, linux-armv5-musl,
linux-armv6, linux-armv6-lts, linux-armv6-musl, linux-arm64-full,
linux-armv7, linux-armv7a, linux-armv7l-musl,
linux-x64-clang, linux-s390x, linux-x64, linux-x86, linux-x86_64-full,
linux-mips, linux-ppc64le, web-wasm,
manylinux2014-x64, manylinux2014-x86,
windows-static-x64, windows-static-x64-posix, windows-static-x86, windows-armv7,
windows-shared-x64, windows-shared-x64-posix, windows-shared-x86, windows-arm64,
linux-riscv64, linux-riscv32, linux-m68k-uclibc, linux-xtensa-uclibc, linux-x64-tinycc]
arch_name:
# Android images
- { image: "android-arm", arch: "arm" }
- { image: "android-arm64", arch: "arm64" }
- { image: "android-x86", arch: "x86" }
- { image: "android-x86_64", arch: "x86_64" }
# Linux arm64/armv8 images
- { image: "linux-arm64", arch: "arm64" }
- { image: "linux-arm64-musl", arch: "arm64" }
- { image: "linux-arm64-full", arch: "arm64" }
# Linux armv5 images
- { image: "linux-armv5", arch: "armv5" }
- { image: "linux-armv5-musl", arch: "armv5" }
# Linux armv6 images
- { image: "linux-armv6", arch: "armv6" }
- { image: "linux-armv6-lts", arch: "armv6" }
- { image: "linux-armv6-musl", arch: "armv6" }
# Linux armv7 images
- { image: "linux-armv7", arch: "armv7" }
- { image: "linux-armv7a", arch: "armv7" }
- { image: "linux-armv7l-musl", arch: "armv7" }
# Linux x86 images
- { image: "linux-x86", arch: "x86" }
# Linux x86_64 images
- { image: "linux-x64", arch: "x86_64" }
- { image: "linux-x64-tinycc", arch: "x86_64" }
- { image: "linux-x64-clang", arch: "x86_64" }
- { image: "linux-x86_64-full", arch: "x86_64" }
# Linux riscv images
- { image: "linux-riscv32", arch: "riscv32" }
- { image: "linux-riscv64", arch: "riscv64" }
# Linux s390x images
- { image: "linux-s390x", arch: "s390x" }
# Linux mips images
- { image: "linux-mips", arch: "mips" }
# Linux ppc64le images
- { image: "linux-ppc64le", arch: "ppc64le" }
# Linux m68k images
- { image: "linux-m68k-uclibc", arch: "m68k" }
# Linux xtensa images
- { image: "linux-xtensa-uclibc", arch: "xtensa" }
# Windows x86_x64 images
- { image: "windows-static-x64", arch: "x86_x64" }
- { image: "windows-static-x64-posix", arch: "x86_x64" }
- { image: "windows-static-x64", arch: "x86_x64" }
- { image: "windows-shared-x64", arch: "x86_x64" }
- { image: "windows-shared-x64-posix", arch: "x64" }
# Windows x86 images
- { image: "windows-static-x86", arch: "x86" }
- { image: "windows-shared-x86", arch: "x86" }
# Windows arm images
- { image: "windows-armv7", arch: "armv7" }
- { image: "windows-arm64", arch: "arm64" }
# manylinux2014 images
- { image: "manylinux2014-x86", arch: "x86" }
- { image: "manylinux2014-x64", arch: "x86_64" }
- { image: "manylinux2014-aarch64", arch: "arm64" }
# web-wasm images
- { image: "web-wasm", arch: "JS" }
steps:
- uses: actions/checkout@v2
- uses: actions/download-artifact@v2
@ -65,11 +114,11 @@ jobs:
- name: load base
run: xz -d -k < ./cache/base.tar.xz | docker load
- name: build
run: make ${{ matrix.arch_name }}
- name: test
run: make ${{ matrix.arch_name }}.test
run: make ${{ matrix.arch_name.image }}
- name: basic test
run: make ${{ matrix.arch_name.image }}.test
- name: deploy
if: github.ref == 'refs/heads/master'
run: |
docker login -u ${{ secrets.DOCKER_USER }} -p ${{ secrets.DOCKER_PASS }}
docker image push dockcross/${{ matrix.arch_name }} --all-tags
docker image push dockcross/${{ matrix.arch_name.image }} --all-tags

View File

@ -26,6 +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 windows-arm64 windows-armv7 \
windows-static-x86 windows-static-x64 windows-static-x64-posix \
windows-shared-x86 windows-shared-x64 windows-shared-x64-posix \
@ -37,7 +38,8 @@ 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 web-wasm
NON_STANDARD_IMAGES = manylinux2014-x64 manylinux2014-x86 \
manylinux2014-aarch64 web-wasm
# Docker composite files
DOCKER_COMPOSITE_SOURCES = common.docker common.debian common.manylinux common.buildroot \
@ -122,6 +124,31 @@ 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
@# Register qemu
docker run --rm --privileged hypriot/qemu-register
@# Get libstdc++ from quay.io/pypa/manylinux2014_aarch64 container
docker run -v `pwd`:/host --rm -e LIB_PATH=/host/$@/xc_script/ quay.io/pypa/manylinux2014_aarch64 bash -c "PASS=1 /host/$@/xc_script/docker_setup_scrpits/copy_libstd.sh"
mkdir -p $@/imagefiles && cp -r imagefiles $@/
$(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
@# libstdc++ is coppied into image, now remove it
docker run -v `pwd`:/host --rm quay.io/pypa/manylinux2014_aarch64 bash -c "rm -rf /host/$@/xc_script/usr"
manylinux2014-aarch64.test: manylinux2014-aarch64
$(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
#

View File

@ -297,6 +297,12 @@ 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)
@ -359,7 +365,6 @@ 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 |

View File

@ -9,20 +9,19 @@ RUN apt-get update && apt-get install -y \
ENV CROSS_TRIPLE=arm-linux-androideabi
ENV CROSS_ROOT=/usr/${CROSS_TRIPLE}
ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
AR=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ar \
CC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-clang \
CPP=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-cpp \
CXX=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-clang++ \
LD=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ld \
FC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gfortran
ENV AS=${CROSS_ROOT}/bin/llvm-as \
AR=${CROSS_ROOT}/bin/llvm-ar \
CC=${CROSS_ROOT}/bin/clang \
CXX=${CROSS_ROOT}/bin/clang++ \
LD=${CROSS_ROOT}/bin/ld
ENV ANDROID_NDK_REVISION 23
ENV ANDROID_NDK_API 23
ENV ANDROID_NDK_REVISION 22b
ENV ANDROID_NDK_API 22
RUN mkdir -p /build && \
cd /build && \
curl -O https://dl.google.com/android/repository/android-ndk-r${ANDROID_NDK_REVISION}-linux-x86_64.zip && \
unzip ./android-ndk-r${ANDROID_NDK_REVISION}-linux-x86_64.zip && \
curl -O https://dl.google.com/android/repository/android-ndk-r${ANDROID_NDK_REVISION}-linux.zip && \
unzip ./android-ndk-r${ANDROID_NDK_REVISION}-linux.zip && \
cd android-ndk-r${ANDROID_NDK_REVISION} && \
./build/tools/make_standalone_toolchain.py \
--arch arm \

View File

@ -13,20 +13,19 @@ RUN apt-get update && apt-get install -y \
ENV CROSS_TRIPLE=aarch64-linux-android
ENV CROSS_ROOT=/usr/${CROSS_TRIPLE}
ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
AR=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ar \
CC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-clang \
CPP=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-cpp \
CXX=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-clang++ \
LD=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ld \
FC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gfortran
ENV AS=${CROSS_ROOT}/bin/llvm-as \
AR=${CROSS_ROOT}/bin/llvm-ar \
CC=${CROSS_ROOT}/bin/clang \
CXX=${CROSS_ROOT}/bin/clang++ \
LD=${CROSS_ROOT}/bin/ld
ENV ANDROID_NDK_REVISION 23
ENV ANDROID_NDK_API 23
ENV ANDROID_NDK_REVISION 22b
ENV ANDROID_NDK_API 22
RUN mkdir -p /build && \
cd /build && \
curl -O https://dl.google.com/android/repository/android-ndk-r${ANDROID_NDK_REVISION}-linux-x86_64.zip && \
unzip ./android-ndk-r${ANDROID_NDK_REVISION}-linux-x86_64.zip && \
curl -O https://dl.google.com/android/repository/android-ndk-r${ANDROID_NDK_REVISION}-linux.zip && \
unzip ./android-ndk-r${ANDROID_NDK_REVISION}-linux.zip && \
cd android-ndk-r${ANDROID_NDK_REVISION} && \
./build/tools/make_standalone_toolchain.py \
--arch arm64 \

View File

@ -4,20 +4,19 @@ RUN apt-get update && apt-get install -y unzip
ENV CROSS_TRIPLE=i686-linux-android
ENV CROSS_ROOT=/usr/${CROSS_TRIPLE}
ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
AR=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ar \
CC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-clang \
CPP=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-cpp \
CXX=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-clang++ \
LD=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ld \
FC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gfortran
ENV AS=${CROSS_ROOT}/bin/llvm-as \
AR=${CROSS_ROOT}/bin/llvm-ar \
CC=${CROSS_ROOT}/bin/clang \
CXX=${CROSS_ROOT}/bin/clang++ \
LD=${CROSS_ROOT}/bin/ld
ENV ANDROID_NDK_REVISION 23
ENV ANDROID_NDK_API 23
ENV ANDROID_NDK_REVISION 22b
ENV ANDROID_NDK_API 22
RUN mkdir -p /build && \
cd /build && \
curl -O https://dl.google.com/android/repository/android-ndk-r${ANDROID_NDK_REVISION}-linux-x86_64.zip && \
unzip ./android-ndk-r${ANDROID_NDK_REVISION}-linux-x86_64.zip && \
curl -O https://dl.google.com/android/repository/android-ndk-r${ANDROID_NDK_REVISION}-linux.zip && \
unzip ./android-ndk-r${ANDROID_NDK_REVISION}-linux.zip && \
cd android-ndk-r${ANDROID_NDK_REVISION} && \
./build/tools/make_standalone_toolchain.py \
--arch x86 \

View File

@ -4,20 +4,19 @@ RUN apt-get update && apt-get install -y unzip
ENV CROSS_TRIPLE=x86_64-linux-android
ENV CROSS_ROOT=/usr/${CROSS_TRIPLE}
ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
AR=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ar \
CC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-clang \
CPP=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-cpp \
CXX=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-clang++ \
LD=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ld \
FC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gfortran
ENV AS=${CROSS_ROOT}/bin/llvm-as \
AR=${CROSS_ROOT}/bin/llvm-ar \
CC=${CROSS_ROOT}/bin/clang \
CXX=${CROSS_ROOT}/bin/clang++ \
LD=${CROSS_ROOT}/bin/ld
ENV ANDROID_NDK_REVISION 23
ENV ANDROID_NDK_API 23
ENV ANDROID_NDK_REVISION 22b
ENV ANDROID_NDK_API 22
RUN mkdir -p /build && \
cd /build && \
curl -O https://dl.google.com/android/repository/android-ndk-r${ANDROID_NDK_REVISION}-linux-x86_64.zip && \
unzip ./android-ndk-r${ANDROID_NDK_REVISION}-linux-x86_64.zip && \
curl -O https://dl.google.com/android/repository/android-ndk-r${ANDROID_NDK_REVISION}-linux.zip && \
unzip ./android-ndk-r${ANDROID_NDK_REVISION}-linux.zip && \
cd android-ndk-r${ANDROID_NDK_REVISION} && \
./build/tools/make_standalone_toolchain.py \
--arch x86_64 \

View File

@ -49,6 +49,7 @@ 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

@ -3,8 +3,8 @@ FROM dockcross/base:latest
# This is for 64-bit ARM Linux machine
# Buildroot version
# crosstool-ng master 2021-08-21
ENV BR_VERSION 181a5e229b347c1996eeca7d7727ee66bc566f01
# buildroot master 2021-08-30
ENV BR_VERSION 2990d7dcb163a5618100a6985726b6820457a6d1
#include "common.buildroot"

View File

@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
# Buildroot 2021.08-rc2-29-gdbe3af5532 Configuration
# Buildroot 2021.08-rc2-75-g2990d7dcb1 Configuration
#
BR2_HAVE_DOT_CONFIG=y
BR2_HOST_GCC_AT_LEAST_4_9=y
@ -186,6 +186,7 @@ BR2_SSP_NONE=y
BR2_RELRO_NONE=y
# BR2_RELRO_PARTIAL is not set
# BR2_RELRO_FULL is not set
BR2_FORTIFY_SOURCE_ARCH_SUPPORTS=y
BR2_FORTIFY_SOURCE_NONE=y
# BR2_FORTIFY_SOURCE_1 is not set
# BR2_FORTIFY_SOURCE_2 is not set
@ -961,6 +962,10 @@ BR2_PACKAGE_SDL2=y
# KMS/DRM video driver needs libdrm
#
#
# KMS/DRM video driver needs an OpenGL EGL backend provided by mesa3d
#
#
# OpenGL support needs X11 and an OpenGL provider
#
@ -2199,7 +2204,7 @@ BR2_PACKAGE_JEMALLOC_ARCH_SUPPORTS=y
BR2_PACKAGE_LAPACK_ARCH_SUPPORTS=y
# BR2_PACKAGE_LAPACK is not set
BR2_PACKAGE_LIBABSEIL_CPP_ARCH_SUPPORTS=y
# BR2_PACKAGE_LIBABSEIL_CPP is not set
BR2_PACKAGE_LIBABSEIL_CPP=y
# BR2_PACKAGE_LIBARGTABLE2 is not set
BR2_PACKAGE_LIBATOMIC_OPS_ARCH_SUPPORTS=y
# BR2_PACKAGE_LIBATOMIC_OPS is not set
@ -2306,7 +2311,7 @@ BR2_PACKAGE_PROTOBUF=y
#
# BR2_PACKAGE_AUGEAS is not set
# BR2_PACKAGE_ENCHANT is not set
# BR2_PACKAGE_FMT is not set
BR2_PACKAGE_FMT=y
# BR2_PACKAGE_FSTRCMP is not set
# BR2_PACKAGE_ICU is not set
# BR2_PACKAGE_INIH is not set

View File

@ -3,8 +3,8 @@ FROM dockcross/base:latest
# This is for 64-bit x86 Linux machine
# Buildroot version
# crosstool-ng master 2021-08-21
ENV BR_VERSION 181a5e229b347c1996eeca7d7727ee66bc566f01
# buildroot master 2021-08-30
ENV BR_VERSION 2990d7dcb163a5618100a6985726b6820457a6d1
#include "common.buildroot"

View File

@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
# Buildroot 2021.08-rc2-29-gdbe3af5532 Configuration
# Buildroot 2021.08-rc2-75-g2990d7dcb1 Configuration
#
BR2_HAVE_DOT_CONFIG=y
BR2_HOST_GCC_AT_LEAST_4_9=y
@ -147,6 +147,7 @@ BR2_SSP_NONE=y
BR2_RELRO_NONE=y
# BR2_RELRO_PARTIAL is not set
# BR2_RELRO_FULL is not set
BR2_FORTIFY_SOURCE_ARCH_SUPPORTS=y
BR2_FORTIFY_SOURCE_NONE=y
# BR2_FORTIFY_SOURCE_1 is not set
# BR2_FORTIFY_SOURCE_2 is not set
@ -931,6 +932,10 @@ BR2_PACKAGE_SDL2=y
# KMS/DRM video driver needs libdrm
#
#
# KMS/DRM video driver needs an OpenGL EGL backend provided by mesa3d
#
#
# OpenGL support needs X11 and an OpenGL provider
#
@ -2176,7 +2181,7 @@ BR2_PACKAGE_JEMALLOC_ARCH_SUPPORTS=y
BR2_PACKAGE_LAPACK_ARCH_SUPPORTS=y
# BR2_PACKAGE_LAPACK is not set
BR2_PACKAGE_LIBABSEIL_CPP_ARCH_SUPPORTS=y
# BR2_PACKAGE_LIBABSEIL_CPP is not set
BR2_PACKAGE_LIBABSEIL_CPP=y
# BR2_PACKAGE_LIBARGTABLE2 is not set
BR2_PACKAGE_LIBATOMIC_OPS_ARCH_SUPPORTS=y
# BR2_PACKAGE_LIBATOMIC_OPS is not set
@ -2284,7 +2289,7 @@ BR2_PACKAGE_PROTOBUF=y
#
# BR2_PACKAGE_AUGEAS is not set
# BR2_PACKAGE_ENCHANT is not set
# BR2_PACKAGE_FMT is not set
BR2_PACKAGE_FMT=y
# BR2_PACKAGE_FSTRCMP is not set
# BR2_PACKAGE_ICU is not set
# BR2_PACKAGE_INIH is not set

View File

@ -0,0 +1,73 @@
# 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:20210708-94745ff
# 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
RUN cd ${XCC_PREFIX}/${CROSS_TRIPLE}/${CROSS_TRIPLE}/include && \
wget https://gist.githubusercontent.com/nhatminhle/5181506/raw/541482dbc61862bba8a156edaae57faa2995d791/stdatomic.h
# Running scripts to cross compile python and copy libstdc++ into toolcain
ADD manylinux2014-aarch64/xc_script /tmp/
RUN PASS=2 /tmp/docker_setup_scrpits/copy_libstd.sh
RUN /tmp/docker_setup_scrpits/prepare_cross_env.sh
RUN rm -rf /tmp/docker_setup_scrpits
RUN rm -rf /tmp/usr/
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

@ -0,0 +1,21 @@
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

@ -0,0 +1,524 @@
#
# 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="9.3.0"
# CT_CC_GCC_SHOW_LINARO is not set
CT_CC_GCC_V_9_3_0=y
# CT_CC_GCC_V_5_4_0 is not set
# CT_CC_GCC_V_4_9_4 is not set
CT_CC_GCC_9_3_or_later=y
# CT_CC_GCC_4_9_or_later=y
CT_CC_GCC_9_or_later=y
CT_CC_GCC_9=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_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_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_15=y
# CT_ISL_V_0_15_or_later=y
# CT_ISL_V_0_14_or_later=y
CT_ISL_V_0_15_or_later=y
CT_ISL_VERSION="0.15"
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

@ -0,0 +1,52 @@
#!/bin/bash
# AUTHOR: odidev
# DATE: 2021-07-20
# DESCRIPTION: This file is invoked two times. first time from Makefile with
# PASS == 1 and second time in Dockerfile.in with PASS == 2. In
# dockcross container, the current libstdc++ is not the same as
# in manylinux containers. So, copying the libstdc++ form manylinux
# container to dockcross container. It is being done int 2 pass.
# during PASS == 1, the script will copy libstdc++ from manylinux
# container to build machine and then during PASS == 2, libstdc++
# will be copied from build machine to dockcross container
if [ $PASS == 1 ]; then
echo "library location on host: " ${LIB_PATH}
echo "PASS 1: copying libstdc++ library on host"
files=$(rpm -ql libstdc++)
for file in ${files}; do
if [ -f ${file} -a ! -L ${file} -a ! -d ${file} ]; then
if grep -q "shared object" <<< $(file $file); then
install -m 0644 -D ${file} "${LIB_PATH}${file}"
break;
fi
fi
done
echo "Done"
elif [ $PASS == 2 ]; then
echo "PASS 2: copying libstdc++ library in docker image"
old_libstdc_path=$(find /usr/xcc/ -name libstdc++.so*[0-9] -type f)
old_libstdc_directory=$(dirname "${old_libstdc_path}")
target_libstdc_path=$(find /tmp -name libstdc++.so*[0-9] -type f)
target_libstdc_filename=$(basename "${target_libstdc_path}")
target_libstdc_new_path=${old_libstdc_directory}/${target_libstdc_filename}
install -m 0555 -D ${target_libstdc_path} ${target_libstdc_new_path}
echo "Done"
links=$(find /usr/xcc/ \( -name libstdc++.so*[{0-9}] -o -name libstdc++.so \) -type l)
echo "Creating soft links for target libstdc++ library"
for link in ${links}; do
case "$link" in
(*libstdc++.so*[{0-9}].[{0-9}].[{0-9}]*)
target_libstdc_filename=$(basename "${target_libstdc_new_path}")
libstdc_link_directory=$(dirname "${link}")
rm -rf $link
target_libstdc_link_path=${libstdc_link_directory}/${target_libstdc_filename}
ln -sf ${target_libstdc_new_path} ${target_libstdc_link_path}
;;
(*)
ln -sf ${target_libstdc_new_path} ${link}
esac
done
echo "Done"
fi

View File

@ -0,0 +1,113 @@
#!/bin/bash
# AUTHOR: odidev
# DATE: 2021-07-20
# DESCRIPTION: This file intended to cross compile the python and create necessary
# crossenv enrironment
# The current env is not compatible to build python so resetting it as
# in quay.io/pypa/manylinux2014_x86_64 containers
unset $(env | awk -F= '{print $1}')
export SSL_CERT_FILE=/opt/_internal/certs.pem
export TERM=xterm
export LC_ALL=en_US.UTF-8
export LD_LIBRARY_PATH=/opt/rh/devtoolset-9/root/usr/lib64:/opt/rh/devtoolset-9/root/usr/lib:/opt/rh/devtoolset-9/root/usr/lib64/dyninst:/opt/rh/devtoolset-9/root/usr/lib/dyninst:/usr/local/lib64
export PATH=/opt/rh/devtoolset-9/root/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
export PWD=/work
export LANG=en_US.UTF-8
export AUDITWHEEL_ARCH=x86_64
export DEVTOOLSET_ROOTPATH=/opt/rh/devtoolset-9/root
export HOME=/root
export SHLVL=1
export LANGUAGE=en_US.UTF-8
export AUDITWHEEL_PLAT=manylinux2014_aarch64
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
export AUDITWHEEL_POLICY=manylinux2014
# Cross compile Python versions present in manylinux containers
declare -A buildpy
python_vers=""
for PY in /opt/python/cp*/bin/python; do
ver=`$PY --version | cut -d " " -f 2`
python_vers="${python_vers} ${ver}"
cpver=cp`echo ${ver} | cut -d "." -f 1-2 | sed 's/\.//'`
if [ ${cpver} = "cp36" ] || [ ${cpver} = "cp37" ]; then
cpver="${cpver}-${cpver}m"
else
cpver="${cpver}-${cpver}"
fi
buildpy[${ver}]=${cpver}
done
# Adding cross compiler path in PATH env variable
export PATH=/usr/xcc/aarch64-unknown-linux-gnueabi/bin:$PATH
OLD_PATH=$PATH
CROSS_PY_BASE=/opt/_internal
CROSS_PY_BASE_LN=/opt/python
BUILD_DIR=/tmp/builds
LN=ln
sub_rel=""
# Loop over each python version and cross compile it
for python_ver in $python_vers; do
rel=""
sub_rel=""
found_sub_rel=0
for i in ` seq ${#python_ver}`
do
c=${python_ver:$i-1:1}
if [[ ${c} == [a-zA-Z] ]] ; then
found_sub_rel=1
fi
if [[ $found_sub_rel == "0" ]]; then
rel=${rel}${c}
else
sub_rel=${sub_rel}${c}
fi
done
mkdir -p ${BUILD_DIR} && cd ${BUILD_DIR}
wget https://www.python.org/ftp/python/${rel}/Python-${rel}${sub_rel}.tgz
tar xzf Python-${rel}${sub_rel}.tgz
cd Python-${rel}${sub_rel}
# Setting up build python path required by crassenv
BUILD_PYBIN=${CROSS_PY_BASE_LN}/${buildpy[$python_ver]}/bin
BUILD_PIP=${BUILD_PYBIN}/pip3
BUILD_PYTHON=${BUILD_PYBIN}/python3
# Setting up target python required by crossenv
TARGET_PYPATH=${CROSS_PY_BASE}/xc/xcpython-${python_ver}
TARGET_PYTHON=${TARGET_PYPATH}/bin/python3
# Setting up cross env path
CROSS_ENV=${CROSS_PY_BASE}/${buildpy[$python_ver]}-xc
CROSS_ENV_LN=${CROSS_PY_BASE_LN}/${buildpy[$python_ver]}-xc
CROSS_ENV_PIP=${CROSS_ENV_LN}/cross/bin/pip
# Adding build python path as it is required to
# configure the python for cross compilation
PATH=${BUILD_PYBIN}:${OLD_PATH}
export PATH
./configure --prefix=${TARGET_PYPATH} \
--host=aarch64-unknown-linux-gnueabi \
--build=x86_64-linux-gnu \
--without-ensurepip \
ac_cv_buggy_getaddrinfo=no \
ac_cv_file__dev_ptmx=yes \
ac_cv_file__dev_ptc=no \
--enable-optimizations
make -j32 install
make install
# Create the necessary env and its link
${BUILD_PIP} install --upgrade pip crossenv
${BUILD_PYTHON} -m crossenv ${TARGET_PYTHON} ${CROSS_ENV}
${LN} -s ${CROSS_ENV} ${CROSS_ENV_LN}
${CROSS_ENV_PIP} install wheel
rm -rf ${BUILD_DIR}
done

View File

@ -0,0 +1,36 @@
#!/bin/bash
# AUTHOR: odidev
# DATE: 2021-07-20
# DESCRIPTION: This file will be invoked by cibuildwheel when before all is set.
# It will install the package in manylinux container and copy back
# the installed files on host machine will will be coppied to
# toolchain
install_dir='/host/tmp/install_deps'
packages=$(echo $1 | sed 's/\(yum\s*\|install\s*\|-y\s*\)//g')
# Installing the packages
echo "Installing dependencies: $packages"
if $1; then
echo "Installed successfully"
else
echo "Failed"
exit 1
fi
# Coping the installed files
if list=`rpm -ql $packages`; then
echo "Copying dependencies files to prepare cross toolchain-"
for file in $list; do
test -f $file && echo "Copy $file --> ${install_dir}${file}"
test -f $file && install -m 0644 -D $file "${install_dir}${file}"
done
else
echo $list
echo "Dependencies not resolved"
exit 1
fi
exit 0

View File

@ -0,0 +1,20 @@
#!/bin/bash
# AUTHOR: odidev
# DATE: 2021-07-20
# DESCRIPTION: The wheels are cross compiled and we can't be repair in currnet
# environment. So, better to repair in manylinux container. So,
# we need to run BEFORE_ALL again in target manylinux contaner. So,
# instead of running BEFORE_ALL again we can copy the stored files.
# INPUT: $1 --> Dependeicies install path on host machine with respect to
# container
# $2 --> Wheel repair command
install_dir="$1"
for file in `find $install_dir -type f`; do
install_path=$(echo ${file} | sed 's/^.*usr/\/usr/')
install -m 0644 -D ${file} ${install_path}
done
$2

View File

@ -1,4 +1,4 @@
FROM emscripten/emsdk:2.0.26
FROM emscripten/emsdk:2.0.27
MAINTAINER Matt McCormick "matt.mccormick@kitware.com"
# Revert back to "/bin/sh" as default shell
@ -52,7 +52,7 @@ RUN ln -s /usr/bin/python3 /usr/bin/python
#include "common.docker"
ENV EMSCRIPTEN_VERSION 2.0.26
ENV EMSCRIPTEN_VERSION 2.0.27
ENV PATH /emsdk:/emsdk/upstream/bin/:/emsdk/upstream/emscripten:${PATH}
ENV CC=/emsdk/upstream/emscripten/emcc \