From d66cba2b93f9f91b87d380b23b8f571d10ab2bb6 Mon Sep 17 00:00:00 2001
From: "Nicolas \"Pixel\" Noble" <pixel@nobis-crew.org>
Date: Sat, 14 Feb 2015 02:59:12 +0100
Subject: [PATCH] Properly msan-instrumenting protobuf and our C++ tests - but
 gflags isn't instrumented yet.

---
 INSTALL                     | 5 +++++
 Makefile                    | 8 ++++----
 templates/Makefile.template | 8 ++++----
 3 files changed, 13 insertions(+), 8 deletions(-)

diff --git a/INSTALL b/INSTALL
index e3c05707db..d2f08ec677 100644
--- a/INSTALL
+++ b/INSTALL
@@ -90,6 +90,11 @@ these dependencies this way:
 
   # apt-get install autoconf libtool
 
+If you want to run the tests using one of the sanitized configurations, you
+will need clang and its instrumented libc++:
+
+  # apt-get install clang libc++-dev
+
 
 A word on OpenSSL
 -----------------
diff --git a/Makefile b/Makefile
index fe0f7035e6..c7f7e9302d 100644
--- a/Makefile
+++ b/Makefile
@@ -66,13 +66,13 @@ DEFINES_asan = NDEBUG
 VALID_CONFIG_msan = 1
 REQUIRE_CUSTOM_LIBRARIES_msan = 1
 CC_msan = clang
-CXX_msan = clang++
+CXX_msan = clang++-libc++
 LD_msan = clang
-LDXX_msan = clang++
-CPPFLAGS_msan = -O1 -fsanitize=memory -fno-omit-frame-pointer
+LDXX_msan = clang++-libc++
+CPPFLAGS_msan = -O1 -fsanitize=memory -fno-omit-frame-pointer -DGTEST_HAS_TR1_TUPLE=0 -DGTEST_USE_OWN_TR1_TUPLE=1
 OPENSSL_CFLAGS_msan = -DPURIFY
 OPENSSL_CONFIG_msan = no-asm
-LDFLAGS_msan = -fsanitize=memory
+LDFLAGS_msan = -fsanitize=memory -DGTEST_HAS_TR1_TUPLE=0 -DGTEST_USE_OWN_TR1_TUPLE=1
 DEFINES_msan = NDEBUG
 
 VALID_CONFIG_ubsan = 1
diff --git a/templates/Makefile.template b/templates/Makefile.template
index b9ae217054..992b906932 100644
--- a/templates/Makefile.template
+++ b/templates/Makefile.template
@@ -83,13 +83,13 @@ DEFINES_asan = NDEBUG
 VALID_CONFIG_msan = 1
 REQUIRE_CUSTOM_LIBRARIES_msan = 1
 CC_msan = clang
-CXX_msan = clang++
+CXX_msan = clang++-libc++
 LD_msan = clang
-LDXX_msan = clang++
-CPPFLAGS_msan = -O1 -fsanitize=memory -fno-omit-frame-pointer
+LDXX_msan = clang++-libc++
+CPPFLAGS_msan = -O1 -fsanitize=memory -fno-omit-frame-pointer -DGTEST_HAS_TR1_TUPLE=0 -DGTEST_USE_OWN_TR1_TUPLE=1
 OPENSSL_CFLAGS_msan = -DPURIFY
 OPENSSL_CONFIG_msan = no-asm
-LDFLAGS_msan = -fsanitize=memory
+LDFLAGS_msan = -fsanitize=memory -DGTEST_HAS_TR1_TUPLE=0 -DGTEST_USE_OWN_TR1_TUPLE=1
 DEFINES_msan = NDEBUG
 
 VALID_CONFIG_ubsan = 1
-- 
GitLab