]> git.pld-linux.org Git - packages/libkcapi.git/blob - libkcapi-32bit.patch
upstream patch to fix build with gcc11 on 32bit archs
[packages/libkcapi.git] / libkcapi-32bit.patch
1 From 299e5e8c38de9be99b86885c1af60dd5e1cc9888 Mon Sep 17 00:00:00 2001
2 From: Ondrej Mosnacek <omosnace@redhat.com>
3 Date: Mon, 17 May 2021 22:19:32 +0200
4 Subject: [PATCH] docproc: fix -Wconversion warnings on 32-bit
5
6 On i686, GCC 11.1.1 complains:
7 ```
8 lib/doc/bin/docproc.c: In function 'find_all_symbols':
9 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]
10   433 |         start = all_list_len;
11       |                 ^~~~~~~~~~~~
12 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]
13   441 |         for (i = 0; i < (int)data_len && start != all_list_len; i++) {
14       |                                                ^~
15 cc1: all warnings being treated as errors
16 ```
17
18 Fix this by declaring all of all_list_len, i, count, and start as
19 size_t and remove a few casts that are no longer necessary.
20
21 Signed-off-by: Ondrej Mosnacek <omosnace@redhat.com>
22 Signed-off-by: Stephan Mueller <smueller@chronox.de>
23 ---
24  lib/doc/bin/docproc.c | 14 +++++++-------
25  1 file changed, 7 insertions(+), 7 deletions(-)
26
27 diff --git a/lib/doc/bin/docproc.c b/lib/doc/bin/docproc.c
28 index 556d5d4..74b3cdb 100644
29 --- a/lib/doc/bin/docproc.c
30 +++ b/lib/doc/bin/docproc.c
31 @@ -77,11 +77,11 @@ FILELINE * docsection;
32  static char *srctree, *kernsrctree;
33  
34  static char **all_list = NULL;
35 -static unsigned int all_list_len = 0;
36 +static size_t all_list_len = 0;
37  
38  static void consume_symbol(const char *sym)
39  {
40 -       unsigned int i;
41 +       size_t i;
42  
43         for (i = 0; i < all_list_len; i++) {
44                 if (!all_list[i])
45 @@ -361,11 +361,11 @@ static void find_all_symbols(char *filename)
46  {
47         char *vec[4]; /* kerneldoc -list file NULL */
48         pid_t pid;
49 -       ssize_t ret, i, count, start;
50 +       ssize_t ret;
51         char real_filename[PATH_MAX + 1];
52         int pipefd[2];
53         char *data, *str;
54 -       size_t data_len = 0;
55 +       size_t i, count, start, data_len = 0;
56  
57         vec[0] = KERNELDOC;
58         vec[1] = LIST;
59 @@ -424,21 +424,21 @@ static void find_all_symbols(char *filename)
60  
61         count = 0;
62         /* poor man's strtok, but with counting */
63 -       for (i = 0; i < (int)data_len; i++) {
64 +       for (i = 0; i < data_len; i++) {
65                 if (data[i] == '\n') {
66                         count++;
67                         data[i] = '\0';
68                 }
69         }
70         start = all_list_len;
71 -       all_list_len += (unsigned int)count;
72 +       all_list_len += count;
73         all_list = realloc(all_list, sizeof(char *) * all_list_len);
74         if (!all_list) {
75                 perror("realloc");
76                 exit(1);
77         }
78         str = data;
79 -       for (i = 0; i < (int)data_len && start != all_list_len; i++) {
80 +       for (i = 0; i < data_len && start != all_list_len; i++) {
81                 if (data[i] == '\0') {
82                         all_list[start] = str;
83                         str = data + i + 1;
This page took 0.114384 seconds and 3 git commands to generate.