[packages/libkcapi] upstream patch to fix build with gcc11 on 32bit archs

atler atler at pld-linux.org
Sat May 29 11:51:32 CEST 2021


commit 143edc46e7491881fb2ea7871f187917471b8594
Author: Jan Palus <atler at pld-linux.org>
Date:   Sat May 29 11:50:54 2021 +0200

    upstream patch to fix build with gcc11 on 32bit archs

 libkcapi-32bit.patch | 83 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 libkcapi.spec        |  2 ++
 2 files changed, 85 insertions(+)
---
diff --git a/libkcapi.spec b/libkcapi.spec
index 7897b71..6d1aac0 100644
--- a/libkcapi.spec
+++ b/libkcapi.spec
@@ -15,6 +15,7 @@ Group:		Libraries
 #Source0Download: https://www.chronox.de/libkcapi.html
 Source0:	https://www.chronox.de/libkcapi/%{name}-%{version}.tar.xz
 # Source0-md5:	f441943c07b7876ee057fb6de9efd674
+Patch0:		%{name}-32bit.patch
 URL:		https://www.chronox.de/libkcapi.html
 BuildRequires:	autoconf >= 2.50
 BuildRequires:	automake
@@ -80,6 +81,7 @@ Statyczna biblioteka libkcapi.
 
 %prep
 %setup -q
+%patch0 -p1
 
 %build
 %{__libtoolize}
diff --git a/libkcapi-32bit.patch b/libkcapi-32bit.patch
new file mode 100644
index 0000000..ef2b0b2
--- /dev/null
+++ b/libkcapi-32bit.patch
@@ -0,0 +1,83 @@
+From 299e5e8c38de9be99b86885c1af60dd5e1cc9888 Mon Sep 17 00:00:00 2001
+From: Ondrej Mosnacek <omosnace at redhat.com>
+Date: Mon, 17 May 2021 22:19:32 +0200
+Subject: [PATCH] docproc: fix -Wconversion warnings on 32-bit
+
+On i686, GCC 11.1.1 complains:
+```
+lib/doc/bin/docproc.c: In function 'find_all_symbols':
+lib/doc/bin/docproc.c:433:17: error: conversion to 'ssize_t' {aka 'int'} from 'unsigned int' may change the sign of the result [-Werror=sign-conversion]
+  433 |         start = all_list_len;
+      |                 ^~~~~~~~~~~~
+lib/doc/bin/docproc.c:441:48: error: comparison of integer expressions of different signedness: 'ssize_t' {aka 'int'} and 'unsigned int' [-Werror=sign-compare]
+  441 |         for (i = 0; i < (int)data_len && start != all_list_len; i++) {
+      |                                                ^~
+cc1: all warnings being treated as errors
+```
+
+Fix this by declaring all of all_list_len, i, count, and start as
+size_t and remove a few casts that are no longer necessary.
+
+Signed-off-by: Ondrej Mosnacek <omosnace at redhat.com>
+Signed-off-by: Stephan Mueller <smueller at chronox.de>
+---
+ lib/doc/bin/docproc.c | 14 +++++++-------
+ 1 file changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/lib/doc/bin/docproc.c b/lib/doc/bin/docproc.c
+index 556d5d4..74b3cdb 100644
+--- a/lib/doc/bin/docproc.c
++++ b/lib/doc/bin/docproc.c
+@@ -77,11 +77,11 @@ FILELINE * docsection;
+ static char *srctree, *kernsrctree;
+ 
+ static char **all_list = NULL;
+-static unsigned int all_list_len = 0;
++static size_t all_list_len = 0;
+ 
+ static void consume_symbol(const char *sym)
+ {
+-	unsigned int i;
++	size_t i;
+ 
+ 	for (i = 0; i < all_list_len; i++) {
+ 		if (!all_list[i])
+@@ -361,11 +361,11 @@ static void find_all_symbols(char *filename)
+ {
+ 	char *vec[4]; /* kerneldoc -list file NULL */
+ 	pid_t pid;
+-	ssize_t ret, i, count, start;
++	ssize_t ret;
+ 	char real_filename[PATH_MAX + 1];
+ 	int pipefd[2];
+ 	char *data, *str;
+-	size_t data_len = 0;
++	size_t i, count, start, data_len = 0;
+ 
+ 	vec[0] = KERNELDOC;
+ 	vec[1] = LIST;
+@@ -424,21 +424,21 @@ static void find_all_symbols(char *filename)
+ 
+ 	count = 0;
+ 	/* poor man's strtok, but with counting */
+-	for (i = 0; i < (int)data_len; i++) {
++	for (i = 0; i < data_len; i++) {
+ 		if (data[i] == '\n') {
+ 			count++;
+ 			data[i] = '\0';
+ 		}
+ 	}
+ 	start = all_list_len;
+-	all_list_len += (unsigned int)count;
++	all_list_len += count;
+ 	all_list = realloc(all_list, sizeof(char *) * all_list_len);
+ 	if (!all_list) {
+ 		perror("realloc");
+ 		exit(1);
+ 	}
+ 	str = data;
+-	for (i = 0; i < (int)data_len && start != all_list_len; i++) {
++	for (i = 0; i < data_len && start != all_list_len; i++) {
+ 		if (data[i] == '\0') {
+ 			all_list[start] = str;
+ 			str = data + i + 1;
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/libkcapi.git/commitdiff/143edc46e7491881fb2ea7871f187917471b8594



More information about the pld-cvs-commit mailing list