mirror of
https://github.com/matrix-construct/construct
synced 2024-12-26 15:33:54 +01:00
configure: Add --enable-lto for explicit toggle of -flto.
This commit is contained in:
parent
706563195e
commit
74612e9474
1 changed files with 30 additions and 6 deletions
36
configure.ac
36
configure.ac
|
@ -227,6 +227,26 @@ AC_ARG_ENABLE(optimize, AC_HELP_STRING([--enable-optimize], [Enable optimization
|
||||||
|
|
||||||
AM_CONDITIONAL([OPTIMIZE], [[[[ "$OPTIMIZE" = "1" ]]]])
|
AM_CONDITIONAL([OPTIMIZE], [[[[ "$OPTIMIZE" = "1" ]]]])
|
||||||
|
|
||||||
|
dnl
|
||||||
|
dnl Explicit link-time-optimization switch
|
||||||
|
dnl
|
||||||
|
|
||||||
|
AC_MSG_CHECKING(whether to enable link-time optimization)
|
||||||
|
AC_ARG_ENABLE(lto, AC_HELP_STRING([--enable-lto], [Enable link-time optimization]),
|
||||||
|
[
|
||||||
|
AC_MSG_RESULT([yes])
|
||||||
|
AC_SUBST(LTO, 1)
|
||||||
|
], [
|
||||||
|
AM_COND_IF(DEBUG,
|
||||||
|
[
|
||||||
|
AC_MSG_RESULT([no])
|
||||||
|
], [
|
||||||
|
AC_MSG_RESULT([no, link-time optimization is explicit-only at this time])
|
||||||
|
])
|
||||||
|
])
|
||||||
|
|
||||||
|
AM_CONDITIONAL([LTO], [[[[ "$LTO" = "1" ]]]])
|
||||||
|
|
||||||
dnl
|
dnl
|
||||||
dnl Explicit optimization level switch
|
dnl Explicit optimization level switch
|
||||||
dnl
|
dnl
|
||||||
|
@ -399,6 +419,14 @@ dnl
|
||||||
|
|
||||||
CXXFLAGS+=" -O$optimize_level"
|
CXXFLAGS+=" -O$optimize_level"
|
||||||
|
|
||||||
|
AM_COND_IF([LTO],
|
||||||
|
[
|
||||||
|
lto="yes"
|
||||||
|
CXXFLAGS+=" -flto"
|
||||||
|
], [
|
||||||
|
lto="no"
|
||||||
|
])
|
||||||
|
|
||||||
AM_COND_IF([OPTIMIZE],
|
AM_COND_IF([OPTIMIZE],
|
||||||
[
|
[
|
||||||
CXXFLAGS+=" -fweb"
|
CXXFLAGS+=" -fweb"
|
||||||
|
@ -413,14 +441,9 @@ AM_COND_IF([OPTIMIZE],
|
||||||
CXXFLAGS+=" -fira-hoist-pressure"
|
CXXFLAGS+=" -fira-hoist-pressure"
|
||||||
CXXFLAGS+=" -fbranch-target-load-optimize"
|
CXXFLAGS+=" -fbranch-target-load-optimize"
|
||||||
CXXFLAGS+=" -frerun-loop-opt"
|
CXXFLAGS+=" -frerun-loop-opt"
|
||||||
|
|
||||||
dnl TODO: lto cannot be enabled until subobject linkage for json::tuple
|
|
||||||
dnl is resolved
|
|
||||||
dnl
|
|
||||||
dnl CXXFLAGS+=" -flto"
|
|
||||||
CXXFLAGS+=" -fdevirtualize-at-ltrans"
|
CXXFLAGS+=" -fdevirtualize-at-ltrans"
|
||||||
|
|
||||||
dnl remember to axe this when lto is enabled
|
dnl Note these flags are unreliable with LTO
|
||||||
CXXFLAGS+=" -g"
|
CXXFLAGS+=" -g"
|
||||||
CXXFLAGS+=" -ggdb"
|
CXXFLAGS+=" -ggdb"
|
||||||
], [
|
], [
|
||||||
|
@ -1488,6 +1511,7 @@ echo "Precompiled headers ............... $build_pch"
|
||||||
echo "Developer debug ................... $debug"
|
echo "Developer debug ................... $debug"
|
||||||
echo "Developer assert .................. $assert"
|
echo "Developer assert .................. $assert"
|
||||||
echo "Optimized build ................... $optimize"
|
echo "Optimized build ................... $optimize"
|
||||||
|
echo "Link-time optimized ............... $lto"
|
||||||
echo "Optimization level ................ $optimize_level"
|
echo "Optimization level ................ $optimize_level"
|
||||||
echo "Generic binary .................... $enable_generic"
|
echo "Generic binary .................... $enable_generic"
|
||||||
echo "Logging level ..................... $LOG_LEVEL"
|
echo "Logging level ..................... $LOG_LEVEL"
|
||||||
|
|
Loading…
Reference in a new issue