From a7389a2b088bd08e1d3f901b1498152304445a65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93mar=20H=C3=B6gni=20Gu=C3=B0marsson?= Date: Wed, 22 Nov 2023 15:52:29 +0000 Subject: [PATCH] Switch strategy to merge newer setup --- CMakeLists.txt | 2 +- cmake/toolchains/aarch64-linux-gcc.cmake | 10 ++------ containers/tfc-toolchain/install-common.sh | 5 ++-- .../tfc-toolchain/tfc-toolchain.dockerfile | 23 +++++++++++-------- 4 files changed, 19 insertions(+), 21 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e0289df13c..00d8029cff 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.28) +cmake_minimum_required(VERSION 3.27) project(tfc-framework VERSION "2023.10.3" diff --git a/cmake/toolchains/aarch64-linux-gcc.cmake b/cmake/toolchains/aarch64-linux-gcc.cmake index 157eb21946..e00ad2fab7 100644 --- a/cmake/toolchains/aarch64-linux-gcc.cmake +++ b/cmake/toolchains/aarch64-linux-gcc.cmake @@ -6,14 +6,8 @@ set(CMAKE_SYSTEM_NAME Linux) set(CMAKE_SYSTEM_PROCESSOR aarch64) # Name of C compiler. -find_program(GCC-13 "aarch64-linux-gnu-gcc-13") -if (GCC-13) -set(CMAKE_C_COMPILER "/usr/bin/aarch64-linux-gnu-gcc-13") -set(CMAKE_CXX_COMPILER "/usr/bin/aarch64-linux-gnu-g++-13") -else () -set(CMAKE_C_COMPILER "/usr/bin/aarch64-linux-gnu-gcc") -set(CMAKE_CXX_COMPILER "/usr/bin/aarch64-linux-gnu-g++") -endif () +set(CMAKE_C_COMPILER "/cpproot/bin/aarch64-linux-gnu-gcc") +set(CMAKE_CXX_COMPILER "/cpproot/bin/aarch64-linux-gnu-g++") # Where to look for the target environment. (More paths can be added here) set(CMAKE_FIND_ROOT_PATH /usr/aarch64-linux-gnu) diff --git a/containers/tfc-toolchain/install-common.sh b/containers/tfc-toolchain/install-common.sh index a56ffd1737..47215e1e9b 100755 --- a/containers/tfc-toolchain/install-common.sh +++ b/containers/tfc-toolchain/install-common.sh @@ -10,8 +10,6 @@ hide_output apt install -y --no-install-recommends \ make \ automake \ xz-utils \ - gcc \ - g++ \ git \ zip \ unzip \ @@ -25,6 +23,9 @@ hide_output apt install -y --no-install-recommends \ python3-distutils \ python3-jinja2 \ python3-venv + gcc-13 \ + g++-13 \ + g++-13-aarch64-linux-gnu # Install documentation specific packages #hide_output apt install -y \ diff --git a/containers/tfc-toolchain/tfc-toolchain.dockerfile b/containers/tfc-toolchain/tfc-toolchain.dockerfile index 07d6a0f199..b7758ed11f 100644 --- a/containers/tfc-toolchain/tfc-toolchain.dockerfile +++ b/containers/tfc-toolchain/tfc-toolchain.dockerfile @@ -1,4 +1,4 @@ -FROM debian:10-slim +FROM ubuntu:23.10 ENV DEBIAN_FRONTEND noninteractive @@ -7,7 +7,7 @@ ENV LD_LIBRARY_PATH=/cpproot/lib64:/cpproot/lib32:/cpproot/lib ENV PKG_CONFIG_PATH=/cpproot/lib/pkgconfig # Store custom artifacts in /cpproot -RUN mkdir /cpproot +RUN mkdir -p /cpproot/bin WORKDIR /tmp COPY ./shared.sh /tmp/ @@ -15,10 +15,17 @@ COPY ./shared.sh /tmp/ COPY install-common.sh /tmp/ RUN ./install-common.sh +# Give gcc-13 some better names +RUN ln -sf /usr/bin/gcc-13 /cpproot/bin/gcc +RUN ln -sf /usr/bin/g++-13 /cpproot/bin/g++ +RUN ln -sf /usr/bin/gcc-13 /cpproot/bin/cc +RUN ln -sf /usr/bin/aarch64-linux-gnu-gcc-13 /cpproot/bin/aarch64-linux-gnu-gcc +RUN ln -sf /usr/bin/aarch64-linux-gnu-g++-13 /cpproot/bin/aarch64-linux-gnu-g++ + # Cmake is required for mold # Install cmake COPY install-cmake.sh /tmp/ -RUN ./install-cmake.sh 3.28.0-rc3 +RUN ./install-cmake.sh 3.27.0 # Install ninja COPY build-ninja.sh /tmp/ @@ -28,13 +35,9 @@ RUN ./build-ninja.sh 1.11.1 COPY build-clang.sh /tmp/ RUN ./build-clang.sh 17.0.3 -# The linker shipped with debian 10 -# cannot link this gcc build, dont know why -RUN ln -sf /cpproot/bin/lld /cpproot/bin/ld - # Install gcc development -COPY build-gcc-from-commit.sh /tmp/ -RUN ./build-gcc-from-commit.sh 39a11d8e0b9cc3ac5d7d1bfaef75639fc557fbe0 +# COPY build-gcc-from-commit.sh /tmp/ +# RUN ./build-gcc-from-commit.sh 39a11d8e0b9cc3ac5d7d1bfaef75639fc557fbe0 # Install mold COPY build-mold.sh /tmp/ @@ -53,7 +56,7 @@ RUN cd /opt && chmod 775 vcpkg # Setup dbus for testing RUN apt-get update && apt-get install -y --no-install-recommends dbus -RUN mkdir /var/run/dbus/ +RUN mkdir -p /var/run/dbus/ RUN sed -i 's|deny own=|allow own=|g' /usr/share/dbus-1/system.conf RUN sed -i 's|deny send_type="method_call"|allow send_type="method_call"|g' /usr/share/dbus-1/system.conf