aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs/cxxsupp
diff options
context:
space:
mode:
authornkozlovskiy <nmk@ydb.tech>2023-10-11 19:11:46 +0300
committernkozlovskiy <nmk@ydb.tech>2023-10-11 19:33:28 +0300
commit61b3971447e473726d6cdb23fc298e457b4d973c (patch)
treee2a2a864bb7717f7ae6138f6a3194a254dd2c7bb /contrib/libs/cxxsupp
parenta674dc57d88d43c2e8e90a6084d5d2c988e0402c (diff)
downloadydb-61b3971447e473726d6cdb23fc298e457b4d973c.tar.gz
add sanitizers dependencies
Diffstat (limited to 'contrib/libs/cxxsupp')
-rw-r--r--contrib/libs/cxxsupp/libsan/generate_symbolizer.py12
-rw-r--r--contrib/libs/cxxsupp/libsan/inject.c8
-rw-r--r--contrib/libs/cxxsupp/libsan/ya.make26
3 files changed, 46 insertions, 0 deletions
diff --git a/contrib/libs/cxxsupp/libsan/generate_symbolizer.py b/contrib/libs/cxxsupp/libsan/generate_symbolizer.py
new file mode 100644
index 00000000000..d28c64bd926
--- /dev/null
+++ b/contrib/libs/cxxsupp/libsan/generate_symbolizer.py
@@ -0,0 +1,12 @@
+import os
+import sys
+
+
+def main():
+ print 'const char* ya_get_symbolizer_gen() {'
+ print ' return "{}";'.format(os.path.join(os.path.dirname(sys.argv[1]), 'llvm-symbolizer'))
+ print '}'
+
+
+if __name__ == '__main__':
+ main()
diff --git a/contrib/libs/cxxsupp/libsan/inject.c b/contrib/libs/cxxsupp/libsan/inject.c
new file mode 100644
index 00000000000..7790db5f36a
--- /dev/null
+++ b/contrib/libs/cxxsupp/libsan/inject.c
@@ -0,0 +1,8 @@
+#include <unistd.h>
+
+extern const char* ya_get_symbolizer_gen();
+
+const char* ya_get_symbolizer() {
+ const char* path = ya_get_symbolizer_gen();
+ return access(path, X_OK) ? NULL : path;
+}
diff --git a/contrib/libs/cxxsupp/libsan/ya.make b/contrib/libs/cxxsupp/libsan/ya.make
new file mode 100644
index 00000000000..2fb16630be8
--- /dev/null
+++ b/contrib/libs/cxxsupp/libsan/ya.make
@@ -0,0 +1,26 @@
+LIBRARY()
+
+WITHOUT_LICENSE_TEXTS()
+
+LICENSE(YandexOpen)
+
+NO_PLATFORM()
+
+NO_SANITIZE()
+
+NO_SANITIZE_COVERAGE()
+
+OWNER(somov)
+
+PYTHON(
+ generate_symbolizer.py ${CXX_COMPILER}
+ STDOUT symbolizer.c
+)
+
+CFLAGS(-fPIC)
+
+SRCS(
+ GLOBAL inject.c
+)
+
+END()