From e957382700ed9237d4a7b374cd76bec466f5231c Mon Sep 17 00:00:00 2001 From: Luboš Luňák Date: Tue, 18 Feb 2020 10:20:38 +0100 Subject: add --enable-optimized=debug MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This will use -Og with GCC/Clang instead of -O0, which should make unittests run faster without (hopefully) breaking anything related to debugging. This is primarily meant to Jenkins builds, where debug info is rarely needed (backtraces for unittest crashes AFAICT). This can be also used to make LO itself run faster when developing, but I personally do not find it worth it (with Clang and full PCH this makes starmath build take about 70% longer, although presumably for non-PCH builds the relative increase will be smaller). Change-Id: I198d0759ebca94c90be662e02e0f1281a24d1d70 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88917 Reviewed-by: Michael Stahl Reviewed-by: Luboš Luňák Tested-by: Jenkins --- configure.ac | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) (limited to 'configure.ac') diff --git a/configure.ac b/configure.ac index 60ece7a9af17..0b728af2e5fb 100644 --- a/configure.ac +++ b/configure.ac @@ -1194,10 +1194,11 @@ libo_FUZZ_ARG_ENABLE(symbols, Example: --enable-symbols="all -sw/ -Library_sc".])) libo_FUZZ_ARG_ENABLE(optimized, - AS_HELP_STRING([--disable-optimized], + AS_HELP_STRING([--enable-optimized=], [Whether to compile with optimization flags. By default, disabled for --enable-debug and --enable-dbgutil, enabled - otherwise.])) + otherwise. Using 'debug' will try to use only optimizations that should + not interfere with debugging.])) libo_FUZZ_ARG_ENABLE(runtime-optimizations, AS_HELP_STRING([--disable-runtime-optimizations], @@ -4204,6 +4205,8 @@ if test -n "$with_android_ndk" -a \( -n "$ENABLE_SYMBOLS" -o -n "$ENABLE_DEBUG" fi fi +ENABLE_OPTIMIZED= +ENABLE_OPTIMIZED_DEBUG= AC_MSG_CHECKING([whether to compile with optimization flags]) if test -z "$enable_optimized"; then if test -n "$ENABLE_DEBUG$ENABLE_DBGUTIL"; then @@ -4212,14 +4215,33 @@ if test -z "$enable_optimized"; then enable_optimized=yes fi fi -if test "$enable_optimized" != no; then +if test "$enable_optimized" = yes; then ENABLE_OPTIMIZED=TRUE AC_MSG_RESULT([yes]) +elif test "$enable_optimized" = debug; then + ENABLE_OPTIMIZED_DEBUG=TRUE + AC_MSG_RESULT([yes (debug)]) + HAVE_GCC_OG= + if test "$GCC" = "yes"; then + AC_MSG_CHECKING([whether $CC_BASE supports -Og]) + save_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS -Werror -Og" + AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[ return 0; ]])],[ HAVE_GCC_OG=TRUE ],[]) + CFLAGS=$save_CFLAGS + if test "$HAVE_GCC_OG" = "TRUE"; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + fi + if test -z "$HAVE_GCC_OG"; then + AC_MSG_ERROR([The compiler does not support optimizations suitable for debugging.]) + fi else - ENABLE_OPTIMIZED= AC_MSG_RESULT([no]) fi AC_SUBST(ENABLE_OPTIMIZED) +AC_SUBST(ENABLE_OPTIMIZED_DEBUG) # # determine CPUNAME, OS, ... -- cgit v1.2.3