summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--build/flags.mk8
-rwxr-xr-xconfigure4
2 files changed, 9 insertions, 3 deletions
diff --git a/build/flags.mk b/build/flags.mk
index 9f552a8..462f74b 100644
--- a/build/flags.mk
+++ b/build/flags.mk
@@ -30,6 +30,9 @@ _GCOV := ${TRUTHY,${GCOV}}
_LINT := ${TRUTHY,${LINT}}
_RELEASE := ${TRUTHY,${RELEASE}}
+LTO ?= ${RELEASE}
+_LTO := ${TRUTHY,${LTO}}
+
ASAN_CFLAGS,y := -fsanitize=address
LSAN_CFLAGS,y := -fsanitize=leak
MSAN_CFLAGS,y := -fsanitize=memory -fsanitize-memory-track-origins
@@ -62,11 +65,14 @@ _CPPFLAGS += ${LINT_CPPFLAGS,${_LINT}}
_CFLAGS += ${LINT_CFLAGS,${_LINT}}
RELEASE_CPPFLAGS,y := -DNDEBUG
-RELEASE_CFLAGS,y := -O3 -flto=auto
+RELEASE_CFLAGS,y := -O3
_CPPFLAGS += ${RELEASE_CPPFLAGS,${_RELEASE}}
_CFLAGS += ${RELEASE_CFLAGS,${_RELEASE}}
+LTO_CFLAGS,y := -flto=auto
+_CFLAGS += ${LTO_CFLAGS,${_LTO}}
+
# Configurable flags
CFLAGS ?= -g -Wall
diff --git a/configure b/configure
index 58f7953..f6818c3 100755
--- a/configure
+++ b/configure
@@ -164,7 +164,7 @@ for arg; do
--enable-*|--disable-*)
case "$name" in
- release|asan|lsan|msan|tsan|ubsan|lint|gcov)
+ release|lto|asan|lsan|msan|tsan|ubsan|lint|gcov)
set -- "$@" "$NAME=$yn"
;;
*)
@@ -197,7 +197,7 @@ for arg; do
;;
# Warn about MAKE variables that have documented configure flags
- RELEASE=*|ASAN=*|LSAN=*|MSAN=*|TSAN=*|UBSAN=*|LINT=*|GCOV=*)
+ RELEASE=*|LTO=*|ASAN=*|LSAN=*|MSAN=*|TSAN=*|UBSAN=*|LINT=*|GCOV=*)
name=$(printf '%s' "$NAME" | tr 'A-Z_' 'a-z-')
warn '"%s" is deprecated; use --enable-%s' "$arg" "$name"
set -- "$@" "$arg"