You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
iproute/SOURCES/0001-iproute2-fix-build-fai...

67 lines
2.7 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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