Compare commits

...

21 Commits

Author SHA1 Message Date
6a512eeb08 Merge branch 'master' into add_tinycc 2021-08-10 21:22:16 +02:00
a42f26cc75 Merge pull request #552 from bensuperpc/add_buildroot
Add buildroot and ARM64 image with libraries (OpenSSL, SDL2, Boost, OpenCV ect...)
2021-08-10 21:19:23 +02:00
88222c9793 Merge remote-tracking branch 'origin/master' into add_tinycc 2021-08-10 00:46:39 +02:00
281a19366e Re-Add qt5 minimal
Re-Add qt5 minimal

Signed-off-by: Bensuperpc <bensuperpc@gmail.com>
2021-08-09 19:34:21 +02:00
3c20faed07 Disable qt5
Disable qt5

Signed-off-by: Bensuperpc <bensuperpc@gmail.com>
2021-08-09 13:10:51 +02:00
0da9a72049 Add quotes
Add quotes

Signed-off-by: Bensuperpc <bensuperpc@gmail.com>
2021-08-08 22:15:47 +02:00
b5a73bef22 Improve buildroot builder
Improve buildroot builder

Signed-off-by: Bensuperpc <bensuperpc@gmail.com>
2021-08-08 22:09:24 +02:00
cb5ab9f914 Merge branch 'add_buildroot' of https://github.com/bensuperpc/dockcross into add_buildroot 2021-08-08 20:36:38 +02:00
4e8fad2063 Add Qt5 minimal
Add Qt5 minimal

Signed-off-by: Bensuperpc <bensuperpc@gmail.com>
2021-08-08 20:36:32 +02:00
0b7e44d6a4 Merge branch 'dockcross:master' into add_buildroot 2021-08-08 13:19:46 +02:00
f3aa59ba6e Improve full image aarch64
Improve full image aarch64

Signed-off-by: Bensuperpc <bensuperpc@gmail.com>
2021-08-08 13:13:19 +02:00
0b90985648 Add full image
Add full image

Signed-off-by: Bensuperpc <bensuperpc@gmail.com>
2021-08-08 03:52:31 +02:00
e6e3cde831 Fix merge
Fix merge

Signed-off-by: Bensuperpc <bensuperpc@gmail.com>
2021-08-07 13:35:38 +02:00
1ce323ce7e Merge branch 'master' into add_tinycc 2021-08-07 01:04:38 +02:00
47f1545e66 Fix merge
Fix merge

Signed-off-by: Bensuperpc <bensuperpc@gmail.com>
2021-08-06 23:09:08 +02:00
bd6d6d77d4 Merge remote-tracking branch 'origin/master' into add_tinycc 2021-08-05 16:58:52 +02:00
37ece838f8 Disable libgcc
Disable libgcc

Signed-off-by: Bensuperpc <bensuperpc@gmail.com>
2021-08-04 21:40:16 +02:00
bca0a99e99 Multi lines arch_name in CI
Multi lines arch_name in CI

Signed-off-by: Bensuperpc <bensuperpc@gmail.com>
2021-08-04 19:00:48 +02:00
3c74c2f0d2 Fix GCC build
Fix GCC build

Signed-off-by: Bensuperpc <bensuperpc@gmail.com>
2021-08-04 18:53:19 +02:00
d76d2ae8c5 Merge remote-tracking branch 'origin/HEAD' into add_tinycc 2021-08-04 18:20:35 +02:00
ed942b52f5 Add tinycc image
Add tinycc image

Signed-off-by: Bensuperpc <bensuperpc@gmail.com>
2021-08-04 14:24:19 +02:00
11 changed files with 3918 additions and 8 deletions

View File

@ -48,14 +48,14 @@ jobs:
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-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-mips, linux-ppc64le, web-wasm,
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]
linux-riscv64, linux-riscv32, linux-m68k-uclibc, linux-x64-tinycc, linux-xtensa-uclibc]
steps:
- uses: actions/checkout@v2
- uses: actions/download-artifact@v2

View File

