[OE-core] [PATCH v2] gcc-runtime: enable sanitizers

Dan McGregor danismostlikely at gmail.com
Wed Sep 3 15:11:45 UTC 2014


From: Dan McGregor <dan.mcgregor at usask.ca>

AddressSanitizer is a fast memory error detector.
ThreadSanitizer detects data races.
UBSanitizer detectes undefined behaviour.

All consist of compiler instrumentation and a run-time library.
The compiler instrumentation was already enabled, this enables
the run-time library component.

Signed-off-by: Dan McGregor <dan.mcgregor at usask.ca>
---
 meta/recipes-devtools/gcc/gcc-runtime.inc | 29 ++++++++++++++++++++++++++++-
 1 file changed, 28 insertions(+), 1 deletion(-)

diff --git a/meta/recipes-devtools/gcc/gcc-runtime.inc
b/meta/recipes-devtools/gcc/gcc-runtime.inc
index 7ce84f1..e1663d1 100644
--- a/meta/recipes-devtools/gcc/gcc-runtime.inc
+++ b/meta/recipes-devtools/gcc/gcc-runtime.inc
@@ -10,7 +10,9 @@ EXTRA_OECONF_PATHS = "\

 EXTRA_OECONF_append_linuxstdbase = " --enable-clocale=gnu"

-RUNTIMETARGET = "libssp libstdc++-v3 libgomp libatomic"
+SANITIZER_ARCHS = "arm i586 i686 x86-64"
+SANITIZER_TARGET = '${@bb.utils.contains("SANITIZER_ARCHS",
"${TRANSLATED_TARGET_ARCH}", "libsanitizer", "",d)}'
+RUNTIMETARGET = "libssp libstdc++-v3 libgomp libatomic ${SANITIZER_TARGET}"
 #  ?
 # libiberty
 # libmudflap
@@ -88,6 +90,9 @@ PACKAGES = "\
     libatomic \
     libatomic-dev \
     libatomic-staticdev \
+    libsanitizer \
+    libsanitizer-dev \
+    libsanitizer-staticdev \
 "
 # The base package doesn't exist, so we clear the recommends.
 RRECOMMENDS_${PN}-dbg = ""
@@ -171,6 +176,28 @@ FILES_libatomic-dev = "\
 "
 FILES_libatomic-staticdev = "${libdir}/libatomic.a"

+FILES_libsanitizer = " \
+  ${libdir}/libasan.so.* \
+  ${libdir}/liblsan.so.* \
+  ${libdir}/libtsan.so.* \
+  ${libdir}/libubsan.so.*"
+FILES_libsanitizer-dev = " \
+  ${libdir}/libsanitizer.spec \
+  ${libdir}/libasan_preinit.o \
+  ${libdir}/libasan.so \
+  ${libdir}/liblsan.so \
+  ${libdir}/libtsan.so \
+  ${libdir}/libubsan.so \
+  ${libdir}/libasan.la \
+  ${libdir}/liblsan.la \
+  ${libdir}/libtsan.la \
+  ${libdir}/libubsan.la"
+FILES_libsanitizer-staticdev = " \
+  ${libdir}/libasan.a \
+  ${libdir}/liblsan.a \
+  ${libdir}/libtsan.a \
+  ${libdir}/libubsan.a"
+
 do_package_write_ipk[depends] += "virtual/${MLPREFIX}libc:do_packagedata"
 do_package_write_deb[depends] += "virtual/${MLPREFIX}libc:do_packagedata"
 do_package_write_rpm[depends] += "virtual/${MLPREFIX}libc:do_packagedata"
-- 
1.9.3



More information about the Openembedded-core mailing list