mirror of
https://github.com/ElementsProject/lightning.git
synced 2025-03-15 20:09:18 +01:00
make: build dependencies with fuzzing flags
By using fuzzer instrumentation for dependencies, we get more coverage signal during fuzzing. This is useful when the fuzzer must figure out how to take certain branches in a dependency. In our case, the fuzz-bip32 target was failing to create a data buffer that successfully passed fromwire_ext_key() parsing because the fuzzer couldn't see what was happening inside libwally-core.
This commit is contained in:
parent
dff2dd259e
commit
eed73082f5
2 changed files with 7 additions and 4 deletions
5
configure
vendored
5
configure
vendored
|
@ -148,6 +148,7 @@ set_defaults()
|
|||
ASAN=${ASAN:-0}
|
||||
UBSAN=${UBSAN:-0}
|
||||
FUZZING=${FUZZING:-0}
|
||||
FUZZFLAGS=""
|
||||
CSANFLAGS=""
|
||||
if [ "$ASAN" != 0 ]; then
|
||||
CSANFLAGS="$CSANFLAGS -fsanitize=address"
|
||||
|
@ -162,7 +163,8 @@ set_defaults()
|
|||
fi
|
||||
fi
|
||||
if [ "$FUZZING" != 0 ]; then
|
||||
CSANFLAGS="$CSANFLAGS -fsanitize=fuzzer-no-link"
|
||||
FUZZFLAGS="-fsanitize=fuzzer-no-link"
|
||||
CSANFLAGS="$CSANFLAGS $FUZZFLAGS"
|
||||
fi
|
||||
echo CSANFLAGS = $CSANFLAGS
|
||||
PYTEST=${PYTEST-$(default_pytest)}
|
||||
|
@ -473,6 +475,7 @@ add_var CWARNFLAGS "$CWARNFLAGS"
|
|||
add_var CDEBUGFLAGS "$CDEBUGFLAGS"
|
||||
add_var COPTFLAGS "$COPTFLAGS"
|
||||
add_var CSANFLAGS "$CSANFLAGS"
|
||||
add_var FUZZFLAGS "$FUZZFLAGS"
|
||||
add_var SQLITE3_CFLAGS "$SQLITE3_CFLAGS"
|
||||
add_var SQLITE3_LDLIBS "$SQLITE3_LDLIBS"
|
||||
add_var POSTGRES_INCLUDE "$POSTGRES_INCLUDE"
|
||||
|
|
6
external/Makefile
vendored
6
external/Makefile
vendored
|
@ -71,7 +71,7 @@ $(TARGET_DIR)/libsodium.a: $(TARGET_DIR)/libsodium-build/src/libsodium/libsodium
|
|||
$(TARGET_DIR)/libsodium-build/src/libsodium/libsodium.la: external/libsodium/src/libsodium/include/sodium.h
|
||||
cd external/libsodium && ./autogen.sh
|
||||
mkdir -p ${TARGET_DIR}/libsodium-build
|
||||
cd $(TARGET_DIR)/libsodium-build && $(TOP)/libsodium/configure CC="$(CC)" --enable-static=yes $(CROSSCOMPILE_OPTS) --enable-shared=no --prefix=/ --libdir=/ && $(MAKE)
|
||||
cd $(TARGET_DIR)/libsodium-build && $(TOP)/libsodium/configure CC="$(CC)" CFLAGS="$(FUZZFLAGS)" LDFLAGS="$(FUZZFLAGS)" --enable-static=yes $(CROSSCOMPILE_OPTS) --enable-shared=no --prefix=/ --libdir=/ && $(MAKE)
|
||||
|
||||
# libsecp included in libwally.
|
||||
# Wildcards here are magic. See http://stackoverflow.com/questions/2973445/gnu-makefile-rule-generating-a-few-targets-from-a-single-source-file
|
||||
|
@ -83,7 +83,7 @@ $(TARGET_DIR)/libwally-core-build/src/libwallycore.% $(TARGET_DIR)/libwally-core
|
|||
cd external/libwally-core && ./tools/autogen.sh
|
||||
mkdir -p ${TARGET_DIR}/libwally-core-build
|
||||
cd ${TARGET_DIR}/libwally-core-build \
|
||||
&& PYTHON_VERSION=3 CFLAGS=-std=c99 ${TOP}/libwally-core/configure CC="$(CC)" \
|
||||
&& PYTHON_VERSION=3 CFLAGS="-std=c99 $(FUZZFLAGS)" LDFLAGS="$(FUZZFLAGS)" ${TOP}/libwally-core/configure CC="$(CC)" \
|
||||
--enable-static=yes \
|
||||
$(CROSSCOMPILE_OPTS) \
|
||||
--enable-module-recovery \
|
||||
|
@ -115,7 +115,7 @@ $(TARGET_DIR)/libbacktrace.a: external/libbacktrace/backtrace.h
|
|||
$(MAKE) -C $(TARGET_DIR)/libbacktrace-build DESTDIR=$$(pwd)/$(TARGET_DIR) install-exec
|
||||
|
||||
$(TARGET_DIR)/lowdown-build/bin/lowdown: external/lowdown/lowdown.h
|
||||
cd external/lowdown && CC="$(CC)" ./configure PREFIX=`pwd`/$(TOP)/$(TARGET_DIR)/lowdown-build/
|
||||
cd external/lowdown && CC="$(CC)" CFLAGS="$(FUZZFLAGS)" ./configure LDFLAGS="$(FUZZFLAGS)" PREFIX=`pwd`/$(TOP)/$(TARGET_DIR)/lowdown-build/
|
||||
$(MAKE) -C external/lowdown install
|
||||
|
||||
distclean: external-distclean
|
||||
|
|
Loading…
Add table
Reference in a new issue