From d71a7c52be8a023a81a872c10f8c29efbe3ca1c5 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Thu, 1 Dec 2022 18:04:27 +0100 Subject: [PATCH 01/12] gettext: drop dependency on ccache:host, add local-cc build flag Signed-off-by: Matthias Reichl --- packages/devel/gettext/package.mk | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/devel/gettext/package.mk b/packages/devel/gettext/package.mk index fb6f5d3c57..31fecc61ea 100644 --- a/packages/devel/gettext/package.mk +++ b/packages/devel/gettext/package.mk @@ -8,9 +8,10 @@ PKG_SHA256="50dbc8f39797950aa2c98e939947c527e5ac9ebd2c1b99dd7b06ba33a6767ae6" PKG_LICENSE="GPL" PKG_SITE="https://www.gnu.org/s/gettext/" PKG_URL="https://ftp.gnu.org/pub/gnu/gettext/${PKG_NAME}-${PKG_VERSION}.tar.xz" -PKG_DEPENDS_HOST="ccache:host" +PKG_DEPENDS_HOST="make:host" PKG_DEPENDS_TARGET="toolchain" PKG_LONGDESC="A program internationalization library and tools." +PKG_BUILD_FLAGS="+local-cc" PKG_CONFIGURE_OPTS_HOST="--disable-static --enable-shared \ --disable-rpath \ From 0b125af1ebaced1af86de0790cba6e27d4856dd2 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Thu, 1 Dec 2022 18:04:27 +0100 Subject: [PATCH 02/12] pkg-config: drop dependency on ccache:host, add local-cc build flag Signed-off-by: Matthias Reichl --- packages/devel/pkg-config/package.mk | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/devel/pkg-config/package.mk b/packages/devel/pkg-config/package.mk index 2adaab5765..c6f00adaf3 100644 --- a/packages/devel/pkg-config/package.mk +++ b/packages/devel/pkg-config/package.mk @@ -7,8 +7,9 @@ PKG_SHA256="6fc69c01688c9458a57eb9a1664c9aba372ccda420a02bf4429fe610e7e7d591" PKG_LICENSE="GPL" PKG_SITE="http://www.freedesktop.org/software/pkgconfig/" PKG_URL="http://pkg-config.freedesktop.org/releases/${PKG_NAME}-${PKG_VERSION}.tar.gz" -PKG_DEPENDS_HOST="ccache:host gettext:host" +PKG_DEPENDS_HOST="gettext:host" PKG_LONGDESC="A system for managing library compile/link flags that works with automake and autoconf." +PKG_BUILD_FLAGS="+local-cc" PKG_CONFIGURE_OPTS_HOST="--disable-silent-rules \ --with-internal-glib --disable-dtrace \ From 80621c706eb902c2393d290901c9f62cbc6c7f9a Mon Sep 17 00:00:00 2001 From: Rudi Heitbaum Date: Mon, 12 Sep 2022 11:41:13 +0000 Subject: [PATCH 03/12] zlib: host build depends on ccache:host --- packages/compress/zlib/package.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/compress/zlib/package.mk b/packages/compress/zlib/package.mk index 0bf442d53d..ff5f96f6f9 100644 --- a/packages/compress/zlib/package.mk +++ b/packages/compress/zlib/package.mk @@ -7,7 +7,7 @@ PKG_SHA256="b3a24de97a8fdbc835b9833169501030b8977031bcb54b3b3ac13740f846ab30" PKG_LICENSE="OSS" PKG_SITE="http://www.zlib.net" PKG_URL="https://zlib.net/fossils/${PKG_NAME}-${PKG_VERSION}.tar.gz" -PKG_DEPENDS_HOST="cmake:host" +PKG_DEPENDS_HOST="ccache:host cmake:host" PKG_DEPENDS_TARGET="toolchain" PKG_LONGDESC="A general purpose (ZIP) data compression library." PKG_TOOLCHAIN="cmake-make" From 9f9de20ceea6a6f0cf4327ee56deac7891e529eb Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Thu, 1 Dec 2022 18:12:33 +0100 Subject: [PATCH 04/12] cmake: drop dependency on ccache and add local-cc build flag Signed-off-by: Matthias Reichl --- packages/devel/cmake/package.mk | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/devel/cmake/package.mk b/packages/devel/cmake/package.mk index cecd6e4228..55cd11bef8 100644 --- a/packages/devel/cmake/package.mk +++ b/packages/devel/cmake/package.mk @@ -8,9 +8,10 @@ PKG_SHA256="1c511d09516af493694ed9baf13c55947a36389674d657a2d5e0ccedc6b291d8" PKG_LICENSE="BSD" PKG_SITE="https://cmake.org/" PKG_URL="https://cmake.org/files/v$(get_pkg_version_maj_min)/cmake-${PKG_VERSION}.tar.gz" -PKG_DEPENDS_HOST="ccache:host pkg-config:host" +PKG_DEPENDS_HOST="pkg-config:host" PKG_LONGDESC="A cross-platform, open-source make system." PKG_TOOLCHAIN="configure" +PKG_BUILD_FLAGS="+local-cc" configure_host() { ../configure --prefix=${TOOLCHAIN} \ From e9c49900ab49fba1aeef8fc52bab86f456cce942 Mon Sep 17 00:00:00 2001 From: Rudi Heitbaum Date: Tue, 13 Sep 2022 10:57:42 +0000 Subject: [PATCH 05/12] zstd: build with cmake-make and remove host dependancy of ccache:host ccache:host now uses zstd to build, so update the dependancies and force the use of the LOCAL_CC and LOCAL_CXX compilers. --- packages/compress/zstd/package.mk | 31 ++++++++++++++++++++++++------- 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/packages/compress/zstd/package.mk b/packages/compress/zstd/package.mk index 1c583d6d36..44fecb9a9d 100644 --- a/packages/compress/zstd/package.mk +++ b/packages/compress/zstd/package.mk @@ -7,16 +7,33 @@ PKG_SHA256="3ea06164971edec7caa2045a1932d757c1815858e4c2b68c7ef812647535c23f" PKG_LICENSE="BSD/GPLv2" PKG_SITE="http://www.zstd.net" PKG_URL="https://github.com/facebook/zstd/releases/download/v${PKG_VERSION}/${PKG_NAME}-${PKG_VERSION}.tar.zst" -PKG_DEPENDS_HOST="ccache:host meson:host ninja:host" +PKG_DEPENDS_HOST="cmake:host make:host" PKG_DEPENDS_TARGET="toolchain" PKG_LONGDESC="A fast real-time compression algorithm." +# Override toolchain as meson and ninja are not built yet +# and zstd is a dependency of ccache +PKG_TOOLCHAIN="cmake-make" configure_package() { - PKG_MESON_SCRIPT="${PKG_BUILD}/build/meson/meson.build" + PKG_CMAKE_SCRIPT="${PKG_BUILD}/build/cmake/CMakeLists.txt" } -PKG_MESON_OPTS_HOST="-Dlegacy_level=0 \ - -Dbin_programs=false \ - -Dzlib=disabled \ - -Dlzma=disabled \ - -Dlz4=disabled" +configure_host() { + # custom cmake build to override the LOCAL_CC/CXX + setup_toolchain host:cmake-make + cp ${CMAKE_CONF} cmake-zstd.conf + + echo "SET(CMAKE_C_COMPILER $LOCAL_CC)" >> cmake-zstd.conf + echo "SET(CMAKE_CXX_COMPILER $LOCAL_CXX)" >> cmake-zstd.conf + + cmake -DCMAKE_TOOLCHAIN_FILE=cmake-zstd.conf \ + -DCMAKE_INSTALL_PREFIX=${TOOLCHAIN} \ + -DZSTD_LEGACY_SUPPORT=0 \ + -DZSTD_BUILD_PROGRAMS=OFF \ + -DZSTD_BUILD_TESTS=OFF \ + ${PKG_CMAKE_SCRIPT%/*} +} + +make_host() { + : +} From 10db624f406f2d66ad79c3d5303ae1b165cbebb1 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Thu, 1 Dec 2022 19:44:44 +0100 Subject: [PATCH 06/12] zstd: use local-cc build flag --- packages/compress/zstd/package.mk | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/compress/zstd/package.mk b/packages/compress/zstd/package.mk index 44fecb9a9d..056decf843 100644 --- a/packages/compress/zstd/package.mk +++ b/packages/compress/zstd/package.mk @@ -13,6 +13,7 @@ PKG_LONGDESC="A fast real-time compression algorithm." # Override toolchain as meson and ninja are not built yet # and zstd is a dependency of ccache PKG_TOOLCHAIN="cmake-make" +PKG_BUILD_FLAGS="+local-cc" configure_package() { PKG_CMAKE_SCRIPT="${PKG_BUILD}/build/cmake/CMakeLists.txt" @@ -20,11 +21,10 @@ configure_package() { configure_host() { # custom cmake build to override the LOCAL_CC/CXX - setup_toolchain host:cmake-make cp ${CMAKE_CONF} cmake-zstd.conf - echo "SET(CMAKE_C_COMPILER $LOCAL_CC)" >> cmake-zstd.conf - echo "SET(CMAKE_CXX_COMPILER $LOCAL_CXX)" >> cmake-zstd.conf + echo "SET(CMAKE_C_COMPILER $CC)" >> cmake-zstd.conf + echo "SET(CMAKE_CXX_COMPILER $CXX)" >> cmake-zstd.conf cmake -DCMAKE_TOOLCHAIN_FILE=cmake-zstd.conf \ -DCMAKE_INSTALL_PREFIX=${TOOLCHAIN} \ From 9ee4ce2a236b9c8b5788d421ae373ed0bd2b4818 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Thu, 1 Dec 2022 23:43:44 +0100 Subject: [PATCH 07/12] zstd: don't override make_host There's no need for it, it only delays building until makeinstall and messes up build time statistics. Signed-off-by: Matthias Reichl --- packages/compress/zstd/package.mk | 4 ---- 1 file changed, 4 deletions(-) diff --git a/packages/compress/zstd/package.mk b/packages/compress/zstd/package.mk index 056decf843..ae33cdd7cf 100644 --- a/packages/compress/zstd/package.mk +++ b/packages/compress/zstd/package.mk @@ -33,7 +33,3 @@ configure_host() { -DZSTD_BUILD_TESTS=OFF \ ${PKG_CMAKE_SCRIPT%/*} } - -make_host() { - : -} From 243b9a2347f618a341e9e660ba2eed0d3c932c3f Mon Sep 17 00:00:00 2001 From: Rudi Heitbaum Date: Mon, 12 Sep 2022 10:19:06 +0000 Subject: [PATCH 08/12] ccache: update to 4.7.4 and now builds with cmake --- packages/devel/ccache/package.mk | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/packages/devel/ccache/package.mk b/packages/devel/ccache/package.mk index aedeed3b1f..a4b6d30de3 100644 --- a/packages/devel/ccache/package.mk +++ b/packages/devel/ccache/package.mk @@ -3,16 +3,33 @@ # Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv) PKG_NAME="ccache" -PKG_VERSION="3.7.12" -PKG_SHA256="a02f4e8360dc6618bc494ca35b0ae21cea080f804a4898eab1ad3fcd108eb400" +PKG_VERSION="4.7.4" +PKG_SHA256="df0c64d15d3efaf0b4f6837dd6b1467e40eeaaa807db25ce79c3a08a46a84e36" PKG_LICENSE="GPL" PKG_SITE="https://ccache.dev/download.html" PKG_URL="https://github.com/ccache/ccache/releases/download/v${PKG_VERSION}/${PKG_NAME}-${PKG_VERSION}.tar.xz" -PKG_DEPENDS_HOST="make:host" +PKG_DEPENDS_HOST="cmake:host make:host" PKG_LONGDESC="A compiler cache to speed up re-compilation of C/C++ code by caching." +PKG_TOOLCHAIN="cmake-make" PKG_BUILD_FLAGS="+local-cc" -PKG_CONFIGURE_OPTS_HOST="--with-bundled-zlib" +configure_host() { + cp ${CMAKE_CONF} cmake-ccache.conf + + echo "SET(CMAKE_C_COMPILER $CC)" >> cmake-ccache.conf + echo "SET(CMAKE_CXX_COMPILER $CXX)" >> cmake-ccache.conf + + cmake -DCMAKE_TOOLCHAIN_FILE=cmake-ccache.conf \ + -DCMAKE_INSTALL_PREFIX=${TOOLCHAIN} \ + -DENABLE_DOCUMENTATION=OFF \ + -DREDIS_STORAGE_BACKEND=OFF \ + -DZSTD_FROM_INTERNET=OFF \ + .. +} + +make_host() { + : +} post_makeinstall_host() { # setup ccache From 16ec11180244af5a22cbfa21765dbe2feed2a576 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Thu, 1 Dec 2022 23:43:44 +0100 Subject: [PATCH 09/12] ccache: don't override make_host There's no need for it, it only delays building until makeinstall and messes up build time statistics. Signed-off-by: Matthias Reichl --- packages/devel/ccache/package.mk | 4 ---- 1 file changed, 4 deletions(-) diff --git a/packages/devel/ccache/package.mk b/packages/devel/ccache/package.mk index a4b6d30de3..380e09aa73 100644 --- a/packages/devel/ccache/package.mk +++ b/packages/devel/ccache/package.mk @@ -27,10 +27,6 @@ configure_host() { .. } -make_host() { - : -} - post_makeinstall_host() { # setup ccache if [ -z "${CCACHE_DISABLE}" ]; then From 399df18197367a59e5029d92167dcce0a9f560b2 Mon Sep 17 00:00:00 2001 From: Rudi Heitbaum Date: Tue, 13 Sep 2022 11:39:20 +0000 Subject: [PATCH 10/12] config/options: add compression level for ccache (CCACHE_COMPRESSLEVEL) --- config/options | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/config/options b/config/options index 221463edf9..412d9e3f87 100644 --- a/config/options +++ b/config/options @@ -103,6 +103,15 @@ VERBOSE="${VERBOSE:-yes}" # directory. CCACHE_CACHE_SIZE="10G" +# compression level for ccache +# This option determines the level at which ccache will compress object files +# using the real-time compression algorithm Zstandard. It only has effect if +# compression is enabled (which it is by default). Zstandard is extremely fast +# for decompression and very fast for compression for lower compression +# levels. The default is 0. The value 0 means that ccache will choose a +# suitable zstd level, currently 1. +CCACHE_COMPRESSLEVEL="0" + # set addon paths if [ -z "$ADDON_PATH" ]; then if [ -n "$ADDON_PROJECT" ]; then From f3306e803db16f537f25ac763a47db06631726d6 Mon Sep 17 00:00:00 2001 From: Rudi Heitbaum Date: Tue, 13 Sep 2022 11:55:39 +0000 Subject: [PATCH 11/12] ccache: set compression level to CCACHE_COMPRESSLEVEL during package build --- packages/devel/ccache/package.mk | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/devel/ccache/package.mk b/packages/devel/ccache/package.mk index 380e09aa73..0329ec91ca 100644 --- a/packages/devel/ccache/package.mk +++ b/packages/devel/ccache/package.mk @@ -8,12 +8,14 @@ PKG_SHA256="df0c64d15d3efaf0b4f6837dd6b1467e40eeaaa807db25ce79c3a08a46a84e36" PKG_LICENSE="GPL" PKG_SITE="https://ccache.dev/download.html" PKG_URL="https://github.com/ccache/ccache/releases/download/v${PKG_VERSION}/${PKG_NAME}-${PKG_VERSION}.tar.xz" -PKG_DEPENDS_HOST="cmake:host make:host" +PKG_DEPENDS_HOST="cmake:host make:host zstd:host" PKG_LONGDESC="A compiler cache to speed up re-compilation of C/C++ code by caching." +# Override toolchain as ninja is not built yet PKG_TOOLCHAIN="cmake-make" PKG_BUILD_FLAGS="+local-cc" configure_host() { + # custom cmake build to override the LOCAL_CC/CXX cp ${CMAKE_CONF} cmake-ccache.conf echo "SET(CMAKE_C_COMPILER $CC)" >> cmake-ccache.conf @@ -31,6 +33,7 @@ post_makeinstall_host() { # setup ccache if [ -z "${CCACHE_DISABLE}" ]; then CCACHE_DIR="${BUILD_CCACHE_DIR}" ${TOOLCHAIN}/bin/ccache --max-size=${CCACHE_CACHE_SIZE} + CCACHE_DIR="${BUILD_CCACHE_DIR}" ${TOOLCHAIN}/bin/ccache --set-config compression_level=${CCACHE_COMPRESSLEVEL} fi cat > ${TOOLCHAIN}/bin/host-gcc < Date: Fri, 23 Sep 2022 21:16:49 +0200 Subject: [PATCH 12/12] ccache: disable unittests Signed-off-by: Matthias Reichl --- packages/devel/ccache/package.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/devel/ccache/package.mk b/packages/devel/ccache/package.mk index 0329ec91ca..e26e3d5918 100644 --- a/packages/devel/ccache/package.mk +++ b/packages/devel/ccache/package.mk @@ -26,6 +26,7 @@ configure_host() { -DENABLE_DOCUMENTATION=OFF \ -DREDIS_STORAGE_BACKEND=OFF \ -DZSTD_FROM_INTERNET=OFF \ + -DENABLE_TESTING=OFF \ .. }