Message ID | 506F7C3C.7080607@codesourcery.com |
---|---|
State | New |
Headers | show |
On 10/06/2012 02:33 AM, Joe Seymour wrote: > I'm seeing tr2/headers/all.cc fail in the libstdc++ testsuite: > > In file included from > src/gcc-mainline/libstdc++-v3/testsuite/tr2/headers/all.cc:22:0: > /scratch/jseymour/mainline/i686-pc-linux-gnu/install/opt/codesourcery/include/c++/4.8.0/tr2/dynamic_bitset:42:27: > fatal error: cxxabi_forced.h: No such file or directory > #include <cxxabi_forced.h> > ^ > compilation terminated. > > > From libstdc++-v3/libsupc++/Makefile.am: >> bits_HEADERS = \ >> atomic_lockfree_defines.h cxxabi_forced.h \ >> exception_defines.h exception_ptr.h hash_bytes.h nested_exception.h > Looking at how other headers in that list are treated, I believe it is the > include of cxxabi_forced.h in dynamic_bitset at fault. This patch corrects it. I'm pretty sure you are right. Any idea why the test isn't failing for anybody else? Paolo.
On 10/06/12 01:50, Paolo Carlini wrote: > On 10/06/2012 02:33 AM, Joe Seymour wrote: >> I'm seeing tr2/headers/all.cc fail in the libstdc++ testsuite: >> >> In file included from >> src/gcc-mainline/libstdc++-v3/testsuite/tr2/headers/all.cc:22:0: >> /scratch/jseymour/mainline/i686-pc-linux-gnu/install/opt/codesourcery/include/c++/4.8.0/tr2/dynamic_bitset:42:27: >> fatal error: cxxabi_forced.h: No such file or directory >> #include <cxxabi_forced.h> >> ^ >> compilation terminated. >> >> >> From libstdc++-v3/libsupc++/Makefile.am: >>> bits_HEADERS = \ >>> atomic_lockfree_defines.h cxxabi_forced.h \ >>> exception_defines.h exception_ptr.h hash_bytes.h nested_exception.h >> Looking at how other headers in that list are treated, I believe it is the >> include of cxxabi_forced.h in dynamic_bitset at fault. This patch corrects it. > I'm pretty sure you are right. Any idea why the test isn't failing for > anybody else? I was surprised not to find any other references to this failure as well, especially as I observed the failure with pristine FSF sources. I've had a closer look: * We (CodeSourcery/Mentor) test the installation directory, with something like: g++ -D_GLIBCXX_ASSERT -fmessage-length=0 -DLOCALEDIR="." -I/scratch/jseymour/mainline/i686-pc-linux-gnu/src/gcc-mainline/libstdc++-v3/testsuite/util \ /scratch/jseymour/mainline/i686-pc-linux-gnu/src/gcc-mainline/libstdc++-v3/testsuite/tr2/headers/all.cc -std=gnu++0x -S -o all.s * The standard "make check" invocation tests the objdir/srcdir with a longer command, passing various paths etc, in particular: -I/scratch/jseymour/mainline/i686-pc-linux-gnu/src/gcc-mainline/libstdc++-v3/libsupc++ Because all the headers in libstdc++-v3 are in that directory cxxabi_forced.h is found successfully. It is the Makefile that places it in a different directory during installation. I suppose to get this test working correctly, we need to move the files listed in bits_HEADERS into a bits/ directory in the source tree, then make appropriate changes to cater for the adjusted directory layout. Joe
Index: libstdc++-v3/include/tr2/dynamic_bitset =================================================================== --- libstdc++-v3/include/tr2/dynamic_bitset (revision 192151) +++ libstdc++-v3/include/tr2/dynamic_bitset (working copy) @@ -39,7 +39,7 @@ #include <bits/functexcept.h> // For invalid_argument, out_of_range, // overflow_error #include <iosfwd> -#include <cxxabi_forced.h> +#include <bits/cxxabi_forced.h> namespace std _GLIBCXX_VISIBILITY(default) {