On Fri, Nov 23, 2012 at 4:47 PM, Jakub Jelinek <ja...@redhat.com> wrote: > On Fri, Nov 23, 2012 at 04:35:29PM +0400, Konstantin Serebryany wrote: >> > Ok, provided it has been properly tested >> >> The upstream library is continuously tested on Linux, Mac, Windows and >> Android >> using the existing test suite (unfortunately, the build bots are >> private so far). > > Yeah, but one thing is testing it inside of llvm built with clang, and > another one to test what is in the gcc tree. We really don't want to break > bootstrap again (happened for some time immediately after asan was merged > and for 4 revisions again for i686-linux when tsan was merged). > >> > make -C gcc check-g{cc,++} RUNTESTFLAGS='--target_board=unix\{-m32,-m64\} >> > asan.exp' >> >> The tests fail even w/o this change for me. >> The reports look like >> #0 0x555c96f2 in ??:0 >> #1 0x80488d1 in ??:0 >> i.e. either the debug info is missing or the symbolizer script is not >> working. >> Any suggestion? > > That is strange. What addr2line you are using? If you look at
I have ubuntu 10.04 (pretty old, I admit) and use it's standard addr2line. > gcc/testsuite/gcc/gcc.log > there should be lines like > > Executing on host: addr2line -f -e /usr/lib64/libc-2.15.so 0x21734 (timeout > = 300) > spawn -ignore SIGHUP addr2line -f -e /usr/lib64/libc-2.15.so 0x21734 I get these: Executing on host: addr2line -f -e /usr/local/google/kcc/gcc-build/gcc/testsuite/gcc/memcmp-1.exe 0x80488d1 0x8048560 (timeout = 300) spawn addr2line -f -e /usr/local/google/kcc/gcc-build/gcc/testsuite/gcc/memcmp-1.exe 0x80488d1 0x8048560 BFD: Dwarf Error: found dwarf version '4', this reader only handles version 2 and 3 information. main ??:0 BFD: Dwarf Error: found dwarf version '0', this reader only handles version 2 and 3 information. _start ??:0 Let me try to build gcc on a newer ubuntu 12.04 and see what happens. Do you think it may help? > ?? > ??:0 > Executing on host: addr2line -f -e > /usr/src/gcc/obj2/gcc/testsuite/gcc/memcmp-1.exe 0x400a19 (timeout = 300) > spawn -ignore SIGHUP addr2line -f -e > /usr/src/gcc/obj2/gcc/testsuite/gcc/memcmp-1.exe 0x400a19 > main > ??:0 > Executing on host: addr2line -f -e > /usr/src/gcc/obj2/x86_64-unknown-linux-gnu/libsanitizer/asan/.libs/libasan.so.0.0.0 > 0xb52f (timeout = 300) > spawn -ignore SIGHUP addr2line -f -e > /usr/src/gcc/obj2/x86_64-unknown-linux-gnu/libsanitizer/asan/.libs/libasan.so.0.0.0 > 0xb52f > memcmp > ??:0 > > if using oldish addr2line which understands DWARF4, but doesn't cope with > constant class DW_AT_high_pc that GCC 4.8 now emits, or > like: > > Executing on host: addr2line -f -e /usr/lib64/libc-2.15.so 0x21734 (timeout > = 300) > spawn -ignore SIGHUP addr2line -f -e /usr/lib64/libc-2.15.so 0x21734 > ?? > ??:0 > Executing on host: addr2line -f -e > /usr/src/gcc/obj2/gcc/testsuite/gcc/memcmp-1.exe 0x400a19 (timeout = 300) > spawn -ignore SIGHUP addr2line -f -e > /usr/src/gcc/obj2/gcc/testsuite/gcc/memcmp-1.exe 0x400a19 > main > /usr/src/gcc/gcc/testsuite/c-c++-common/asan/memcmp-1.c:12 > Executing on host: addr2line -f -e > /usr/src/gcc/obj2/x86_64-unknown-linux-gnu/libsanitizer/asan/.libs/libasan.so.0.0.0 > 0xb52f (timeout = 300) > spawn -ignore SIGHUP addr2line -f -e > /usr/src/gcc/obj2/x86_64-unknown-linux-gnu/libsanitizer/asan/.libs/libasan.so.0.0.0 > 0xb52f > __interceptor_memcmp > /usr/src/gcc/obj2/x86_64-unknown-linux-gnu/libsanitizer/asan/../../../../libsanitizer/asan/asan_interceptors.cc:218 > > if using recent enough addr2line. > >> Ooops. I actually edited it. How do I regenerate it? (I beg my pardon >> for a complete ignorance) > > Well, in this case there should be really no difference, regeneration > should generate exactly what you hand edited I think. > But generally, one needs to use the standard GCC versions of > autoconf/automake (right now 2.64 and 1.11), Gotcha! This is what confused me (I have autoconf 2.65 and was surprised to see it not working...) > and just run autoconf > (autoheader not needed for libsanitizer) and automake. > As people usually have different versions of the autotools installed, I > usually do > PATH=~/automake-1.11/bin:~/autoconf-2.64/bin:$PATH autoconf > PATH=~/automake-1.11/bin:~/autoconf-2.64/bin:$PATH automake > where I've installed autoconf and automake with the ~/automake-1.11 resp. > ~/autoconf-2.64 --prefix. > > Jakub