This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH] Avoid non-C++-enabled babeltrace versions
- From: Pedro Alves <palves at redhat dot com>
- To: Andreas Arnez <arnez at linux dot vnet dot ibm dot com>, gdb-patches at sourceware dot org
- Date: Wed, 27 Apr 2016 13:02:42 +0100
- Subject: Re: [PATCH] Avoid non-C++-enabled babeltrace versions
- Authentication-results: sourceware.org; auth=none
- References: <m3twinuxbs dot fsf at oc1027705133 dot ibm dot com>
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