[PATCH] Avoid non-C++-enabled babeltrace versions
Andreas Arnez
arnez@linux.vnet.ibm.com
Wed Apr 27 14:24:00 GMT 2016
On Wed, Apr 27 2016, Pedro Alves wrote:
> On 04/27/2016 12:04 PM, Andreas Arnez wrote:
>> In some babeltrace versions before 1.2.0, the header file iterator.h is
>> not fully enabled for use from C++, since it contains an anonymous enum
>> in a struct declaration. This is fixed in later babeltrace versions:
>>
>> https://lists.lttng.org/pipermail/lttng-dev/2013-September/021411.html
>>
>
> The rationale for that commit is actually wrong. There's nothing
> wrong with anonymous enums in structs in C++, and being anonymous is
> actually irrelevant. The problem is that a struct/class establishes a scope
> in C++, but not in C. So outside the struct, to refer to the enum values,
> you'd have to write bt_iter_pos::BT_SEEK_TIME etc.
Right, the enum being anonymous does not cause a problem by itself.
Changed the commit message to avoid that impression.
>
> Anyway ...
>
>> Now that GDB is compiled with C++, the GDB build fails on a system with
>> such a babeltrace version: the compiler complains about a missing
>> declaration of BT_SEEK_BEGIN in ctf.c.
>>
>> This patch enhances the configure check to recognize such babeltrace
>> versions as unusable for GDB.
>>
>> gdb/ChangeLog:
>>
>> * configure.ac: Enhance configure check for babeltrace to reject
>> non-C++-enabled versions.
>> * configure: Regenerate.
>
> OK.
Thanks, pushed after adjusting the commit message.
--
Andreas
More information about the Gdb-patches
mailing list