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.
This commit is contained in:
Ludovic Courtès 2018-06-04 13:14:12 +02:00
parent 831f07a009
commit 7394e264fc
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
3 changed files with 17 additions and 1 deletions

View File

@ -982,6 +982,7 @@ dist_patch_DATA = \
%D%/packages/patches/patchelf-rework-for-arm.patch \ %D%/packages/patches/patchelf-rework-for-arm.patch \
%D%/packages/patches/patchutils-xfail-gendiff-tests.patch \ %D%/packages/patches/patchutils-xfail-gendiff-tests.patch \
%D%/packages/patches/patch-hurd-path-max.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-file-path-CVE-2017-6512.patch \
%D%/packages/patches/perl-autosplit-default-time.patch \ %D%/packages/patches/perl-autosplit-default-time.patch \
%D%/packages/patches/perl-dbd-mysql-CVE-2017-10788.patch \ %D%/packages/patches/perl-dbd-mysql-CVE-2017-10788.patch \

View File

@ -2500,7 +2500,9 @@ in a digital read-out.")
(package (package
(name "perf") (name "perf")
(version (package-version linux-libre)) (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) (build-system gnu-build-system)
(arguments (arguments
'(#:phases '(#:phases

View File

@ -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)