From c5e535505c984d11640114c8a558bdc5ab8e23c2 Mon Sep 17 00:00:00 2001 From: Ian Leonard Date: Sat, 18 May 2019 03:16:40 +0000 Subject: [PATCH] buildsystem: add package flags to set compiler optimization speed: use O3 size: use Os default: use O2 The priority order is to use speed if set, then size, and fallback to default when neither are set. Signed-off-by: Ian Leonard --- config/functions | 12 ++++++++++++ config/optimize | 13 +++++++++++-- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/config/functions b/config/functions index 793ba089ca..d7f85ffe88 100644 --- a/config/functions +++ b/config/functions @@ -221,6 +221,18 @@ setup_toolchain() { TARGET_LDFLAGS+=" $LDFLAGS_OPTIM_GOLD" fi + # compiler optimization, descending priority: speed, size, default + if flag_enabled "speed" "no"; then + TARGET_CFLAGS+=" $CFLAGS_OPTIM_SPEED" + TARGET_CXXFLAGS+=" $CXXFLAGS_OPTIM_SPEED" + elif flag_enabled "size" "no"; then + TARGET_CFLAGS+=" $CFLAGS_OPTIM_SIZE" + TARGET_CXXFLAGS+=" $CXXFLAGS_OPTIM_SIZE" + else + TARGET_CFLAGS+=" $CXXFLAGS_OPTIM_DEFAULT" + TARGET_CXXFLAGS+=" $CXXFLAGS_OPTIM_DEFAULT" + fi + # position-independent code if flag_enabled "pic" "no"; then TARGET_CFLAGS+=" $CFLAGS_OPTIM_PIC" diff --git a/config/optimize b/config/optimize index 08d38b3b97..9c57fcaa92 100644 --- a/config/optimize +++ b/config/optimize @@ -1,4 +1,3 @@ -GCC_OPTIM="-Os" # Linker hash-style is set to gnu via gcc default LD_OPTIM="-Wl,--as-needed" @@ -15,7 +14,7 @@ fi NINJA_OPTS="" TARGET_CPPFLAGS="" -TARGET_CFLAGS="$TARGET_CFLAGS -Wall -pipe $GCC_OPTIM $PROJECT_CFLAGS" +TARGET_CFLAGS="$TARGET_CFLAGS -Wall -pipe $PROJECT_CFLAGS" TARGET_CXXFLAGS="$TARGET_CFLAGS" TARGET_LDFLAGS="$TARGET_LDFLAGS $LD_OPTIM" TARGET_LIBDIR="$SYSROOT_PREFIX/lib $SYSROOT_PREFIX/usr/lib" @@ -43,6 +42,16 @@ LDFLAGS_OPTIM_LTO_COMMON="-fuse-linker-plugin" # gold flags LDFLAGS_OPTIM_GOLD="-fuse-ld=gold" +# default compiler optimization +CFLAGS_OPTIM_DEFAULT="-O2" +CXXFLAGS_OPTIM_DEFAULT="$CFLAGS_OPTIM_DEFAULT" +# speed flag +CFLAGS_OPTIM_SPEED="-O3" +CXXFLAGS_OPTIM_SPEED="$CFLAGS_OPTIM_SPEED" +# size flag +CFLAGS_OPTIM_SIZE="-Os" +CXXFLAGS_OPTIM_SIZE="$CFLAGS_OPTIM_SIZE" + # position-independent code CFLAGS_OPTIM_PIC="-fPIC -DPIC" CXXFLAGS_OPTIM_PIC="-fPIC -DPIC"