kumquat-buildroot/package/x11r7/xserver_xorg-server/0006-compiler.h-don-t-define-inb-outb-and-friends-on-mips.patch

74 lines
2.4 KiB
Diff
Raw Normal View History

From de5e24b5036a1a5a877f8f30169e3497d0e296d6 Mon Sep 17 00:00:00 2001
From: Julien Cristau <jcristau@debian.org>
Date: Wed, 6 Jan 2021 10:20:53 +0100
Subject: [PATCH] compiler.h: don't define inb/outb and friends on mips
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The definition relies on IOPortBase, which is only ever set in
hw/xfree86/os-support/bsd/arm_video.c
This caused build failures on linux/mips with GCC 10, due to this
change (from https://gcc.gnu.org/gcc-10/changes.html#c):
"GCC now defaults to -fno-common. As a result, global variable accesses
are more efficient on various targets. In C, global variables with
multiple tentative definitions now result in linker errors. With
-fcommon such definitions are silently merged during linking."
As a result anything including compiler.h would get its own definition
of IOPortBase and the linker would error out.
Signed-off-by: Raphaël Mélotte <raphael.melotte@mind.be>
---
hw/xfree86/common/compiler.h | 8 ++------
hw/xfree86/os-support/bsd/arm_video.c | 3 +++
2 files changed, 5 insertions(+), 6 deletions(-)
diff --git a/hw/xfree86/common/compiler.h b/hw/xfree86/common/compiler.h
index 2b2008b3f..eb788d3fd 100644
--- a/hw/xfree86/common/compiler.h
+++ b/hw/xfree86/common/compiler.h
@@ -518,14 +518,10 @@ xf86WriteMmio32Le(__volatile__ void *base, const unsigned long offset,
barrier();
}
-#elif defined(__mips__) || (defined(__arm32__) && !defined(__linux__))
-#if defined(__arm32__) || defined(__mips64)
+#elif defined(__arm32__) && !defined(__linux__)
#define PORT_SIZE long
-#else
-#define PORT_SIZE short
-#endif
-_X_EXPORT unsigned int IOPortBase; /* Memory mapped I/O port area */
+extern _X_EXPORT unsigned int IOPortBase; /* Memory mapped I/O port area */
static __inline__ void
outb(unsigned PORT_SIZE port, unsigned char val)
diff --git a/hw/xfree86/os-support/bsd/arm_video.c b/hw/xfree86/os-support/bsd/arm_video.c
index dd1020e33..180d70543 100644
--- a/hw/xfree86/os-support/bsd/arm_video.c
+++ b/hw/xfree86/os-support/bsd/arm_video.c
@@ -65,6 +65,7 @@
#include "xf86Priv.h"
#include "xf86_OSlib.h"
#include "xf86OSpriv.h"
+#include "compiler.h"
#if defined(__NetBSD__) && !defined(MAP_FILE)
#define MAP_FLAGS MAP_SHARED
@@ -162,6 +163,8 @@ xf86DisableIO()
#if defined(USE_ARC_MMAP) || defined(__arm32__)
+unsigned int IOPortBase;
+
Bool
xf86EnableIO()
{
--
2.32.0