[PATCH] Fix inclusion of cxxabi_forced.h in dynamic_bitset

Joe Seymour jseymour@codesourcery.com
Mon Oct 8 15:14:00 GMT 2012

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="."
  -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:


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.


More information about the Libstdc++ mailing list