@ -14,8 +14,8 @@ BIN = ./bin
# These images are built using the "build implicit rule"
STANDARD_IMAGES = android-arm android-arm64 android-x86 android-x86_64 \
linux-x86 linux-x64 linux-x64-clang linux-arm64 linux-arm64-musl \
linux-armv5 linux-armv5-musl linux-m68k-uclibc linux-s390x \
linux-x86 linux-x64 linux-x64-clang linux-arm64 linux-arm64-musl linux-arm64-full \
linux-armv5 linux-armv5-musl linux-m68k-uclibc linux-s390x linux-x64-tinycc \
linux-armv6 linux-armv6-lts linux-armv6-musl \
linux-armv7l-musl linux-armv7 linux-armv7a \
linux-mips linux-ppc64le linux-riscv64 linux-riscv32 linux-xtensa-uclibc \
@ -24,7 +24,7 @@ STANDARD_IMAGES = android-arm android-arm64 android-x86 android-x86_64 \
# Generated Dockerfiles.
GEN_IMAGES = android-arm android-arm64 \
linux-x86 linux-x64 linux-x64-clang linux-arm64 linux-arm64-musl \
linux-x86 linux-x64 linux-x64-clang linux-arm64 linux-arm64-musl linux-arm64-full \
manylinux2014-x64 manylinux2014-x86 \
web-wasm linux-mips \
windows-static-x86 windows-static-x64 windows-static-x64-posix \
@ -32,7 +32,7 @@ GEN_IMAGES = android-arm android-arm64 \
linux-armv7 linux-armv7a linux-armv7l-musl \
linux-armv6 linux-armv6-lts linux-armv6-musl \
linux-armv5 linux-armv5-musl linux-ppc64le linux-s390x \
linux-riscv64 linux-riscv32 linux-m68k-uclibc linux-xtensa-uclibc
linux-riscv64 linux-riscv32 linux-m68k-uclibc linux-x64-tinycc linux-xtensa-uclibc
GEN_IMAGE_DOCKERFILES = $(addsuffix /Dockerfile,$(GEN_IMAGES))
@ -40,7 +40,7 @@ GEN_IMAGE_DOCKERFILES = $(addsuffix /Dockerfile,$(GEN_IMAGES))
NON_STANDARD_IMAGES = manylinux2014-x64 manylinux2014-x86 web-wasm
# Docker composite files
DOCKER_COMPOSITE_SOURCES = common.docker common.debian common.manylinux \
DOCKER_COMPOSITE_SOURCES = common.docker common.debian common.manylinux common.buildroot \
common.crosstool common.windows common-manylinux.crosstool common.dockcross common.label-and-env
DOCKER_COMPOSITE_FOLDER_PATH = common/
DOCKER_COMPOSITE_PATH = $(addprefix $(DOCKER_COMPOSITE_FOLDER_PATH),$(DOCKER_COMPOSITE_SOURCES))
@ -93,6 +93,7 @@ $(GEN_IMAGE_DOCKERFILES) Dockerfile: %Dockerfile: %Dockerfile.in $(DOCKER_COMPOS
-e '/common.debian/ r $(DOCKER_COMPOSITE_FOLDER_PATH)common.debian' \
-e '/common.manylinux/ r $(DOCKER_COMPOSITE_FOLDER_PATH)common.manylinux' \
-e '/common.crosstool/ r $(DOCKER_COMPOSITE_FOLDER_PATH)common.crosstool' \
-e '/common.buildroot/ r $(DOCKER_COMPOSITE_FOLDER_PATH)common.buildroot' \
-e '/common-manylinux.crosstool/ r $(DOCKER_COMPOSITE_FOLDER_PATH)common-manylinux.crosstool' \
-e '/common.windows/ r $(DOCKER_COMPOSITE_FOLDER_PATH)common.windows' \
-e '/common.dockcross/ r $(DOCKER_COMPOSITE_FOLDER_PATH)common.dockcross' \

30
common/common.buildroot Normal file
View File

@ -0,0 +1,30 @@
# Install Debian packages required for `buildroot`.
RUN apt-get update --yes && apt-get install --no-install-recommends --yes \
gawk \
gperf \
help2man \
python3-dev \
texinfo \
unzip \
libtool \
libtool-bin \
&& apt-get clean autoclean --yes \
&& apt-get autoremove --yes \
&& rm -rf /var/lib/{apt,dpkg,cache,log}/
COPY \
imagefiles/install-buildroot-toolchain.sh \
buildroot.config \
/dockcross/
# Build and install the toolchain, cleaning up artifacts afterwards.
RUN mkdir /dockcross/buildroot \
&& cd /dockcross/buildroot \
&& /dockcross/install-buildroot-toolchain.sh \
-c "/dockcross/buildroot.config" \
-v "${BR_VERSION}" \
&& rm -rf /dockcross/buildroot /dockcross/install-buildroot-toolchain.sh
# Restore our default workdir (from "dockcross/base").
WORKDIR /work

View File

@ -48,7 +48,7 @@ RUN mkdir /dockcross/crosstool \
&& cd /dockcross/crosstool \
&& /dockcross/install-crosstool-ng-toolchain.sh \
-p "${XCC_PREFIX}" \
-c /dockcross/crosstool-ng.config \
-c "/dockcross/crosstool-ng.config" \
-v "${CT_VERSION}" \
&& rm -rf /dockcross/crosstool /dockcross/install-crosstool-ng-toolchain.sh

View File

@ -0,0 +1,43 @@
#!/usr/bin/env bash
set -x
set -e
set -o pipefail
ROOT=${PWD}
usage() { echo "Usage: $0 -c <config-path> -v <version>" 1>&2; exit 1; }
REPO_URL="https://github.com/buildroot/buildroot.git"
CONFIG_PATH=""
REV="2021.08-rc1"
while getopts "c:v:" o; do
case "${o}" in
c)
CONFIG_PATH=$(readlink -f ${OPTARG})
;;
v)
REV=${OPTARG}
;;
*)
usage
;;
esac
done
shift $((OPTIND-1))
if [ -z ${CONFIG_PATH} ] || [ ! -f ${CONFIG_PATH} ]; then
echo "ERROR: Missing config path (-c)."
usage
fi
if [ -z ${REV} ]; then
echo "WARNING: No version selected, use default version: $REV (-v)."
fi
git clone "$REPO_URL" --recurse-submodules --remote-submodules #--branch="$REV"
cd buildroot
git checkout "$REV"
cp "$CONFIG_PATH" .config
make

