aboutsummaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
authorpennae <github@quasiparticle.net>2021-12-21 19:34:40 +0100
committerpennae <github@quasiparticle.net>2022-03-03 17:47:49 +0100
commit2799fe4cdbe77e017544f2fe61ae9baef650dbe6 (patch)
tree21294b63e66563fd7e2cad66da3afb4865bdf625 /configure.ac
parent609779086301a600f4282a629d586bba6b6a485c (diff)
enable LTO in optimized builds
gives 2-5% performance improvement across a board of tests. LTO is broken when using clang; some libs link fine while others crash the linker with a segfault in the llvm linker plugin. 🙁
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac14
1 files changed, 14 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
index 8a01c33ec..a86d88fad 100644
--- a/configure.ac
+++ b/configure.ac
@@ -147,6 +147,20 @@ if test "x$GCC_ATOMIC_BUILTINS_NEED_LIBATOMIC" = xyes; then
LDFLAGS="-latomic $LDFLAGS"
fi
+# LTO is currently broken with clang for unknown reasons; ld segfaults in the llvm plugin
+AC_ARG_ENABLE(lto, AS_HELP_STRING([--enable-lto],[Enable LTO (only supported with GCC) [default=no]]),
+ lto=$enableval, lto=no)
+if test "$lto" = yes; then
+ if $CXX --version | grep -q GCC; then
+ AC_SUBST(CXXLTO, [-flto=jobserver])
+ else
+ echo "error: LTO is only supported with GCC at the moment" >&2
+ exit 1
+ fi
+else
+ AC_SUBST(CXXLTO, [""])
+fi
+
PKG_PROG_PKG_CONFIG
AC_ARG_ENABLE(shared, AS_HELP_STRING([--enable-shared],[Build shared libraries for Nix [default=yes]]),