From 65d12900432ac880d764edbbd36818431484a76e Mon Sep 17 00:00:00 2001 From: Mans Rullgard Date: Thu, 20 Sep 2012 15:50:14 +0100 Subject: [PATCH] configure: add --enable-lto option This works with gcc. Other compilers might need to have a flag mapping added. Signed-off-by: Mans Rullgard --- configure | 38 +++++++++++++++++++++++++++----------- 1 file changed, 27 insertions(+), 11 deletions(-) diff --git a/configure b/configure index d09684c7b0..4c3ebdb281 100755 --- a/configure +++ b/configure @@ -238,6 +238,7 @@ Advanced options (experts only): disable buffer boundary checking in bitreaders (faster, but may crash) --enable-memalign-hack emulate memalign, interferes with memory debuggers + --enable-lto use link-time optimization Optimization options (experts only): --disable-asm disable all assembler optimizations @@ -1290,6 +1291,7 @@ CMDLINE_SELECT=" debug extra_warnings logging + lto optimizations " @@ -3445,17 +3447,31 @@ void ff_foo(void) {} EOF fi -if [ -n "$optflags" ]; then - add_cflags $optflags -elif enabled small; then - add_cflags $cflags_size -elif enabled optimizations; then - add_cflags $cflags_speed -else - add_cflags $cflags_noopt +if [ -z "$optflags" ]; then + if enabled small; then + optflags=$cflags_size + elif enabled optimizations; then + optflags=$cflags_speed + else + optflags=$cflags_noopt + fi fi -check_cflags -fno-math-errno -check_cflags -fno-signed-zeros + +check_optflags(){ + check_cflags "$@" + enabled lto && check_ldflags "$@" +} + + +if enabled lto; then + test "$cc_type" != "$ld_type" && die "LTO requires same compiler and linker" + check_cflags -flto + check_ldflags -flto $cpuflags +fi + +check_optflags $optflags +check_optflags -fno-math-errno +check_optflags -fno-signed-zeros if enabled icc; then # Just warnings, no remarks @@ -3490,7 +3506,7 @@ elif enabled ccc; then add_cflags -msg_disable ptrmismatch1 add_cflags -msg_disable unreachcode elif enabled gcc; then - check_cflags -fno-tree-vectorize + check_optflags -fno-tree-vectorize check_cflags -Werror=implicit-function-declaration check_cflags -Werror=missing-prototypes check_cflags -Werror=declaration-after-statement