View File

@ -0,0 +1,41 @@
FROM dockcross/base:latest
# This is for 64-bit ARM Linux machine
# Buildroot version
ENV BR_VERSION 2021.08-rc1
#include "common.buildroot"
# The cross-compiling emulator
RUN apt-get update \
&& apt-get install -y \
qemu-user \
qemu-user-static \
&& apt-get clean --yes
# The CROSS_TRIPLE is a configured alias of the "aarch64-buildroot-linux-gnu" target.
ENV CROSS_TRIPLE aarch64-buildroot-linux-gnu
ENV CROSS_ROOT /buildroot
ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
AR=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ar \
CC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gcc \
CPP=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-cpp \
CXX=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-g++ \
LD=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ld \
FC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gfortran
ENV QEMU_LD_PREFIX "${CROSS_ROOT}/${CROSS_TRIPLE}/sysroot"
ENV QEMU_SET_ENV "LD_LIBRARY_PATH=${CROSS_ROOT}/lib:${QEMU_LD_PREFIX}"
COPY Toolchain.cmake ${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
#include "common.label-and-env"

View File

@ -0,0 +1,22 @@
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_VERSION 1)
set(CMAKE_SYSTEM_PROCESSOR aarch64)
set(cross_triple "aarch64-buildroot-linux-gnu")
set(cross_root /buildroot)
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 ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
set(CMAKE_SYSROOT ${cross_root}/${cross_triple}/sysroot)
set(CMAKE_CROSSCOMPILING_EMULATOR /usr/bin/qemu-aarch64)

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,31 @@
FROM dockcross/base:latest
MAINTAINER Matt McCormick "matt.mccormick@kitware.com"
RUN git clone --recurse-submodules https://repo.or.cz/tinycc.git \
&& cd tinycc \
&& ./configure --cpu=x86_64 \
&& make -j$(nproc) \
&& make test \
&& make install
ENV PATH="/usr/local/bin:${PATH}"
# Test if compiler work
RUN tcc -v
ENV CROSS_TRIPLE x86_64-linux-gnu
ENV CROSS_ROOT /usr/bin
ENV AS=/usr/bin/${CROSS_TRIPLE}-as \
AR=/usr/bin/${CROSS_TRIPLE}-ar \
CC=/usr/local/bin/tcc \
CPP=/usr/bin/${CROSS_TRIPLE}-cpp \
CXX=/usr/bin/${CROSS_TRIPLE}-g++ \
LD=/usr/bin/${CROSS_TRIPLE}-ld \
FC=/usr/bin/${CROSS_TRIPLE}-gfortran
COPY ${CROSS_TRIPLE}-noop.sh /usr/bin/${CROSS_TRIPLE}-noop
COPY Toolchain.cmake /usr/lib/${CROSS_TRIPLE}/
ENV CMAKE_TOOLCHAIN_FILE /usr/lib/${CROSS_TRIPLE}/Toolchain.cmake
#include "common.label-and-env"

View File

@ -0,0 +1,12 @@
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_VERSION 1)
set(CMAKE_SYSTEM_PROCESSOR x86_64)
set(cross_triple "x86_64-linux-gnu")
set(CMAKE_C_COMPILER $ENV{CC})
set(CMAKE_CXX_COMPILER $ENV{CXX})
set(CMAKE_Fortran_COMPILER $ENV{FC})
set(CMAKE_ASM_COMPILER ${CMAKE_C_COMPILER})
set(CMAKE_CROSSCOMPILING_EMULATOR /usr/bin/${cross_triple}-noop)

View File

@ -0,0 +1,2 @@
#!/bin/sh
exec "$@"