This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [patch+7.8?] Fix --with-babeltrace with gcc-4.9.1
- From: Doug Evans <dje at google dot com>
- To: Jan Kratochvil <jan dot kratochvil at redhat dot com>
- Cc: Yao Qi <yao at codesourcery dot com>, gdb-patches <gdb-patches at sourceware dot org>
- Date: Tue, 12 Aug 2014 13:32:55 -0700
- Subject: Re: [patch+7.8?] Fix --with-babeltrace with gcc-4.9.1
- Authentication-results: sourceware.org; auth=none
- References: <20140804202907 dot GA2608 at host2 dot jankratochvil dot net> <53E17E14 dot 8070104 at codesourcery dot com> <20140812192204 dot GA13299 at host2 dot jankratochvil dot net>
On Tue, Aug 12, 2014 at 12:22 PM, Jan Kratochvil
<jan.kratochvil@redhat.com> wrote:
> On Wed, 06 Aug 2014 03:00:04 +0200, Yao Qi wrote:
>> This patch fixes https://sourceware.org/bugzilla/show_bug.cgi?id=17104
>> Please mention it in ChangeLog entry. I had a patch to this PR, but
>> didn't follow it up. Yours is fine.
>
> I think the one of yours is better, posting it here for new approval.
>
> IMO it could go also for 7.8.1.
>
>
> My original reproducer is wrong, one also has to specify -Wall in CFLAGS:
> CFLAGS=-Wall ./configure --with-babeltrace; make
>
>
> Thanks,
> Jan
>
> gdb/
> 2014-07-01 Yao Qi <yao@codesourcery.com>
>
> PR build/17104
> * configure.ac: Use local variable 'pos'.
> * configure: Regenerated.
>
> diff --git a/gdb/configure b/gdb/configure
> index a4c0a8c..7956aa7 100755
> --- a/gdb/configure
> +++ b/gdb/configure
> @@ -15234,6 +15234,7 @@ struct bt_iter_pos *pos = bt_iter_get_pos (bt_ctf_get_iter (NULL));
> struct bt_ctf_event *event = NULL;
> const struct bt_definition *scope;
>
> + bt_iter_set_pos (bt_ctf_get_iter (NULL), pos);
> scope = bt_ctf_get_top_level_scope (event,
> BT_STREAM_EVENT_HEADER);
> bt_ctf_get_uint64 (bt_ctf_get_field (event, scope, "id"));
> diff --git a/gdb/configure.ac b/gdb/configure.ac
> index a2ac15f..fc1d8bc 100644
> --- a/gdb/configure.ac
> +++ b/gdb/configure.ac
> @@ -2417,6 +2417,7 @@ else
> struct bt_ctf_event *event = NULL;
> const struct bt_definition *scope;
>
> + bt_iter_set_pos (bt_ctf_get_iter (NULL), pos);
> scope = bt_ctf_get_top_level_scope (event,
> BT_STREAM_EVENT_HEADER);
> bt_ctf_get_uint64 (bt_ctf_get_field (event, scope, "id"));
>
Hi.
This seems like an excessive amount of code just to test whether a
library exists.
Do we really need all of it?
E.g., can we just delete "pos" and the function call that initializes it?
struct bt_iter_pos *pos = bt_iter_get_pos (bt_ctf_get_iter (NULL));
Or, if for some reason we need to test whether bf_ctf_get_iter exists,
can we just
call it and discard the result? [And similarly for the rest of the code.]
None of this code gets run anyways.