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

Khem Raj raj.khem at gmail.com
Wed Sep 3 17:51:43 UTC 2014


On Wed, Sep 3, 2014 at 9:26 AM, Dan McGregor <danismostlikely at gmail.com> wrote:
> 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.

looks good.

>
> Signed-off-by: Dan McGregor <dan.mcgregor at usask.ca>
> ---
>  meta/recipes-devtools/gcc/gcc-runtime.inc | 32 ++++++++++++++++++++++++++++++-
>  1 file changed, 31 insertions(+), 1 deletion(-)
>
> diff --git a/meta/recipes-devtools/gcc/gcc-runtime.inc
> b/meta/recipes-devtools/gcc/gcc-runtime.inc
> index 7ce84f1..f1928b4 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,31 @@ 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
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core



More information about the Openembedded-core mailing list