mirror of
https://git.busybox.net/buildroot.git
synced 2024-11-27 15:33:28 +08:00
package/x11r7/xserver_xorg-server: fix building on mips with GCC10
Port the following upstream commit:
https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/591/diffs?commit_id=0148a15da1616a868d71abe1b56e3f28cc79533c
This fixes the following build error on mips with GCC10:
CCLD libint10.la
buildroot/output/host/lib/gcc/mips64el-buildroot-linux-gnu/10.3.0/../../../../mips64el-buildroot-linux-gnu/bin/ld: .libs/helper_mem.o:(.bss+0x0): multiple definition of `IOPortBase'; .libs/helper_exec.o:(.bss+0x0): first defined here
Signed-off-by: Raphaël Mélotte <raphael.melotte@mind.be>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
(cherry picked from commit 2e52de40d2
)
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This commit is contained in:
parent
690cae3a67
commit
a98b66d407
@ -0,0 +1,73 @@
|
||||
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
|
||||
|
Loading…
Reference in New Issue
Block a user