PATCH: PR other/58374: Wrong target check in configure.ac in libvtv

Caroline Tice cmtice@google.com
Tue Sep 10 17:01:00 GMT 2013


On Tue, Sep 10, 2013 at 9:10 AM, Jakub Jelinek <jakub@redhat.com> wrote:
> On Tue, Sep 10, 2013 at 08:55:35AM -0700, Caroline Tice wrote:
>> Based on the errors you are reporting, my guess is that you did not
>> configure with --enable-vtable-verifiy.  The testsuite in libvtv will
>
> I'm not, but it doesn't make sense if you don't configure gcc in certain
> non-default way, you get dozens of FAILs during the make check.
> If libvtv doesn't work at all without --enable-vtable-verify, perhaps it
> shouldn't be built, or at least make check shouldn't be run?

I didn't realize the testsuite in libvtv would be run unless
explicitly requested.  I agree that there should be a test to see
whether --enable-vtable-verify was set before attempting to run the
libvtv testsuite.  This is not my area of expertise and if someone
could point me to an example or show me where/how to put such a
conditional test, I would appreciate it.

> Does --enable-vtable-verify affect anything but the 4 extra objects built in
> libgcc subdir that aren't actually linked into libgcc / libgcc_s?
>

--enable-vtable-verify also affects how libstdc++ is built. That is
for sure what is causing the error you are seeing below.  That
particular test case (template-list-iostream) tests whether a
particular libstdc++ class passes verification.  If libstdc++ was not
built with vtable verification, then it will fail exactly as shown
below.

