From c7b960e72cf7a98506bae57a23aca3b8af44eb23 Mon Sep 17 00:00:00 2001 From: Moinak Ghosh Date: Tue, 11 Dec 2012 17:58:23 +0530 Subject: [PATCH] Enable use of Link Time Optimizations in GCC. --- Makefile.in | 6 +++--- config | 7 +++++++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/Makefile.in b/Makefile.in index 19441e4..9a15e44 100644 --- a/Makefile.in +++ b/Makefile.in @@ -147,9 +147,9 @@ DEBUG_RABIN_OPT = -O -fno-omit-frame-pointer DEBUG_CPPFLAGS = $(COMMON_CPPFLAGS) DEBUG_FPTR_FLAG = -RELEASE_LINK = g++ -m64 -pthread -msse3 @LIBBSCGEN_OPT@ -RELEASE_COMPILE = gcc -m64 -msse3 -c -RELEASE_COMPILE_cpp = g++ -m64 -msse3 -c +RELEASE_LINK = g++ -m64 -pthread -msse3 @LIBBSCGEN_OPT@ @LTO_FLAG@ +RELEASE_COMPILE = gcc -m64 -msse3 -c @LTO_FLAG@ +RELEASE_COMPILE_cpp = g++ -m64 -msse3 -c @LTO_FLAG@ RELEASE_VEC_FLAGS = $(COMMON_VEC_FLAGS) RELEASE_LOOP_OPTFLAGS = $(COMMON_LOOP_OPTFLAGS) RELEASE_CPPFLAGS = $(COMMON_CPPFLAGS) -DNDEBUG diff --git a/config b/config index 5ece5a5..87225f5 100755 --- a/config +++ b/config @@ -46,6 +46,7 @@ yasm=yasm keccak_srcs= keccak_hdrs= keccak_srcs_asm= +lto_flag= # Try a simple compilation cat << _EOF > tst.c @@ -71,6 +72,10 @@ then exit 1 fi +# Check GCC version and enable LTO flags if possible +gcc -v 2>&1 | grep lto > /dev/null +[ $? -eq 0 ] && lto_flag="-flto" + # Check bitness of system bitness=`./tst` rm -f tst tst.c @@ -344,6 +349,7 @@ sha256asmobjsvar="SHA256ASM_OBJS" sha256objsvar="SHA256_OBJS" yasmvar="YASM" fptr_flag_var="FPTR_FLAG" +lto_flag_var="LTO_FLAG" openssllibdirvar="OPENSSL_LIBDIR" opensslincdirvar="OPENSSL_INCDIR" @@ -396,5 +402,6 @@ s#@${keccak_srcs_var}@#${keccak_srcs}#g s#@${keccak_hdrs_var}@#${keccak_hdrs}#g s#@${keccak_srcs_var}@#${keccak_srcs}#g s#@${keccak_srcs_asm_var}@#${keccak_srcs_asm}#g +s#@${lto_flag_var}@#${lto_flag}#g " > Makefile