diff --git a/configure.ac b/configure.ac index 493d9a43f..0efe63514 100644 --- a/configure.ac +++ b/configure.ac @@ -237,16 +237,25 @@ 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_ARG_ENABLE(lto, AC_HELP_STRING([--disable-lto], [Enable link-time optimization]), [ - AC_MSG_RESULT([yes]) - AC_SUBST(LTO, 1) + lto="no" + AC_MSG_RESULT([no, explicitly disabled]) ], [ - AM_COND_IF(DEBUG, + AM_COND_IF(OPTIMIZE, [ - AC_MSG_RESULT([no]) + AM_COND_IF(CLANG, + [ + lto="yes" + AC_MSG_RESULT([yes]) + AC_SUBST(LTO, 1) + ], [ + lto="no" + AC_MSG_RESULT([no, only available with clang]) + ]) ], [ - AC_MSG_RESULT([no, link-time optimization is explicit-only at this time]) + lto="no" + AC_MSG_RESULT([no, optimizations disabled]) ]) ]) @@ -511,14 +520,6 @@ dnl CXXFLAGS+=" -O$optimize_level" -AM_COND_IF([LTO], -[ - lto="yes" - CXXFLAGS+=" -flto=`nproc`" -], [ - lto="no" -]) - AM_COND_IF([OPTIMIZE], [ optimize="yes" diff --git a/ircd/Makefile.am b/ircd/Makefile.am index ae8a59dd1..b7f071676 100644 --- a/ircd/Makefile.am +++ b/ircd/Makefile.am @@ -27,6 +27,10 @@ AM_LDFLAGS = \ @EXTRA_LDFLAGS@ \ ### +if LTO +AM_CXXFLAGS += -flto +endif + if DEBUG if GCC AM_CXXFLAGS += -fmax-errors=2 diff --git a/matrix/Makefile.am b/matrix/Makefile.am index 6b3ed4c43..29bd195ad 100644 --- a/matrix/Makefile.am +++ b/matrix/Makefile.am @@ -35,6 +35,10 @@ if GCC AM_CXXFLAGS += -ftls-model=local-dynamic endif +if LTO +AM_CXXFLAGS += -flto +endif + if DEBUG if GCC AM_CXXFLAGS += -fmax-errors=3