ci: build ndn-cxx with AddressSanitizer
Change-Id: I706ab29efe61c17511b87b477151d9a2a8e055bc
diff --git a/.jenkins b/.jenkins
index 287bdd7..bc1c847 100755
--- a/.jenkins
+++ b/.jenkins
@@ -4,6 +4,7 @@
export CACHE_DIR=${CACHE_DIR:-/tmp}
export WAF_JOBS=${WAF_JOBS:-1}
+[[ $JOB_NAME == *"code-coverage" ]] && export DISABLE_ASAN=yes
nanos() {
# Cannot use date(1) because macOS does not support %N format specifier
diff --git a/.jenkins.d/01-ndn-cxx.sh b/.jenkins.d/01-ndn-cxx.sh
index 3249e4c..7bf1cfe 100755
--- a/.jenkins.d/01-ndn-cxx.sh
+++ b/.jenkins.d/01-ndn-cxx.sh
@@ -35,11 +35,16 @@
pushd ndn-cxx >/dev/null
+if has Linux $NODE_LABELS && [[ $CXX != clang* && -z $DISABLE_ASAN ]]; then
+ # https://stackoverflow.com/a/47022141
+ ASAN="--with-sanitizer=address"
+fi
if has CentOS-8 $NODE_LABELS; then
+ # https://bugzilla.redhat.com/show_bug.cgi?id=1721553
PCH="--without-pch"
fi
-./waf --color=yes configure --disable-static --enable-shared --without-osx-keychain $PCH
+./waf --color=yes configure --disable-static --enable-shared --without-osx-keychain $ASAN $PCH
./waf --color=yes build -j$WAF_JOBS
sudo_preserve_env PATH -- ./waf --color=yes install
diff --git a/.jenkins.d/10-build.sh b/.jenkins.d/10-build.sh
index f5ef90a..2a60f0d 100755
--- a/.jenkins.d/10-build.sh
+++ b/.jenkins.d/10-build.sh
@@ -4,10 +4,11 @@
git submodule sync
git submodule update --init
+if [[ -z $DISABLE_ASAN ]]; then
+ ASAN="--with-sanitizer=address"
+fi
if [[ $JOB_NAME == *"code-coverage" ]]; then
COVERAGE="--with-coverage"
-elif [[ -z $DISABLE_ASAN ]]; then
- ASAN="--with-sanitizer=address"
fi
if [[ $JOB_NAME != *"code-coverage" && $JOB_NAME != *"limited-build" ]]; then
diff --git a/INSTALL.md b/INSTALL.md
index 5ebf050..a4a325c 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -8,7 +8,7 @@
Please see [Getting Started with ndn-cxx](https://named-data.net/doc/ndn-cxx/current/INSTALL.html)
for how to install ndn-cxx.
Note: If you have installed ndn-cxx from a binary package, please make sure development headers
- are installed (if using Ubuntu PPA, `libndn-cxx-dev` package is needed).
+ are installed (e.g., if using Ubuntu PPA, the `libndn-cxx-dev` package is needed).
Any operating system and compiler supported by ndn-cxx is supported by ndn-tools.
@@ -18,7 +18,12 @@
On Ubuntu:
- sudo apt-get install libpcap-dev
+ sudo apt install libpcap-dev
+
+ On CentOS and Fedora:
+
+ sudo dnf config-manager --enable PowerTools # CentOS only
+ sudo dnf install libpcap-devel
## Build Steps