aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDamjan Marion <damarion@cisco.com>2020-05-21 19:09:13 +0200
committerFlorin Coras <florin.coras@gmail.com>2020-05-27 18:46:27 +0000
commitec3a3f16e4cd3b33e2a409fb01b8d8826e05f9fa (patch)
treebd4059fba9842cf9d467e5fa9b3db9102ec3dae1
parent5500d1d6502554229d0542b89b857777b3c1851e (diff)
build: make address sanitizer options configurable with cmake
Type: improvement Change-Id: I9ee0407e0634f773862dd65ff5d5594814294c2c Signed-off-by: Damjan Marion <damarion@cisco.com>
-rw-r--r--src/CMakeLists.txt6
-rw-r--r--src/vpp/CMakeLists.txt5
-rw-r--r--src/vpp/vnet/config.h.in21
-rw-r--r--src/vpp/vnet/main.c4
4 files changed, 34 insertions, 2 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 59c7512a044..e2937c99db6 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -110,6 +110,12 @@ set_property(CACHE CMAKE_BUILD_TYPE PROPERTY
##############################################################################
option(VPP_ENABLE_SANITIZE_ADDR "Enable Address Sanitizer" OFF)
+set(VPP_SANITIZE_ADDR_ARGS
+ "unmap_shadow_on_exit=1:disable_coredump=0:abort_on_error=1:detect_leaks=0"
+ CACHE
+ STRING "Address sanitizer arguments"
+)
+
if (VPP_ENABLE_SANITIZE_ADDR)
set(CMAKE_C_FLAGS "-fsanitize=address --param asan-stack=0 -DCLIB_SANITIZE_ADDR ${CMAKE_C_FLAGS}")
set(CMAKE_EXE_LINKER_FLAGS "-fsanitize=address ${CMAKE_EXE_LINKER_FLAGS}")
diff --git a/src/vpp/CMakeLists.txt b/src/vpp/CMakeLists.txt
index 8f7c2cfafb2..f045836bca5 100644
--- a/src/vpp/CMakeLists.txt
+++ b/src/vpp/CMakeLists.txt
@@ -33,6 +33,11 @@ add_custom_target(vpp_version_h
##############################################################################
option(VPP_API_TEST_BUILTIN "Use builtin VPP API test." ON)
+configure_file(
+ ${CMAKE_SOURCE_DIR}/vpp/vnet/config.h.in
+ ${CMAKE_BINARY_DIR}/vpp/vnet/config.h
+)
+
set(VPP_API_FILES
api/vpe_types.api
api/vpe.api
diff --git a/src/vpp/vnet/config.h.in b/src/vpp/vnet/config.h.in
new file mode 100644
index 00000000000..8eee6da4913
--- /dev/null
+++ b/src/vpp/vnet/config.h.in
@@ -0,0 +1,21 @@
+/*
+ * Copyright (c) 2020 Cisco and/or its affiliates.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at:
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef included_vpp_vnet_config_h
+#define included_vpp_vnet_config_h
+
+#define VPP_SANITIZE_ADDR_OPTIONS "@VPP_SANITIZE_ADDR_OPTIONS@"
+
+#endif
diff --git a/src/vpp/vnet/main.c b/src/vpp/vnet/main.c
index a95d6a75993..f4cc5042d45 100644
--- a/src/vpp/vnet/main.c
+++ b/src/vpp/vnet/main.c
@@ -24,6 +24,7 @@
#include <vnet/plugin/plugin.h>
#include <vnet/ethernet/ethernet.h>
#include <vpp/app/version.h>
+#include <vpp/vnet/config.h>
#include <vpp/api/vpe_msg_enum.h>
#include <limits.h>
@@ -512,8 +513,7 @@ VLIB_CLI_COMMAND (show_bihash_command, static) =
const char *
__asan_default_options (void)
{
- return
- "unmap_shadow_on_exit=1:disable_coredump=0:abort_on_error=1:detect_leaks=0";
+ return VPP_SANITIZE_ADDR_OPTIONS;
}
#endif /* CLIB_SANITIZE_ADDR */