Merge bitcoin-core/secp256k1#1243: build: Ensure no optimization when building for coverage analysis
8e79c7ed11fa50bd6b8a3d3203b2fc330a0c37ea build: Ensure no optimization when building for coverage analysis (Hennadii Stepanov)
Pull request description:
#944 introduced a regression when building for coverage analysis. The `-O2` flag from the default Autoconf's `CFLAGS` overrides the coverage-specific `-O0` one, which makes coverage analysis results [less reliable](https://gcc.gnu.org/onlinedocs/gcc/Gcov-and-Optimization.html).
This PR restores the pre-#944 behaviour.
In contrast to an alternative smaller diff:
```diff
--- a/configure.ac
+++ b/configure.ac
@@ -240,7 +240,7 @@ fi
if test x"$enable_coverage" = x"yes"; then
SECP_CONFIG_DEFINES="$SECP_CONFIG_DEFINES -DCOVERAGE=1"
- SECP_CFLAGS="-O0 --coverage $SECP_CFLAGS"
+ CFLAGS="$CFLAGS -O0 --coverage "
LDFLAGS="--coverage $LDFLAGS"
else
# Most likely the CFLAGS already contain -O2 because that is autoconf's default.
```
this PR ensures that the user always has the last word.
FWIW, Bitcoin Core uses a similar [approach](460e394625/configure.ac (L879-L884)
).
ACKs for top commit:
jonasnick:
tested ACK 8e79c7ed11fa50bd6b8a3d3203b2fc330a0c37ea
real-or-random:
utACK 8e79c7ed11fa50bd6b8a3d3203b2fc330a0c37ea
Tree-SHA512: f04b55921d397bd7c003ec0283101d3908f3fb507789c855e1b6d5abd150e7d6281d5eeb8fefbb7d6a55b3c6f29a19324f570eee009794f8fa9bca956229e7ce
This commit is contained in:
commit
0cf2fb91ef
11
configure.ac
11
configure.ac
@ -29,6 +29,11 @@ AM_INIT_AUTOMAKE([1.11.2 foreign subdir-objects])
|
|||||||
# Make the compilation flags quiet unless V=1 is used.
|
# Make the compilation flags quiet unless V=1 is used.
|
||||||
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
|
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
|
||||||
|
|
||||||
|
if test "${CFLAGS+set}" = "set"; then
|
||||||
|
CFLAGS_overridden=yes
|
||||||
|
else
|
||||||
|
CFLAGS_overridden=no
|
||||||
|
fi
|
||||||
AC_PROG_CC
|
AC_PROG_CC
|
||||||
AM_PROG_AS
|
AM_PROG_AS
|
||||||
AM_PROG_AR
|
AM_PROG_AR
|
||||||
@ -241,6 +246,12 @@ fi
|
|||||||
if test x"$enable_coverage" = x"yes"; then
|
if test x"$enable_coverage" = x"yes"; then
|
||||||
SECP_CONFIG_DEFINES="$SECP_CONFIG_DEFINES -DCOVERAGE=1"
|
SECP_CONFIG_DEFINES="$SECP_CONFIG_DEFINES -DCOVERAGE=1"
|
||||||
SECP_CFLAGS="-O0 --coverage $SECP_CFLAGS"
|
SECP_CFLAGS="-O0 --coverage $SECP_CFLAGS"
|
||||||
|
# If coverage is enabled, and the user has not overridden CFLAGS,
|
||||||
|
# override Autoconf's value "-g -O2" with "-g". Otherwise we'd end up
|
||||||
|
# with "-O0 --coverage -g -O2".
|
||||||
|
if test "$CFLAGS_overridden" = "no"; then
|
||||||
|
CFLAGS="-g"
|
||||||
|
fi
|
||||||
LDFLAGS="--coverage $LDFLAGS"
|
LDFLAGS="--coverage $LDFLAGS"
|
||||||
else
|
else
|
||||||
# Most likely the CFLAGS already contain -O2 because that is autoconf's default.
|
# Most likely the CFLAGS already contain -O2 because that is autoconf's default.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user