diff options
author | Rafal Krypa <r.krypa@samsung.com> | 2016-12-30 14:49:03 +0100 |
---|---|---|
committer | Rafal Krypa <r.krypa@samsung.com> | 2017-03-28 09:42:49 +0200 |
commit | 4316f0ffd0b6852e774645a98df4d357025bd814 (patch) | |
tree | 4199c9035fee04119c86fc82c2c00e9b912ff095 | |
parent | d356e5bd5348d9ce762b42a74dffb99c10f13ed2 (diff) | |
download | security-manager-4316f0ffd0b6852e774645a98df4d357025bd814.tar.gz security-manager-4316f0ffd0b6852e774645a98df4d357025bd814.tar.bz2 security-manager-4316f0ffd0b6852e774645a98df4d357025bd814.zip |
Add "VALGRIND" build type
Separate build type specialized for debugging memory leaks.
Example usage with GBS for Tizen:
$ gbs build --define "build_type VALGRIND"
Change-Id: I7e150609021508541427ff009fa28b97a6004daf
-rw-r--r-- | CMakeLists.txt | 1 | ||||
-rw-r--r-- | packaging/security-manager.spec | 3 | ||||
-rw-r--r-- | systemd/CMakeLists.txt | 7 | ||||
-rw-r--r-- | systemd/security-manager-valgrind.service.in | 15 |
4 files changed, 25 insertions, 1 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 77a6a358..d3d885a9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -62,6 +62,7 @@ SET(CMAKE_CXX_FLAGS_PROFILING "-g -std=c++0x -O0 -pg -Wp,-U_FORTIFY_SOURCE") SET(CMAKE_CXX_FLAGS_DEBUG "-g -std=c++0x -O0 -ggdb -Wp,-U_FORTIFY_SOURCE") SET(CMAKE_CXX_FLAGS_RELEASE "-g -std=c++0x -O2") SET(CMAKE_CXX_FLAGS_CCOV "-g -std=c++0x -O2 --coverage") +SET(CMAKE_CXX_FLAGS_VALGRIND "-ggdb -std=c++0x -O0 -fno-inline -Wp,-U_FORTIFY_SOURCE") # If supported for the target machine, emit position-independent code,suitable # for dynamic linking and avoiding any limit on the size of the global offset diff --git a/packaging/security-manager.spec b/packaging/security-manager.spec index a03f207b..8d24815a 100644 --- a/packaging/security-manager.spec +++ b/packaging/security-manager.spec @@ -11,6 +11,9 @@ Source4: libnss-security-manager.manifest Source5: security-manager-tests.manifest Requires: security-manager-policy Requires: nether +%if "%{build_type}" == "VALGRIND" +Requires: valgrind +%endif Requires(post): sqlite3 Requires(post): smack BuildRequires: cmake diff --git a/systemd/CMakeLists.txt b/systemd/CMakeLists.txt index 8d0a1aa8..3e20c9b5 100644 --- a/systemd/CMakeLists.txt +++ b/systemd/CMakeLists.txt @@ -1,4 +1,9 @@ -CONFIGURE_FILE(security-manager.service.in security-manager.service @ONLY) +IF(CMAKE_BUILD_TYPE MATCHES "VALGRIND") + CONFIGURE_FILE(security-manager-valgrind.service.in security-manager.service @ONLY) +ELSE() + CONFIGURE_FILE(security-manager.service.in security-manager.service @ONLY) +ENDIF() + CONFIGURE_FILE(security-manager-cleanup.service.in security-manager-cleanup.service @ONLY) CONFIGURE_FILE(security-manager-rules-loader.service.in security-manager-rules-loader.service @ONLY) diff --git a/systemd/security-manager-valgrind.service.in b/systemd/security-manager-valgrind.service.in new file mode 100644 index 00000000..ad02fcf3 --- /dev/null +++ b/systemd/security-manager-valgrind.service.in @@ -0,0 +1,15 @@ +[Unit] +Description=Start the security manager +Before=dbus.service + +[Service] +Type=notify +Environment="GLIBCXX_FORCE_NEW=1" +ExecStart=@BIN_INSTALL_DIR@/valgrind -v --tool=memcheck --log-file=/tmp/security-manager.valgrind.%%p.log --num-callers=20 --leak-resolution=high --leak-check=full --show-reachable=yes --track-origins=yes @BIN_INSTALL_DIR@/security-manager +#ExecStart=@BIN_INSTALL_DIR@/valgrind -v --tool=massif --log-file=/tmp/security-manager.valgrind.%%p.log --massif-out-file=/tmp/security-manager.massif.%%p.log @BIN_INSTALL_DIR@/security-manager +Sockets=security-manager.socket +Restart=always +SmackProcessLabel=System::Privileged + +[Install] +WantedBy=dbus.service |