x11-base/xorg-server: Add patch to build with -fno-common
authorMatt Turner <mattst88@gentoo.org>
Thu, 19 Mar 2020 21:13:07 +0000 (14:13 -0700)
committerMatt Turner <mattst88@gentoo.org>
Thu, 19 Mar 2020 21:50:43 +0000 (14:50 -0700)
Closes: https://bugs.gentoo.org/705880
Signed-off-by: Matt Turner <mattst88@gentoo.org>
x11-base/xorg-server/files/xorg-server-1.20.7-Fix-building-with-fno-common.patch [new file with mode: 0644]
x11-base/xorg-server/xorg-server-1.20.7.ebuild

diff --git a/x11-base/xorg-server/files/xorg-server-1.20.7-Fix-building-with-fno-common.patch b/x11-base/xorg-server/files/xorg-server-1.20.7-Fix-building-with-fno-common.patch
new file mode 100644 (file)
index 0000000..d3011fc
--- /dev/null
@@ -0,0 +1,254 @@
+From 1610ef1d6b5ba99da9d1a639f3b65b2e61514a7d Mon Sep 17 00:00:00 2001
+From: David Seifert <soap@gentoo.org>
+Date: Fri, 24 Jan 2020 12:49:44 +0100
+Subject: [PATCH xserver] Fix building with `-fno-common`
+
+* GCC 10 will switch the default to `-fno-common`.
+  https://gcc.gnu.org/PR85678
+
+Bug: https://bugs.gentoo.org/705880
+Signed-off-by: Matt Turner <mattst88@gmail.com>
+---
+ hw/dmx/config/dmxconfig.c                | 2 +-
+ hw/dmx/config/xdmxconfig.c               | 2 +-
+ hw/dmx/glxProxy/glxext.c                 | 2 --
+ hw/xwayland/xwayland.c                   | 2 +-
+ test/misc.c                              | 2 +-
+ test/xi1/protocol-xchangedevicecontrol.c | 2 +-
+ test/xi2/protocol-common.c               | 2 ++
+ test/xi2/protocol-common.h               | 2 +-
+ test/xi2/protocol-xigetclientpointer.c   | 2 +-
+ test/xi2/protocol-xigetselectedevents.c  | 2 +-
+ test/xi2/protocol-xipassivegrabdevice.c  | 2 +-
+ test/xi2/protocol-xiquerydevice.c        | 2 +-
+ test/xi2/protocol-xiquerypointer.c       | 2 +-
+ test/xi2/protocol-xiqueryversion.c       | 2 +-
+ test/xi2/protocol-xiselectevents.c       | 2 +-
+ test/xi2/protocol-xisetclientpointer.c   | 2 +-
+ test/xi2/protocol-xiwarppointer.c        | 2 +-
+ 17 files changed, 17 insertions(+), 17 deletions(-)
+
+diff --git a/hw/dmx/config/dmxconfig.c b/hw/dmx/config/dmxconfig.c
+index c1a9e1cf3..85bc0dbe4 100644
+--- a/hw/dmx/config/dmxconfig.c
++++ b/hw/dmx/config/dmxconfig.c
+@@ -72,7 +72,7 @@ typedef struct DMXConfigCmdStruct {
+     DMXConfigList *xinputs;
+ } DMXConfigCmd, *DMXConfigCmdPtr;
+-DMXConfigEntryPtr dmxConfigEntry;
++extern DMXConfigEntryPtr dmxConfigEntry;
+ static DMXConfigCmd dmxConfigCmd;
+ static int dmxDisplaysFromCommandLine;
+diff --git a/hw/dmx/config/xdmxconfig.c b/hw/dmx/config/xdmxconfig.c
+index 49e4b5459..05d839688 100644
+--- a/hw/dmx/config/xdmxconfig.c
++++ b/hw/dmx/config/xdmxconfig.c
+@@ -65,7 +65,7 @@ extern FILE *yyin;
+ #define DMX_CANVAS_WIDTH  400
+ #define DMX_CANVAS_HEIGHT 500
+-DMXConfigEntryPtr dmxConfigEntry;
++extern DMXConfigEntryPtr dmxConfigEntry;
+ static DMXConfigVirtualPtr dmxConfigCurrent, dmxConfigNewVirtual;
+ static DMXConfigDisplayPtr dmxConfigCurrentDisplay, dmxConfigNewDisplay;
+ static int dmxConfigGrabbed, dmxConfigGrabbedFine;
+diff --git a/hw/dmx/glxProxy/glxext.c b/hw/dmx/glxProxy/glxext.c
+index 49848bbff..ca9780f99 100644
+--- a/hw/dmx/glxProxy/glxext.c
++++ b/hw/dmx/glxProxy/glxext.c
+@@ -47,8 +47,6 @@
+ #include "extinit.h"
+ #include "glx_extinit.h"
+-int noGlxExtension;
+-
+ /*
+ ** Forward declarations.
+ */
+diff --git a/hw/xwayland/xwayland.c b/hw/xwayland/xwayland.c
+index feb1058b7..5fefa5923 100644
+--- a/hw/xwayland/xwayland.c
++++ b/hw/xwayland/xwayland.c
+@@ -40,7 +40,7 @@
+ #ifdef XF86VIDMODE
+ #include <X11/extensions/xf86vmproto.h>
+-_X_EXPORT Bool noXFree86VidModeExtension;
++extern _X_EXPORT Bool noXFree86VidModeExtension;
+ #endif
+ #ifdef XWL_HAS_GLAMOR
+diff --git a/test/misc.c b/test/misc.c
+index 3c669b677..f1f76cccd 100644
+--- a/test/misc.c
++++ b/test/misc.c
+@@ -33,7 +33,7 @@
+ #include "tests-common.h"
+-ScreenInfo screenInfo;
++extern ScreenInfo screenInfo;
+ static void
+ dix_version_compare(void)
+diff --git a/test/xi1/protocol-xchangedevicecontrol.c b/test/xi1/protocol-xchangedevicecontrol.c
+index 57a15c407..54f1f67cb 100644
+--- a/test/xi1/protocol-xchangedevicecontrol.c
++++ b/test/xi1/protocol-xchangedevicecontrol.c
+@@ -37,7 +37,7 @@
+ #include "protocol-common.h"
+-ClientRec client_window;
++extern ClientRec client_window;
+ static ClientRec client_request;
+ static void
+diff --git a/test/xi2/protocol-common.c b/test/xi2/protocol-common.c
+index 8cd85dd05..05dd3c4e7 100644
+--- a/test/xi2/protocol-common.c
++++ b/test/xi2/protocol-common.c
+@@ -45,6 +45,8 @@ static ClientRec server_client;
+ void *global_userdata;
++void (*reply_handler) (ClientPtr client, int len, char *data, void *userdata);
++
+ int enable_GrabButton_wrap = 1;
+ int enable_XISetEventMask_wrap = 1;
+diff --git a/test/xi2/protocol-common.h b/test/xi2/protocol-common.h
+index 8490529ad..742ce348f 100644
+--- a/test/xi2/protocol-common.h
++++ b/test/xi2/protocol-common.h
+@@ -99,7 +99,7 @@ extern void *global_userdata;
+  * The reply handler called from WriteToClient. Set this handler if you need
+  * to check the reply values.
+  */
+-void (*reply_handler) (ClientPtr client, int len, char *data, void *userdata);
++extern void (*reply_handler) (ClientPtr client, int len, char *data, void *userdata);
+ /**
+  * The default screen used for the windows. Initialized by init_simple().
+diff --git a/test/xi2/protocol-xigetclientpointer.c b/test/xi2/protocol-xigetclientpointer.c
+index 9c38bd720..244e8438f 100644
+--- a/test/xi2/protocol-xigetclientpointer.c
++++ b/test/xi2/protocol-xigetclientpointer.c
+@@ -46,7 +46,7 @@ static struct {
+     int win;
+ } test_data;
+-ClientRec client_window;
++extern ClientRec client_window;
+ static ClientRec client_request;
+ static void
+diff --git a/test/xi2/protocol-xigetselectedevents.c b/test/xi2/protocol-xigetselectedevents.c
+index 9a0fac5d4..b14100224 100644
+--- a/test/xi2/protocol-xigetselectedevents.c
++++ b/test/xi2/protocol-xigetselectedevents.c
+@@ -60,7 +60,7 @@ static struct {
+     int mask_len;
+ } test_data;
+-ClientRec client_window;
++extern ClientRec client_window;
+ /* AddResource is called from XISetSEventMask, we don't need this */
+ Bool
+diff --git a/test/xi2/protocol-xipassivegrabdevice.c b/test/xi2/protocol-xipassivegrabdevice.c
+index c703a1ee8..142bcecb7 100644
+--- a/test/xi2/protocol-xipassivegrabdevice.c
++++ b/test/xi2/protocol-xipassivegrabdevice.c
+@@ -41,7 +41,7 @@
+ #include "protocol-common.h"
+-ClientRec client_window;
++extern ClientRec client_window;
+ static ClientRec client_request;
+ #define N_MODS 7
+diff --git a/test/xi2/protocol-xiquerydevice.c b/test/xi2/protocol-xiquerydevice.c
+index a068038fd..6ee8a80fc 100644
+--- a/test/xi2/protocol-xiquerydevice.c
++++ b/test/xi2/protocol-xiquerydevice.c
+@@ -54,7 +54,7 @@ struct test_data {
+     int num_devices_in_reply;
+ };
+-ClientRec client_window;
++extern ClientRec client_window;
+ static void reply_XIQueryDevice_data(ClientPtr client, int len, char *data,
+                                      void *closure);
+diff --git a/test/xi2/protocol-xiquerypointer.c b/test/xi2/protocol-xiquerypointer.c
+index ed75d7910..0f5a2b57a 100644
+--- a/test/xi2/protocol-xiquerypointer.c
++++ b/test/xi2/protocol-xiquerypointer.c
+@@ -41,7 +41,7 @@
+ #include "protocol-common.h"
+-ClientRec client_window;
++extern ClientRec client_window;
+ static ClientRec client_request;
+ static void reply_XIQueryPointer_data(ClientPtr client, int len,
+                                       char *data, void *closure);
+diff --git a/test/xi2/protocol-xiqueryversion.c b/test/xi2/protocol-xiqueryversion.c
+index 3ce758faa..c7ddbfc10 100644
+--- a/test/xi2/protocol-xiqueryversion.c
++++ b/test/xi2/protocol-xiqueryversion.c
+@@ -58,7 +58,7 @@ struct test_data {
+     int minor_expected;
+ };
+-ClientRec client_window;
++extern ClientRec client_window;
+ static void
+ reply_XIQueryVersion(ClientPtr client, int len, char *data, void *closure)
+diff --git a/test/xi2/protocol-xiselectevents.c b/test/xi2/protocol-xiselectevents.c
+index f136c23d0..06050ade7 100644
+--- a/test/xi2/protocol-xiselectevents.c
++++ b/test/xi2/protocol-xiselectevents.c
+@@ -62,7 +62,7 @@
+ static unsigned char *data[4096 * 20];  /* the request data buffer */
+-ClientRec client_window;
++extern ClientRec client_window;
+ int
+ __real_XISetEventMask(DeviceIntPtr dev, WindowPtr win, ClientPtr client,
+diff --git a/test/xi2/protocol-xisetclientpointer.c b/test/xi2/protocol-xisetclientpointer.c
+index 6584bb9cc..ddc9f0000 100644
+--- a/test/xi2/protocol-xisetclientpointer.c
++++ b/test/xi2/protocol-xisetclientpointer.c
+@@ -48,7 +48,7 @@
+ #include "protocol-common.h"
+-ClientRec client_window;
++extern ClientRec client_window;
+ static ClientRec client_request;
+ static void
+diff --git a/test/xi2/protocol-xiwarppointer.c b/test/xi2/protocol-xiwarppointer.c
+index 8484d54e5..e5c2f31ea 100644
+--- a/test/xi2/protocol-xiwarppointer.c
++++ b/test/xi2/protocol-xiwarppointer.c
+@@ -44,7 +44,7 @@
+ static int expected_x = SPRITE_X;
+ static int expected_y = SPRITE_Y;
+-ClientRec client_window;
++extern ClientRec client_window;
+ /**
+  * This function overrides the one in the screen rec.
+-- 
+2.24.1
+
index 794466e2d51302318512914907530b2626fd5585..33eb1762fd0030e555f58ee8c6b8a27b3088a6cc 100644 (file)
@@ -118,6 +118,7 @@ REQUIRED_USE="!minimal? (
        xephyr? ( kdrive )"
 
 UPSTREAMED_PATCHES=(
+       "${FILESDIR}"/${P}-Fix-building-with-fno-common.patch
 )
 
 PATCHES=(