Skip to content

Commit cbea49c

Browse files
committed
build: Pass sanitize flags to instrument libsecp256k1 code
Also a new UBSan suppression has been added.
1 parent 3ba8de1 commit cbea49c

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

configure.ac

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -388,7 +388,8 @@ if test "$use_sanitizers" != ""; then
388388
dnl fail if a bad argument is passed, e.g. -fsanitize=undfeined
389389
AX_CHECK_COMPILE_FLAG(
390390
[-fsanitize=$use_sanitizers],
391-
[SANITIZER_CXXFLAGS="-fsanitize=$use_sanitizers"],
391+
[SANITIZER_CXXFLAGS="-fsanitize=$use_sanitizers"
392+
SANITIZER_CFLAGS="-fsanitize=$use_sanitizers"],
392393
[AC_MSG_ERROR([compiler did not accept requested flags])])
393394

394395
dnl Some compilers (e.g. GCC) require additional libraries like libasan,
@@ -1946,6 +1947,9 @@ CPPFLAGS_TEMP="$CPPFLAGS"
19461947
unset CPPFLAGS
19471948
CPPFLAGS="$CPPFLAGS_TEMP"
19481949

1950+
if test -n "$use_sanitizers"; then
1951+
export SECP_CFLAGS="$SECP_CFLAGS $SANITIZER_CFLAGS"
1952+
fi
19491953
ac_configure_args="${ac_configure_args} --disable-shared --with-pic --enable-benchmark=no --enable-module-recovery --disable-module-ecdh"
19501954
AC_CONFIG_SUBDIRS([src/secp256k1])
19511955

@@ -2006,7 +2010,7 @@ echo " target os = $host_os"
20062010
echo " build os = $build_os"
20072011
echo
20082012
echo " CC = $CC"
2009-
echo " CFLAGS = $PTHREAD_CFLAGS $CFLAGS"
2013+
echo " CFLAGS = $PTHREAD_CFLAGS $SANITIZER_CFLAGS $CFLAGS"
20102014
echo " CPPFLAGS = $DEBUG_CPPFLAGS $HARDENED_CPPFLAGS $CORE_CPPFLAGS $CPPFLAGS"
20112015
echo " CXX = $CXX"
20122016
echo " CXXFLAGS = $LTO_CXXFLAGS $DEBUG_CXXFLAGS $HARDENED_CXXFLAGS $WARN_CXXFLAGS $NOWARN_CXXFLAGS $ERROR_CXXFLAGS $GPROF_CXXFLAGS $CORE_CXXFLAGS $CXXFLAGS"

test/sanitizer_suppressions/ubsan

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ implicit-integer-sign-change:secp256k1/
2323
implicit-signed-integer-truncation:*/include/c++/
2424
implicit-signed-integer-truncation:leveldb/
2525
implicit-signed-integer-truncation:secp256k1/
26+
implicit-signed-integer-truncation,implicit-integer-sign-change:secp256k1_modinv64_posdivsteps_62_var
2627
implicit-unsigned-integer-truncation:*/include/c++/
2728
implicit-unsigned-integer-truncation:leveldb/
2829
implicit-unsigned-integer-truncation:secp256k1/

0 commit comments

Comments
 (0)