[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#790536: FTBFS with GCC 5: comparison of constant '-1' with boolean expression is always false



Control: reassign -1 src:linux-tools 4.0.2-1
Control: tag -1 fixed-upstream patch

Hi,

Martin Michlmayr <tbm@hp.com> (2015-06-29):
> Package: linux-tools
> Version: 4.0.2-1
> Severity: important
> User: debian-gcc@lists.debian.org
> Usertags: ftbfs-gcc-5

This should have been “Source: linux-tools” rather than “Package:
linux-tools”, reassigning.

Looking upstream, it seems this has been fixed as a side effect of a
performance improvement:
| commit fefd2d9619de3bf0bf02a8622e9f445c3d19cc3f
| Author: He Kuang <hekuang@huawei.com>
| Date:   Sun Feb 15 10:33:37 2015 +0800
| 
|     perf report: Fix branch stack mode cannot be set

> > builtin-report.c: In function 'cmd_report':
> > builtin-report.c:769:23: error: comparison of constant '-1' with boolean expression is always false [-Werror=bool-compare]
> >       branch_call_mode == -1) {
> >                        ^
> > cc1: all warnings being treated as errors
> > Makefile.perf:693: recipe for target '/«PKGBUILDDIR»/debian/build/tools/perf/out/builtin-report.o' failed

diff:
|         if (((branch_mode == -1 && has_br_stack) || branch_mode == 1) &&
| -           branch_call_mode == -1) {
| +           !branch_call_mode) {
|                 sort__mode = SORT_MODE__BRANCH;
|                 symbol_conf.cumulate_callchain = false;
|         }

I'm attaching a source debdiff generated after having added a quilt
patch and generated an updated source package. I suppose some stripping
might be needed before committing that to svn…

Mraw,
KiBi.
diff -Nru linux-tools-4.0.2/debian/changelog linux-tools-4.0.2/debian/changelog
--- linux-tools-4.0.2/debian/changelog	2015-05-11 04:53:13.000000000 +0200
+++ linux-tools-4.0.2/debian/changelog	2015-08-03 20:14:33.000000000 +0200
@@ -1,3 +1,10 @@
+linux-tools (4.0.2-1.1) UNRELEASED; urgency=high
+
+  * Backport upstream commit fefd2d9619 ("perf report: Fix branch stack
+    mode cannot be set") to fix FTBFS with GCC 5 (Closes: #790536).
+
+ -- Cyril Brulebois <kibi@debian.org>  Mon, 03 Aug 2015 20:12:15 +0200
+
 linux-tools (4.0.2-1) unstable; urgency=medium
 
   * New upstream release
diff -Nru linux-tools-4.0.2/debian/control.md5sum linux-tools-4.0.2/debian/control.md5sum
--- linux-tools-4.0.2/debian/control.md5sum	2015-05-11 05:06:30.000000000 +0200
+++ linux-tools-4.0.2/debian/control.md5sum	2015-08-03 20:14:37.000000000 +0200
@@ -1,4 +1,4 @@
 ac3acacf0cde6d2cc424f28241bb0857  debian/bin/gencontrol.py
-78da1757427bbfdfaa8e54c64e5d627a  debian/changelog
+a9673d14f0c75dd3c35b7a3f96ead06d  debian/changelog
 711fd0ce9d080e6cf27efddb74863670  debian/templates/control.main.in
 5205a9db9cb5241ea836fb20502bf045  debian/templates/control.source.in
diff -Nru linux-tools-4.0.2/debian/patches/fix-ftbfs-with-gcc5.patch linux-tools-4.0.2/debian/patches/fix-ftbfs-with-gcc5.patch
--- linux-tools-4.0.2/debian/patches/fix-ftbfs-with-gcc5.patch	1970-01-01 01:00:00.000000000 +0100
+++ linux-tools-4.0.2/debian/patches/fix-ftbfs-with-gcc5.patch	2015-08-03 20:14:16.000000000 +0200
@@ -0,0 +1,54 @@
+From fefd2d9619de3bf0bf02a8622e9f445c3d19cc3f Mon Sep 17 00:00:00 2001
+From: He Kuang <hekuang@huawei.com>
+Date: Sun, 15 Feb 2015 10:33:37 +0800
+Subject: [PATCH] perf report: Fix branch stack mode cannot be set
+
+When perf.data file is obtained using 'perf record -b', perf report
+should use branch stack mode to generate output. But this function is
+broken by improper comparison between boolean and constant -1.
+
+before this patch:
+
+  $ perf report -b -i perf.data
+  Samples: 16  of event 'cycles', Event count (approx.): 3171896
+  Overhead  Command  Shared Object      Symbol
+    13.59%  ls       [kernel.kallsyms]  [k] prio_tree_remove
+    13.16%  ls       [kernel.kallsyms]  [k] change_pte_range
+    12.09%  ls       [kernel.kallsyms]  [k] page_fault
+    12.02%  ls       [kernel.kallsyms]  [k] zap_pte_range
+  ...
+
+after this patch:
+
+  $ perf report -b -i perf.data
+  Samples: 256  of event 'cycles', Event count (approx.): 256
+  Overhead  Command  Source Shared Object  Source Symbol                               Target Shared Object  Target Symbol
+     9.38%  ls       [unknown]             [k] 0000000000000000                        [unknown]             [k] 0000000000000000
+     6.25%  ls       libc-2.19.so          [.] _dl_addr                                libc-2.19.so          [.] _dl_addr
+     6.25%  ls       [kernel.kallsyms]     [k] zap_pte_range                           [kernel.kallsyms]     [k] zap_pte_range
+     6.25%  ls       [kernel.kallsyms]     [k] change_pte_range                        [kernel.kallsyms]     [k] change_pte_range
+     0.39%  ls       [kernel.kallsyms]     [k] prio_tree_remove                        [kernel.kallsyms]     [k] prio_tree_remove
+  ...
+
+Signed-off-by: He Kuang <hekuang@huawei.com>
+Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
+Cc: Paul Mackerras <paulus@samba.org>
+Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
+Cc: Wang Nan <wangnan0@huawei.com>
+Link: http://lkml.kernel.org/r/1423967617-28879-1-git-send-email-hekuang@huawei.com
+Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
+---
+ tools/perf/builtin-report.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/tools/perf/builtin-report.c
++++ b/tools/perf/builtin-report.c
+@@ -766,7 +766,7 @@ repeat:
+ 	 * 0/1 means the user chose a mode.
+ 	 */
+ 	if (((branch_mode == -1 && has_br_stack) || branch_mode == 1) &&
+-	    branch_call_mode == -1) {
++	    !branch_call_mode) {
+ 		sort__mode = SORT_MODE__BRANCH;
+ 		symbol_conf.cumulate_callchain = false;
+ 	}
diff -Nru linux-tools-4.0.2/debian/patches/series linux-tools-4.0.2/debian/patches/series
--- linux-tools-4.0.2/debian/patches/series	2015-05-11 03:59:07.000000000 +0200
+++ linux-tools-4.0.2/debian/patches/series	2015-08-03 20:12:11.000000000 +0200
@@ -4,3 +4,4 @@
 usbip-document-tcp-wrappers.patch
 kbuild-fix-recordmcount-dependency.patch
 usbip-include-uninstalled-linux-usbip-h.patch
+fix-ftbfs-with-gcc5.patch
diff -Nru linux-tools-4.0.2/debian/rules.gen linux-tools-4.0.2/debian/rules.gen
--- linux-tools-4.0.2/debian/rules.gen	2015-05-11 05:06:30.000000000 +0200
+++ linux-tools-4.0.2/debian/rules.gen	2015-08-03 20:14:37.000000000 +0200
@@ -1,5 +1,5 @@
 .NOTPARALLEL:
 binary-arch::
-	$(MAKE) -f debian/rules.real binary-arch UPSTREAMVERSION='4.0' VERSION='4.0' VERSION_DEBIAN='4.0.2-1'
+	$(MAKE) -f debian/rules.real binary-arch UPSTREAMVERSION='4.0' VERSION='4.0' VERSION_DEBIAN='4.0.2-1.1'
 build::
-	$(MAKE) -f debian/rules.real build UPSTREAMVERSION='4.0' VERSION='4.0' VERSION_DEBIAN='4.0.2-1'
+	$(MAKE) -f debian/rules.real build UPSTREAMVERSION='4.0' VERSION='4.0' VERSION_DEBIAN='4.0.2-1.1'

Attachment: signature.asc
Description: Digital signature


Reply to: