From 5789d3dff907bd7b524e758ba8bf0dd3ed8c6348 Mon Sep 17 00:00:00 2001 From: mglae Date: Sun, 8 Aug 2021 11:54:30 +0200 Subject: [PATCH 1/3] buildsystem: allow specifying our optimizing level for packages build with cmake Using -DCMAKE_BUILD_TYPE=MinSizeRel result in finally building with -Os. Our default optimization or '+speed' are ignored, behavior is like always using '+size'. Changing to default -DCMAKE_BUILD_TYPE="" is not allowed by to many packages including Kodi, they are forcing a default option (in worst case "Debug", e.g. llvm) Redefine the cmake parameters to not include any options and do the same for host choosing "Release" as build type. --- config/functions | 6 ++++++ scripts/build | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/config/functions b/config/functions index d5e97974c9..82041fc97a 100644 --- a/config/functions +++ b/config/functions @@ -391,6 +391,9 @@ setup_toolchain() { echo "SET(CMAKE_C_COMPILER $CC)" >> $CMAKE_CONF echo "SET(CMAKE_CXX_COMPILER $CXX)" >> $CMAKE_CONF echo "SET(CMAKE_CPP_COMPILER $CPP)" >> $CMAKE_CONF + echo "SET(CMAKE_ASM_FLAGS_MINSIZEREL -DNDEBUG)" >> $CMAKE_CONF + echo "SET(CMAKE_CXX_FLAGS_MINSIZEREL -DNDEBUG)" >> $CMAKE_CONF + echo "SET(CMAKE_C_FLAGS_MINSIZEREL -DNDEBUG)" >> $CMAKE_CONF echo "SET(CMAKE_FIND_ROOT_PATH $SYSROOT_PREFIX)" >> $CMAKE_CONF echo "SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)" >> $CMAKE_CONF echo "SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)" >> $CMAKE_CONF @@ -443,6 +446,9 @@ setup_toolchain() { echo "SET(CMAKE_C_COMPILER $CC)" >> $CMAKE_CONF echo "SET(CMAKE_CXX_COMPILER $CXX)" >> $CMAKE_CONF echo "SET(CMAKE_CPP_COMPILER $CXX)" >> $CMAKE_CONF + echo "SET(CMAKE_ASM_FLAGS_RELEASE -DNDEBUG)" >> $CMAKE_CONF + echo "SET(CMAKE_CXX_FLAGS_RELEASE -DNDEBUG)" >> $CMAKE_CONF + echo "SET(CMAKE_C_FLAGS_RELEASE -DNDEBUG)" >> $CMAKE_CONF echo "SET(CMAKE_AR $AR CACHE FILEPATH "Archiver")" >> $CMAKE_CONF # hum? echo "SET(CMAKE_FIND_ROOT_PATH $TOOLCHAIN)" >> $CMAKE_CONF echo "SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM BOTH)" >> $CMAKE_CONF diff --git a/scripts/build b/scripts/build index c6c231d6f7..131150d6de 100755 --- a/scripts/build +++ b/scripts/build @@ -184,7 +184,8 @@ HOST_CONFIGURE_OPTS="--host=${HOST_NAME} \ HOST_CMAKE_OPTS="${CMAKE_GENERATOR} \ -DCMAKE_TOOLCHAIN_FILE=${CMAKE_CONF} \ - -DCMAKE_INSTALL_PREFIX=${TOOLCHAIN}" + -DCMAKE_INSTALL_PREFIX=${TOOLCHAIN} \ + -DCMAKE_BUILD_TYPE=Release" HOST_MESON_OPTS="--prefix=${TOOLCHAIN} \ --bindir=${TOOLCHAIN}/bin \ From cac807a29f6cb2cffd5beb0e8b539a4382b6303f Mon Sep 17 00:00:00 2001 From: mglae Date: Sun, 8 Aug 2021 11:54:35 +0200 Subject: [PATCH 2/3] llvm: remove cmake build type, now set by the system --- packages/lang/llvm/package.mk | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/lang/llvm/package.mk b/packages/lang/llvm/package.mk index bcb9387074..43491df0c9 100644 --- a/packages/lang/llvm/package.mk +++ b/packages/lang/llvm/package.mk @@ -13,8 +13,7 @@ PKG_DEPENDS_HOST="toolchain:host" PKG_DEPENDS_TARGET="toolchain llvm:host zlib" PKG_LONGDESC="Low-Level Virtual Machine (LLVM) is a compiler infrastructure." -PKG_CMAKE_OPTS_COMMON="-DCMAKE_BUILD_TYPE=MinSizeRel \ - -DLLVM_INCLUDE_TOOLS=ON \ +PKG_CMAKE_OPTS_COMMON="-DLLVM_INCLUDE_TOOLS=ON \ -DLLVM_BUILD_TOOLS=OFF \ -DLLVM_BUILD_UTILS=OFF \ -DLLVM_BUILD_EXAMPLES=OFF \ From 131654d937dbf6ace54bc1a2a4eacd2b8b8322a0 Mon Sep 17 00:00:00 2001 From: mglae Date: Sun, 8 Aug 2021 11:54:40 +0200 Subject: [PATCH 3/3] buildsystem: use -DNDEBUG not only for cmake release builds --- config/functions | 12 ++++++------ config/optimize | 6 +++--- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/config/functions b/config/functions index 82041fc97a..2071538edc 100644 --- a/config/functions +++ b/config/functions @@ -391,9 +391,9 @@ setup_toolchain() { echo "SET(CMAKE_C_COMPILER $CC)" >> $CMAKE_CONF echo "SET(CMAKE_CXX_COMPILER $CXX)" >> $CMAKE_CONF echo "SET(CMAKE_CPP_COMPILER $CPP)" >> $CMAKE_CONF - echo "SET(CMAKE_ASM_FLAGS_MINSIZEREL -DNDEBUG)" >> $CMAKE_CONF - echo "SET(CMAKE_CXX_FLAGS_MINSIZEREL -DNDEBUG)" >> $CMAKE_CONF - echo "SET(CMAKE_C_FLAGS_MINSIZEREL -DNDEBUG)" >> $CMAKE_CONF + echo "SET(CMAKE_ASM_FLAGS_MINSIZEREL -DDUMMYOPT)" >> $CMAKE_CONF + echo "SET(CMAKE_CXX_FLAGS_MINSIZEREL -DDUMMYOPT)" >> $CMAKE_CONF + echo "SET(CMAKE_C_FLAGS_MINSIZEREL -DDUMMYOPT)" >> $CMAKE_CONF echo "SET(CMAKE_FIND_ROOT_PATH $SYSROOT_PREFIX)" >> $CMAKE_CONF echo "SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)" >> $CMAKE_CONF echo "SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)" >> $CMAKE_CONF @@ -446,9 +446,9 @@ setup_toolchain() { echo "SET(CMAKE_C_COMPILER $CC)" >> $CMAKE_CONF echo "SET(CMAKE_CXX_COMPILER $CXX)" >> $CMAKE_CONF echo "SET(CMAKE_CPP_COMPILER $CXX)" >> $CMAKE_CONF - echo "SET(CMAKE_ASM_FLAGS_RELEASE -DNDEBUG)" >> $CMAKE_CONF - echo "SET(CMAKE_CXX_FLAGS_RELEASE -DNDEBUG)" >> $CMAKE_CONF - echo "SET(CMAKE_C_FLAGS_RELEASE -DNDEBUG)" >> $CMAKE_CONF + echo "SET(CMAKE_ASM_FLAGS_RELEASE -DDUMMYOPT)" >> $CMAKE_CONF + echo "SET(CMAKE_CXX_FLAGS_RELEASE -DDUMMYOPT)" >> $CMAKE_CONF + echo "SET(CMAKE_C_FLAGS_RELEASE -DDUMMYOPT)" >> $CMAKE_CONF echo "SET(CMAKE_AR $AR CACHE FILEPATH "Archiver")" >> $CMAKE_CONF # hum? echo "SET(CMAKE_FIND_ROOT_PATH $TOOLCHAIN)" >> $CMAKE_CONF echo "SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM BOTH)" >> $CMAKE_CONF diff --git a/config/optimize b/config/optimize index d8486d2af4..d81eefea87 100644 --- a/config/optimize +++ b/config/optimize @@ -31,13 +31,13 @@ LDFLAGS_OPTIM_LTO_COMMON="-fuse-linker-plugin" LDFLAGS_OPTIM_GOLD="-fuse-ld=gold" # default compiler optimization -CFLAGS_OPTIM_DEFAULT="-O2 -fomit-frame-pointer" +CFLAGS_OPTIM_DEFAULT="-O2 -fomit-frame-pointer -DNDEBUG" CXXFLAGS_OPTIM_DEFAULT="$CFLAGS_OPTIM_DEFAULT" # speed flag -CFLAGS_OPTIM_SPEED="-O3 -fomit-frame-pointer" +CFLAGS_OPTIM_SPEED="-O3 -fomit-frame-pointer -DNDEBUG" CXXFLAGS_OPTIM_SPEED="$CFLAGS_OPTIM_SPEED" # size flag -CFLAGS_OPTIM_SIZE="-Os -fomit-frame-pointer" +CFLAGS_OPTIM_SIZE="-Os -fomit-frame-pointer -DNDEBUG" CXXFLAGS_OPTIM_SIZE="$CFLAGS_OPTIM_SIZE" # debug settings CFLAGS_OPTIM_DEBUG="-ggdb -Os"