Fix --with-babeltrace with gcc-4.9.1

Message ID 20140804202907.GA2608@host2.jankratochvil.net
State New, archived
Headers

Commit Message

Jan Kratochvil Aug. 4, 2014, 8:29 p.m. UTC
  Hi,

when I tried to use --with-babeltrace on Fedora Rawhide x86_64
using gcc-4.9.1-3.fc22.x86_64 I got:

checking for libbabeltrace... no
configure: error: babeltrace is missing or unusable
Makefile:7973: recipe for target 'configure-gdb' failed

configure:15890: checking for libbabeltrace
configure:15918: gcc -o conftest -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches  -m64 -mtune=generic   -Werror   -static-libstdc++ -static-libgcc -Wl,-z,relro    conftest.c -lselinux -lncurses -lz -lm  -ldl   /usr/lib64/libbabeltrace.so /usr/lib64/libbabeltrace-ctf.so >&5
conftest.c: In function 'main':
conftest.c:198:21: error: unused variable 'pos' [-Werror=unused-variable]
 struct bt_iter_pos *pos = bt_iter_get_pos (bt_ctf_get_iter (NULL));
                     ^
cc1: all warnings being treated as errors
configure:15918: $? = 1
configure: failed program was:

The patch below fixes it for me.

In configure.ac there is above this check:
  # Append -Werror to CFLAGS so that configure can catch the warning
  # "assignment from incompatible pointer type", which is related to
  # the babeltrace change from 1.0.3 to 1.1.0.  Babeltrace 1.1.0 works
  # in GDB, while babeltrace 1.0.3 is broken.
  # AC_LIB_HAVE_LINKFLAGS may modify CPPFLAGS in it, so it should be
  # safe to save and restore CFLAGS here.
  saved_CFLAGS=$CFLAGS
  CFLAGS="$CFLAGS -Werror"

Maybe it would be easier to use there:
  CFLAGS="$CFLAGS -Werror -Wno-unused-variable"

But maybe -Werror is cross-compiler compatible while -Wno-unused-variable is
not, I have no idea.


Jan
gdb/
2014-08-04  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* configure.ac (--with-babeltrace): Use 'pos'.
	* configure: Regenerate.
  

Comments

Doug Evans Aug. 4, 2014, 11:36 p.m. UTC | #1
On Mon, Aug 4, 2014 at 1:29 PM, Jan Kratochvil
<jan.kratochvil@redhat.com> wrote:
> Hi,
>
> when I tried to use --with-babeltrace on Fedora Rawhide x86_64
> using gcc-4.9.1-3.fc22.x86_64 I got:
>
> checking for libbabeltrace... no
> configure: error: babeltrace is missing or unusable
> Makefile:7973: recipe for target 'configure-gdb' failed
>
> configure:15890: checking for libbabeltrace
> configure:15918: gcc -o conftest -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches  -m64 -mtune=generic   -Werror   -static-libstdc++ -static-libgcc -Wl,-z,relro    conftest.c -lselinux -lncurses -lz -lm  -ldl   /usr/lib64/libbabeltrace.so /usr/lib64/libbabeltrace-ctf.so >&5
> conftest.c: In function 'main':
> conftest.c:198:21: error: unused variable 'pos' [-Werror=unused-variable]
>  struct bt_iter_pos *pos = bt_iter_get_pos (bt_ctf_get_iter (NULL));
>                      ^
> cc1: all warnings being treated as errors
> configure:15918: $? = 1
> configure: failed program was:
>
> The patch below fixes it for me.
>
> In configure.ac there is above this check:
>   # Append -Werror to CFLAGS so that configure can catch the warning
>   # "assignment from incompatible pointer type", which is related to
>   # the babeltrace change from 1.0.3 to 1.1.0.  Babeltrace 1.1.0 works
>   # in GDB, while babeltrace 1.0.3 is broken.
>   # AC_LIB_HAVE_LINKFLAGS may modify CPPFLAGS in it, so it should be
>   # safe to save and restore CFLAGS here.
>   saved_CFLAGS=$CFLAGS
>   CFLAGS="$CFLAGS -Werror"
>
> Maybe it would be easier to use there:
>   CFLAGS="$CFLAGS -Werror -Wno-unused-variable"
>
> But maybe -Werror is cross-compiler compatible while -Wno-unused-variable is
> not, I have no idea.
>
>
> Jan
>
> gdb/
> 2014-08-04  Jan Kratochvil  <jan.kratochvil@redhat.com>
>
>         * configure.ac (--with-babeltrace): Use 'pos'.
>         * configure: Regenerate.
>
> diff --git a/gdb/configure.ac b/gdb/configure.ac
> index 70d0964..07d2f00 100644
> --- a/gdb/configure.ac
> +++ b/gdb/configure.ac
> @@ -2437,6 +2437,7 @@ else
>                         struct bt_ctf_event *event = NULL;
>                         const struct bt_definition *scope;
>
> +                       (void) pos; /* Prevent -Werror=unused-variable.  */
>                         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 b/gdb/configure
> index 809326a..b983d16 100755
> --- a/gdb/configure
> +++ b/gdb/configure
> @@ -15344,6 +15344,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;
>
> +                       (void) pos; /* Prevent -Werror=unused-variable.  */
>                         scope = bt_ctf_get_top_level_scope (event,
>                                                            BT_STREAM_EVENT_HEADER);
>                         bt_ctf_get_uint64 (bt_ctf_get_field (event, scope, "id"));
>

I don't know enough about babeltrace to say whether we can just remove
pos altogether.
I'm happy with the patch as is though.
  
Yao Qi Aug. 6, 2014, 1 a.m. UTC | #2
On 08/05/2014 04:29 AM, Jan Kratochvil wrote:
> gdb/
> 2014-08-04  Jan Kratochvil  <jan.kratochvil@redhat.com>
> 
> 	* configure.ac (--with-babeltrace): Use 'pos'.
> 	* configure: Regenerate.
> 
> diff --git a/gdb/configure.ac b/gdb/configure.ac
> index 70d0964..07d2f00 100644
> --- a/gdb/configure.ac
> +++ b/gdb/configure.ac
> @@ -2437,6 +2437,7 @@ else
>  			struct bt_ctf_event *event = NULL;
>  			const struct bt_definition *scope;
>  
> +			(void) pos; /* Prevent -Werror=unused-variable.  */

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.
  

Patch

diff --git a/gdb/configure.ac b/gdb/configure.ac
index 70d0964..07d2f00 100644
--- a/gdb/configure.ac
+++ b/gdb/configure.ac
@@ -2437,6 +2437,7 @@  else
 			struct bt_ctf_event *event = NULL;
 			const struct bt_definition *scope;
 
+			(void) pos; /* Prevent -Werror=unused-variable.  */
 			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 b/gdb/configure
index 809326a..b983d16 100755
--- a/gdb/configure
+++ b/gdb/configure
@@ -15344,6 +15344,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;
 
+			(void) pos; /* Prevent -Werror=unused-variable.  */
 			scope = bt_ctf_get_top_level_scope (event,
 			      				   BT_STREAM_EVENT_HEADER);
 		        bt_ctf_get_uint64 (bt_ctf_get_field (event, scope, "id"));