aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/linux.scm4
-rw-r--r--gnu/packages/patches/perf-gcc-ice.patch13
2 files changed, 16 insertions, 1 deletions
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)