iproute/0001-iproute2-fix-build-failure-on-ppc64le.patch
Andrea Claudi f8ce705323 iproute-6.7.0-1.f40
* Fri Feb 09 2024 Andrea Claudi <aclaudi@redhat.com> - 6.7.0-1.f40
- New version 6.7.0 (Andrea Claudi) [2247875]
- Fix FTBFS on ppc64le (Andrea Claudi) [2261250]
- Remove libdb-devel dependency from iproute [1788538]
- Enable color output by default [2239120]
Resolves: rhbz#2247875, rhbz#2261250, rhbz#1788538, #rhbz2239120

Signed-off-by: Andrea Claudi <aclaudi@redhat.com>
2024-02-10 00:16:01 +01:00

67 lines
2.7 KiB
Diff
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

From ac4e9bd66d9c8461024dfd3698e120c678eb6cfc Mon Sep 17 00:00:00 2001
Message-ID: <ac4e9bd66d9c8461024dfd3698e120c678eb6cfc.1707519557.git.aclaudi@redhat.com>
From: Andrea Claudi <aclaudi@redhat.com>
Date: Fri, 9 Feb 2024 23:56:20 +0100
Subject: [PATCH] iproute2: fix build failure on ppc64le
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2261250
Upstream Status: posted upstream
commit d13ef7c00b60a50a5e8ddbb7ff138399689d3483
Author: Andrea Claudi <aclaudi@redhat.com>
Date: Fri Feb 9 10:44:55 2024 +0100
iproute2: fix build failure on ppc64le
ppc64le build fails with error on ifstat.c when
-Wincompatible-pointer-types is enabled:
ifstat.c: In function dump_raw_db:
ifstat.c:323:44: error: initialization of long long unsigned int * from incompatible pointer type __u64 * {aka long unsigned int *} [-Wincompatible-pointer-types]
323 | unsigned long long *vals = n->val;
Several other warnings are produced when -Wformat= is set, for example:
ss.c:3244:34: warning: format %llu expects argument of type long long unsigned int, but argument 2 has type __u64 {aka long unsigned int} [-Wformat=]
3244 | out(" rcv_nxt:%llu", s->mptcpi_rcv_nxt);
| ~~~^ ~~~~~~~~~~~~~~~~~
| | |
| | __u64 {aka long unsigned int}
| long long unsigned int
| %lu
This happens because __u64 is defined as long unsigned on ppc64le. As
pointed out by Florian Weimar, we should use -D__SANE_USERSPACE_TYPES__
if we really want to use long long unsigned in iproute2.
This fix the build failure and all the warnings without any change on
the code itself.
Suggested-by: Florian Weimer <fweimer@redhat.com>
Signed-off-by: Andrea Claudi <aclaudi@redhat.com>
Signed-off-by: Andrea Claudi <aclaudi@redhat.com>
---
Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
index 8024d45e..3b9daede 100644
--- a/Makefile
+++ b/Makefile
@@ -60,7 +60,7 @@ CC := gcc
HOSTCC ?= $(CC)
DEFINES += -D_GNU_SOURCE
# Turn on transparent support for LFS
-DEFINES += -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
+DEFINES += -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D__SANE_USERSPACE_TYPES__
CCOPTS = -O2 -pipe
WFLAGS := -Wall -Wstrict-prototypes -Wmissing-prototypes
WFLAGS += -Wmissing-declarations -Wold-style-definition -Wformat=2
--
2.43.0