summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2018-06-04 13:14:12 +0200
committerLudovic Courtès <ludo@gnu.org>2018-06-04 14:03:54 +0200
commit7394e264fced0d17dcbe98881624be8fa83165e3 (patch)
tree54606cdd67c6c224b3d778151f22adab330955b8
parent831f07a009e2a4d84d257ff6e07341971b0fb6e8 (diff)
downloadguix-7394e264fced0d17dcbe98881624be8fa83165e3.tar.gz
gnu: perf: Work around GCC bug.
Works around <https://bugs.gnu.org/31708>.

* gnu/packages/patches/perf-gcc-ice.patch: New patch.
* gnu/packages/linux.scm (perf)[source]: Use it.
* gnu/local.mk (dist_patch_DATA): Add it.
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/linux.scm4
-rw-r--r--gnu/packages/patches/perf-gcc-ice.patch13
3 files changed, 17 insertions, 1 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index d75ac4a83e..0ff25909b8 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -982,6 +982,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/patchelf-rework-for-arm.patch		\
   %D%/packages/patches/patchutils-xfail-gendiff-tests.patch	\
   %D%/packages/patches/patch-hurd-path-max.patch		\
+  %D%/packages/patches/perf-gcc-ice.patch			\
   %D%/packages/patches/perl-file-path-CVE-2017-6512.patch	\
   %D%/packages/patches/perl-autosplit-default-time.patch	\
   %D%/packages/patches/perl-dbd-mysql-CVE-2017-10788.patch	\
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 8c12141260..4d521f71b3 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -2500,7 +2500,9 @@ in a digital read-out.")
   (package
     (name "perf")
     (version (package-version linux-libre))
-    (source (package-source linux-libre))
+    (source (origin
+              (inherit (package-source linux-libre))
+              (patches (search-patches "perf-gcc-ice.patch"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
diff --git a/gnu/packages/patches/perf-gcc-ice.patch b/gnu/packages/patches/perf-gcc-ice.patch
new file mode 100644
index 0000000000..58ab5359c2
--- /dev/null
+++ b/gnu/packages/patches/perf-gcc-ice.patch
@@ -0,0 +1,13 @@
+Work around this GCC ICE: <https://bugs.gnu.org/31708>.
+
+--- linux-4.16.13/tools/perf/util/header.c	2018-06-04 11:30:39.368146035 +0200
++++ linux-4.16.13/tools/perf/util/header.c	2018-06-04 11:34:04.667212378 +0200
+@@ -135,7 +135,7 @@ int do_write(struct feat_fd *ff, const v
+ int write_padded(struct feat_fd *ff, const void *bf,
+ 		 size_t count, size_t count_aligned)
+ {
+-	static const char zero_buf[NAME_ALIGN];
++	static const char zero_buf[NAME_ALIGN] = { 0 };
+ 	int err = do_write(ff, bf, count);
+ 
+ 	if (!err)