This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Avoid non-C++-enabled babeltrace versions


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.

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,
Pedro Alves


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]