]> Git Repo - secp256k1.git/commitdiff
Merge #700: Allow overriding default flags
authorTim Ruffing <[email protected]>
Fri, 20 Mar 2020 15:48:45 +0000 (16:48 +0100)
committerTim Ruffing <[email protected]>
Fri, 20 Mar 2020 15:56:33 +0000 (16:56 +0100)
ca739cba238cdd7c513abfc719b0b0eb957c9458 Compile with optimization flag -O2 by default instead of -O3 (Jonas Nick)
83fb1bcef49b1c12ef349f62d90bfcc83f0f7398 Remove -O2 from default CFLAGS because this would override the -O3 flag (see AC_PROG_CC in the Autoconf manual) (Jonas Nick)
ecba8138ec163f5ad4c303df9f8744810a3dfc03 Append instead of Prepend user-CFLAGS to default CFLAGS allowing the user to override default variables (Jonas Nick)
613c34cd869e56dee2ea5fb701f05b07da7069c8 Remove test in configure.ac because it doesn't have an effect (Jonas Nick)

Pull request description:

  Right now, it's not easy to reduce the optimization level with `CFLAGS` because `configure` overwrites any optimization flag with `-O3`. The [automake documentation](https://www.gnu.org/software/automake/manual/html_node/Flag-Variables-Ordering.html) states that:

   > The reason ‘$(CPPFLAGS)’ appears after ‘$(AM_CPPFLAGS)’ or ‘$(mumble_CPPFLAGS)’ in the compile command is that users should always have the last say.

  and also that it's incorrect to redefine CFLAGS in the first place

  > You should never redefine a user variable such as CPPFLAGS in Makefile.am. [...] You should not add options to these user variables within configure either, for the same reason

  With this PR `CFLAGS` is still redefined, but user-provided flags appear after the default `CFLAGS` which means that they override the default flags (at least in clang and gcc). Otherwise, the default configuration is not changed. This also means that if CFLAGS are defined by the user, then -g is not added (which does not seem to make much sense). In order to keep the `-O3` despite the reordering we need to explicitly tell autoconf to not append `-O2` by setting the default to `-g` with `: ${CFLAGS="-g"}` as per [the manual](https://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.69/autoconf.html#C-Compiler) (EDIT: link fix).

ACKs for top commit:
  real-or-random:
    ACK ca739cba238cdd7c513abfc719b0b0eb957c9458
  theuni:
    ACK ca739cba238cdd7c513abfc719b0b0eb957c9458.
  elichai:
    ACK ca739cba238cdd7c513abfc719b0b0eb957c9458

Tree-SHA512: be92589faa461d245203385d44b489c7d6917b0c68472b8d7576806c0250cf5ff61d5c99ce04eebb8ff5279b9987185d4e5d2da979683fb1c489fdf3e5b59630

1  2 
configure.ac

diff --cc configure.ac
index e4929d6604c8cb9abdf3a0defae4c7cdda4a5558,1272262ad4261d3194bce20dfac028563a240b20..cbcd17537dceed82ce494c00af7f4e536c751ec5
@@@ -170,15 -176,12 +171,15 @@@ AC_ARG_WITH([ecmult-gen-precision], [AS
  
  AC_CHECK_TYPES([__int128])
  
 +AC_CHECK_HEADER([valgrind/memcheck.h], [enable_valgrind=yes], [enable_valgrind=no], [])
 +AM_CONDITIONAL([VALGRIND_ENABLED],[test "$enable_valgrind" = "yes"])
 +
  if test x"$enable_coverage" = x"yes"; then
      AC_DEFINE(COVERAGE, 1, [Define this symbol to compile out all VERIFY code])
-     CFLAGS="$CFLAGS -O0 --coverage"
-     LDFLAGS="$LDFLAGS --coverage"
+     CFLAGS="-O0 --coverage $CFLAGS"
+     LDFLAGS="--coverage $LDFLAGS"
  else
-     CFLAGS="$CFLAGS -O3"
+     CFLAGS="-O2 $CFLAGS"
  fi
  
  if test x"$use_ecmult_static_precomputation" != x"no"; then
This page took 0.029147 seconds and 4 git commands to generate.