diff --git a/config/functions b/config/functions index ced0dbe608..743b979175 100644 --- a/config/functions +++ b/config/functions @@ -1,13 +1,31 @@ setup_toolchain() { TARGET_AR_NM_RANLIB_PREFIX="" - if [ "$LTO_SUPPORT" = "yes" ] && flag_enabled "lto" "no"; then - TARGET_CFLAGS+=" $FLAGS_OPTIM_LTO_NO_PARALLEL $FLAGS_OPTIM_LTO_NO_FAT" - TARGET_CXXFLAGS+=" $FLAGS_OPTIM_LTO_NO_PARALLEL $FLAGS_OPTIM_LTO_NO_FAT" - TARGET_LDFLAGS+=" $LDFLAGS_OPTIM_LTO_COMMON $FLAGS_OPTIM_LTO_NO_PARALLEL" - # static libs with lto info require gcc-ar/gcc-nm/gcc-ranlib instead of - # default binutils versions - TARGET_AR_NM_RANLIB_PREFIX="gcc-" + if [ "$LTO_SUPPORT" = "yes" ]; then + if flag_enabled "lto-parallel" "no"; then + TARGET_CFLAGS+=" $FLAGS_OPTIM_LTO_PARALLEL $FLAGS_OPTIM_LTO_NO_FAT" + TARGET_CXXFLAGS+=" $FLAGS_OPTIM_LTO_PARALLEL $FLAGS_OPTIM_LTO_NO_FAT" + TARGET_LDFLAGS+=" $LDFLAGS_OPTIM_LTO_COMMON $FLAGS_OPTIM_LTO_PARALLEL" + # static libs with lto info require gcc-ar/gcc-nm/gcc-ranlib instead of + # default binutils versions + TARGET_AR_NM_RANLIB_PREFIX="gcc-" + elif flag_enabled "lto-fat" "no"; then + TARGET_CFLAGS+=" $FLAGS_OPTIM_LTO_NO_PARALLEL $FLAGS_OPTIM_LTO_FAT" + TARGET_CXXFLAGS+=" $FLAGS_OPTIM_LTO_NO_PARALLEL $FLAGS_OPTIM_LTO_FAT" + TARGET_LDFLAGS+=" $LDFLAGS_OPTIM_LTO_COMMON $FLAGS_OPTIM_LTO_NO_PARALLEL" + TARGET_AR_NM_RANLIB_PREFIX="gcc-" + elif flag_enabled "lto" "no"; then + TARGET_CFLAGS+=" $FLAGS_OPTIM_LTO_NO_PARALLEL $FLAGS_OPTIM_LTO_NO_FAT" + TARGET_CXXFLAGS+=" $FLAGS_OPTIM_LTO_NO_PARALLEL $FLAGS_OPTIM_LTO_NO_FAT" + TARGET_LDFLAGS+=" $LDFLAGS_OPTIM_LTO_COMMON $FLAGS_OPTIM_LTO_NO_PARALLEL" + TARGET_AR_NM_RANLIB_PREFIX="gcc-" + fi + fi + + if flag_enabled "lto-off" "no"; then + TARGET_CFLAGS+=" $FLAGS_OPTIM_LTO_OFF" + TARGET_CXXFLAGS+=" $FLAGS_OPTIM_LTO_OFF" + TARGET_LDFLAGS+=" $FLAGS_OPTIM_LTO_OFF" fi # gold flag