This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: libsanitizer merge from upstream r196090
- From: Uros Bizjak <ubizjak at gmail dot com>
- To: "gcc-patches at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>
- Cc: Jakub Jelinek <jakub at redhat dot com>, "H.J. Lu" <hjl dot tools at gmail dot com>, Konstantin Serebryany <konstantin dot s dot serebryany at gmail dot com>, Dodji Seketeli <dodji at redhat dot com>, Marek Polacek <polacek at redhat dot com>, Dmitry Vyukov <dvyukov at google dot com>
- Date: Fri, 10 Jan 2014 10:23:59 +0100
- Subject: Re: libsanitizer merge from upstream r196090
- Authentication-results: sourceware.org; auth=none
- References: <CAFULd4ZrFy-o7GmDh31WRpoxiYwwLpaAY6pOtxCZ9i-+4kfv1A at mail dot gmail dot com>
On Mon, Dec 2, 2013 at 4:49 PM, Uros Bizjak <ubizjak@gmail.com> wrote:
>>> Does it support using libbacktrace in GCC?
>>
>> Not on it's own, but the support in the upstream maintained files
>> is there, so hopefully it will be just a matter of follow-up patch
>> with configury/Makefile etc. stuff, I'll work on it once the merge is
>> committed.
>>
>> What is more important now is to test the patch Kostya posted on non-x86_64
>> targets and/or older kernel headers (say RHEL5, older SLES, etc.).
>
> Unfortunately, the build breaks on CentOS 5.10 (= RHEL5) with:
>
> libtool: compile: /home/uros/gcc-build-xxx/./gcc/xgcc -shared-libgcc
> -B/home/uros/gcc-build-xxx/./gcc -nostdinc++
> -L/home/uros/gcc-build-xxx/x86_64-unknown-linux-gnu/libstdc++-v3/src
> -L/home/uros/gcc-build-xxx/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs
> -L/home/uros/gcc-build-xxx/x86_64-unknown-linux-gnu/libstdc++-v3/libsupc++/.libs
> -B/usr/local/x86_64-unknown-linux-gnu/bin/
> -B/usr/local/x86_64-unknown-linux-gnu/lib/ -isystem
> /usr/local/x86_64-unknown-linux-gnu/include -isystem
> /usr/local/x86_64-unknown-linux-gnu/sys-include -D_GNU_SOURCE -D_DEBUG
> -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS
> -I. -I../../../../gcc-svn/trunk/libsanitizer/sanitizer_common -I
> ../../../../gcc-svn/trunk/libsanitizer/include -Wall -W
> -Wno-unused-parameter -Wwrite-strings -pedantic -Wno-long-long -fPIC
> -fno-builtin -fno-exceptions -fno-rtti -fomit-frame-pointer
> -funwind-tables -fvisibility=hidden -Wno-variadic-macros
> -I../../libstdc++-v3/include
> -I../../libstdc++-v3/include/x86_64-unknown-linux-gnu
> -I../../../../gcc-svn/trunk/libsanitizer/../libstdc++-v3/libsupc++ -g
> -O2 -D_GNU_SOURCE -MT sanitizer_platform_limits_linux.lo -MD -MP -MF
> .deps/sanitizer_platform_limits_linux.Tpo -c
> ../../../../gcc-svn/trunk/libsanitizer/sanitizer_common/sanitizer_platform_limits_linux.cc
> -fPIC -DPIC -o .libs/sanitizer_platform_limits_linux.o
> ../../../../gcc-svn/trunk/libsanitizer/sanitizer_common/sanitizer_platform_limits_linux.cc:54:30:
> fatal error: linux/perf_event.h: No such file or directory
> #include <linux/perf_event.h>
> ^
> compilation terminated.
> gmake[4]: *** [sanitizer_platform_limits_linux.lo] Error 1
> gmake[4]: *** Waiting for unfinished jobs....
I was able to compile sanitizer with r206475 (after Jakub's fixes) and
run the testsuite. However, on 64bit target, I got some failures in
asan and several timeouts in tsan [1].
Looking at:
FAIL: c-c++-common/tsan/atomic_stack.c -O2 output pattern test, is ,
should match WARNING: ThreadSanitizer: data race.*(
WARNING: program timed out.
the execution hangs in:
Program received signal SIGINT, Interrupt.
0x00002aaaac0c5652 in malloc_consolidate () from /lib64/libc.so.6
(gdb) bt
#0 0x00002aaaac0c5652 in malloc_consolidate () from /lib64/libc.so.6
#1 0x00002aaaac0c6461 in mallopt () from /lib64/libc.so.6
#2 0x00002aaaaaf1a0e7 in __tsan::InitializeInterceptors () at
../../../../gcc-svn/trunk/libsanitizer/tsan/tsan_interceptors.cc:2099
#3 0x00002aaaaaef8ab4 in __tsan::Initialize (thr=0x2aaaac3aa9e0
<main_arena>) at
../../../../gcc-svn/trunk/libsanitizer/tsan/tsan_rtl.cc:223
#4 0x00002aaaaaf016a8 in ScopedInterceptor::ScopedInterceptor
(this=0x7fffffffda00, thr=0x2aaaacf0f580, fname=<optimized out>,
pc=46912524510627) at
../../../../gcc-svn/trunk/libsanitizer/tsan/tsan_interceptors.cc:173
#5 0x00002aaaaaf16d77 in __interceptor_memset (dst=0x7fffffffda68,
v=0, size=128)
at ../../../../gcc-svn/trunk/libsanitizer/tsan/tsan_interceptors.cc:621
#6 0x00002aaaac5be5a3 in __pthread_initialize_minimal_internal ()
from /lib64/libpthread.so.0
#7 0x00002aaaac5bddd9 in _init () from /lib64/libpthread.so.0
#8 0x0000000000000000 in ?? ()
The 32 bit target executes tsan tests without problems.
[1] http://gcc.gnu.org/ml/gcc-testresults/2014-01/msg00689.html
Uros.