>> I have never seen that; if you could forward the complaints/errors to
>> me I would appreciate it.
>
> E.g.
> Running /usr/src/gcc/libvtv/testsuite/libvtv.cc/vtv.exp ...
> *** Potential vtable pointer corruption detected!!
>  ***: ./template-list-iostream.exe terminated
> ======= Backtrace: =========
> /lib64/libc.so.6(__fortify_fail+0x37)[0x7f2cda8134d7]
> /usr/src/gcc/obj716/x86_64-unknown-linux-gnu/./libvtv/.libs/libvtv.so.0(+0x3289)[0x7f2cdb2dd289]
> /usr/src/gcc/obj716/x86_64-unknown-linux-gnu/./libvtv/.libs/libvtv.so.0(+0x338f)[0x7f2cdb2dd38f]
> /usr/src/gcc/obj716/x86_64-unknown-linux-gnu/./libvtv/.libs/libvtv.so.0(_Z24__VLTVerifyVtablePointerPPvPKv+0xb0)[0x7f2cdb2dd570]
> ./template-list-iostream.exe[0x4012c2]
> ./template-list-iostream.exe[0x401366]
> /lib64/libc.so.6(__libc_start_main+0xf5)[0x7f2cda72b735]
> ./template-list-iostream.exe[0x401131]
> ======= Memory map: ========
> 00400000-00404000 r-xp 00000000 fd:02 18150808                           /usr/src/gcc/obj716/x86_64-unknown-linux-gnu/libvtv/testsuite/template-list-iostream.exe
> 00603000-00604000 rw-p 00003000 fd:02 18150808                           /usr/src/gcc/obj716/x86_64-unknown-linux-gnu/libvtv/testsuite/template-list-iostream.exe
> 00604000-00605000 r--p 00004000 fd:02 18150808                           /usr/src/gcc/obj716/x86_64-unknown-linux-gnu/libvtv/testsuite/template-list-iostream.exe
> 00605000-00606000 rw-p 00005000 fd:02 18150808                           /usr/src/gcc/obj716/x86_64-unknown-linux-gnu/libvtv/testsuite/template-list-iostream.exe
> 01867000-01888000 rw-p 00000000 00:00 0                                  [heap]
> 7f2cda70a000-7f2cda8b6000 r-xp 00000000 fd:00 2884204                    /usr/lib64/libc-2.15.so
> 7f2cda8b6000-7f2cdaab6000 ---p 001ac000 fd:00 2884204                    /usr/lib64/libc-2.15.so
> 7f2cdaab6000-7f2cdaaba000 r--p 001ac000 fd:00 2884204                    /usr/lib64/libc-2.15.so
> 7f2cdaaba000-7f2cdaabc000 rw-p 001b0000 fd:00 2884204                    /usr/lib64/libc-2.15.so
> 7f2cdaabc000-7f2cdaac1000 rw-p 00000000 00:00 0
> 7f2cdaac1000-7f2cdaad6000 r-xp 00000000 fd:02 17643616                   /usr/src/gcc/obj716/gcc/libgcc_s.so.1
> 7f2cdaad6000-7f2cdacd5000 ---p 00015000 fd:02 17643616                   /usr/src/gcc/obj716/gcc/libgcc_s.so.1
> 7f2cdacd5000-7f2cdacd6000 rw-p 00014000 fd:02 17643616                   /usr/src/gcc/obj716/gcc/libgcc_s.so.1
> 7f2cdacd6000-7f2cdadd0000 r-xp 00000000 fd:00 2901742                    /usr/lib64/libm-2.15.so
> 7f2cdadd0000-7f2cdafcf000 ---p 000fa000 fd:00 2901742                    /usr/lib64/libm-2.15.so
> 7f2cdafcf000-7f2cdafd0000 r--p 000f9000 fd:00 2901742                    /usr/lib64/libm-2.15.so
> 7f2cdafd0000-7f2cdafd1000 rw-p 000fa000 fd:00 2901742                    /usr/lib64/libm-2.15.so
> 7f2cdafd1000-7f2cdb0bc000 r-xp 00000000 fd:02 18130055                   /usr/src/gcc/obj716/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.19
> 7f2cdb0bc000-7f2cdb2bb000 ---p 000eb000 fd:02 18130055                   /usr/src/gcc/obj716/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.19
> 7f2cdb2bb000-7f2cdb2c3000 r--p 000ea000 fd:02 18130055                   /usr/src/gcc/obj716/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.19
> 7f2cdb2c3000-7f2cdb2c5000 rw-p 000f2000 fd:02 18130055                   /usr/src/gcc/obj716/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.19
> 7f2cdb2c5000-7f2cdb2da000 rw-p 00000000 00:00 0
> 7f2cdb2da000-7f2cdb2e2000 r-xp 00000000 fd:02 18130772                   /usr/src/gcc/obj716/x86_64-unknown-linux-gnu/libvtv/.libs/libvtv.so.0.0.0
> 7f2cdb2e2000-7f2cdb4e1000 ---p 00008000 fd:02 18130772                   /usr/src/gcc/obj716/x86_64-unknown-linux-gnu/libvtv/.libs/libvtv.so.0.0.0
> 7f2cdb4e1000-7f2cdb4e2000 rw-p 00007000 fd:02 18130772                   /usr/src/gcc/obj716/x86_64-unknown-linux-gnu/libvtv/.libs/libvtv.so.0.0.0
> 7f2cdb4e2000-7f2cdb4e4000 r--p 00008000 fd:02 18130772                   /usr/src/gcc/obj716/x86_64-unknown-linux-gnu/libvtv/.libs/libvtv.so.0.0.0
> 7f2cdb4e4000-7f2cdb4e5000 rw-p 0000a000 fd:02 18130772                   /usr/src/gcc/obj716/x86_64-unknown-linux-gnu/libvtv/.libs/libvtv.so.0.0.0
> 7f2cdb4e5000-7f2cdb505000 r-xp 00000000 fd:00 2884197                    /usr/lib64/ld-2.15.so
> 7f2cdb6ed000-7f2cdb6f2000 rw-p 00000000 00:00 0
> 7f2cdb6f4000-7f2cdb6f6000 rw-p 00000000 00:00 0
> 7f2cdb6f6000-7f2cdb701000 r--p 00000000 00:00 0
> 7f2cdb701000-7f2cdb704000 rw-p 00000000 00:00 0
> 7f2cdb704000-7f2cdb705000 r--p 0001f000 fd:00 2884197                    /usr/lib64/ld-2.15.so
> 7f2cdb705000-7f2cdb706000 rw-p 00020000 fd:00 2884197                    /usr/lib64/ld-2.15.so
> 7f2cdb706000-7f2cdb707000 rw-p 00000000 00:00 0
> 7fff6ef04000-7fff6ef26000 rw-p 00000000 00:00 0                          [stack]
> 7fff6ef51000-7fff6ef53000 r-xp 00000000 00:00 0                          [vdso]
> ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]
> FAIL: libvtv.cc/template-list-iostream.cc -O0 -fvtable-verify=std execution test
>
>         Jakub


-- Caroline
cmtice@google.com



More information about the Gcc-patches mailing list