Index: build/common.gypi |
diff --git a/build/common.gypi b/build/common.gypi |
index e34b1590dd6a731b9bc385b864ad52d58a6e1e75..26c0be5905b40439aca996cff2161cd46d7693f3 100644 |
--- a/build/common.gypi |
+++ b/build/common.gypi |
@@ -279,6 +279,11 @@ |
# See https://sites.google.com/a/chromium.org/dev/developers/testing/addresssanitizer |
'asan%': 0, |
+ # Enable building with LSan (Clang's -fsanitize=leak option). |
+ # -fsanitize=leak only works with clang, but lsan=1 implies clang=1 |
+ # See https://sites.google.com/a/chromium.org/dev/developers/testing/leaksanitizer |
+ 'lsan%': 0, |
+ |
# Enable building with TSAN (Clang's -fsanitize=thread option). |
# -fsanitize=thread only works with clang, but tsan=1 implies clang=1 |
# See http://clang.llvm.org/docs/ThreadSanitizer.html |
@@ -777,6 +782,7 @@ |
'clang_use_chrome_plugins%': '<(clang_use_chrome_plugins)', |
'mac_want_real_dsym%': '<(mac_want_real_dsym)', |
'asan%': '<(asan)', |
+ 'lsan%': '<(lsan)', |
'msan%': '<(msan)', |
'tsan%': '<(tsan)', |
'tsan_blacklist%': '<(tsan_blacklist)', |
@@ -1090,7 +1096,7 @@ |
# platforms except Windows, Mac and iOS. |
# TODO(glider): set clang to 1 earlier for ASan and TSan builds so that |
# it takes effect here. |
- ['os_posix==1 and OS!="mac" and OS!="ios" and clang==0 and asan==0 and tsan==0 and msan==0', { |
+ ['os_posix==1 and OS!="mac" and OS!="ios" and clang==0 and asan==0 and lsan==0 and tsan==0 and msan==0', { |
'gcc_version%': '<!(python <(DEPTH)/build/compiler_version.py)', |
}, { |
'gcc_version%': 0, |
@@ -1578,6 +1584,9 @@ |
# runtime is fully adopted. See http://crbug.com/242503. |
'mac_strip_release': 0, |
}], |
+ ['lsan==1', { |
+ 'clang%': 1, |
+ }], |
['tsan==1', { |
'clang%': 1, |
}], |
@@ -3125,9 +3134,9 @@ |
'-fcolor-diagnostics', |
], |
}], |
- # Common options for AddressSanitizer, ThreadSanitizer and |
- # MemorySanitizer. |
- ['asan==1 or tsan==1 or msan==1', { |
+ # Common options for AddressSanitizer, LeakSanitizer, |
+ # ThreadSanitizer and MemorySanitizer. |
+ ['asan==1 or lsan==1 or tsan==1 or msan==1', { |
'target_conditions': [ |
['_toolset=="target"', { |
'cflags': [ |
@@ -3172,6 +3181,21 @@ |
}], |
], |
}], |
+ ['lsan==1', { |
+ 'target_conditions': [ |
+ ['_toolset=="target"', { |
+ 'cflags': [ |
+ '-fsanitize=leak', |
+ ], |
+ 'ldflags': [ |
+ '-fsanitize=leak', |
+ ], |
Nico
2013/06/13 15:54:48
fyi: cflags and ldflags are linux-only (in case yo
|
+ 'defines': [ |
+ 'LEAK_SANITIZER', |
+ ], |
+ }], |
+ ], |
+ }], |
['tsan==1', { |
'target_conditions': [ |
['_toolset=="target"', { |