xserver: Branch 'master'

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Jan 27 19:42:07 UTC 2021


 hw/xfree86/common/compiler.h          |    8 ++------
 hw/xfree86/os-support/bsd/arm_video.c |    3 +++
 2 files changed, 5 insertions(+), 6 deletions(-)

New commits:
commit 0148a15da1616a868d71abe1b56e3f28cc79533c
Author: Julien Cristau <jcristau at debian.org>
Date:   Wed Jan 6 10:20:53 2021 +0100

    compiler.h: don't define inb/outb and friends on mips
    
    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.

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()
 {


More information about the xorg-commit mailing list