package/x11r7/xserver_xorg-server: fix gcc5+ build with version 1.14.7
authorBernd Kuhls <bernd.kuhls@t-online.de>
Mon, 5 Jun 2017 18:00:44 +0000 (20:00 +0200)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Tue, 6 Jun 2017 20:32:15 +0000 (22:32 +0200)
Fixes

sdksyms.c:311:15: error: expected expression before »,« token
     (void *) &,                                                  /* ../../include/os.h:96 */

by backporting an upstream patch, sdksyms.c is generated by
hw/xfree86/sdksyms.sh which is broken when used with gcc5+.

Problem was found while testing
http://patchwork.ozlabs.org/patch/762102/

using this defconfig

BR2_TOOLCHAIN_BUILDROOT_WCHAR=y
BR2_TOOLCHAIN_BUILDROOT_CXX=y
BR2_PACKAGE_XORG7=y
BR2_PACKAGE_XSERVER_XORG_SERVER=y
BR2_PACKAGE_XSERVER_XORG_SERVER_V_1_14=y
BR2_PACKAGE_XDRIVER_XF86_INPUT_TSLIB=y

Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
package/x11r7/xserver_xorg-server/1.14.7/0001-sdksyms-gcc5.patch [new file with mode: 0644]

diff --git a/package/x11r7/xserver_xorg-server/1.14.7/0001-sdksyms-gcc5.patch b/package/x11r7/xserver_xorg-server/1.14.7/0001-sdksyms-gcc5.patch
new file mode 100644 (file)
index 0000000..ad544aa
--- /dev/null
@@ -0,0 +1,50 @@
+From 21b896939c5bb242f3aacc37baf12379e43254b6 Mon Sep 17 00:00:00 2001
+From: Egbert Eich <eich@freedesktop.org>
+Date: Tue, 3 Mar 2015 16:27:05 +0100
+Subject: symbols: Fix sdksyms.sh to cope with gcc5
+
+Gcc5 adds additional lines stating line numbers before and
+after __attribute__() which need to be skipped.
+
+Downloaded from upstream commit
+https://cgit.freedesktop.org/xorg/xserver/commit/hw/xfree86/sdksyms.sh?id=21b896939c5bb242f3aacc37baf12379e43254b6
+
+Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
+Signed-off-by: Egbert Eich <eich@freedesktop.org>
+Tested-by: Daniel Stone <daniels@collabora.com>
+Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+diff --git a/hw/xfree86/sdksyms.sh b/hw/xfree86/sdksyms.sh
+index 2305073..05ac410 100755
+--- a/hw/xfree86/sdksyms.sh
++++ b/hw/xfree86/sdksyms.sh
+@@ -350,13 +350,25 @@ BEGIN {
+     if (sdk) {
+       n = 3;
++        # skip line numbers GCC 5 adds before __attribute__
++        while ($n == "" || $0 ~ /^# [0-9]+ "/) {
++           getline;
++           n = 1;
++        }
++
+       # skip attribute, if any
+       while ($n ~ /^(__attribute__|__global)/ ||
+           # skip modifiers, if any
+           $n ~ /^\*?(unsigned|const|volatile|struct|_X_EXPORT)$/ ||
+           # skip pointer
+-          $n ~ /^[a-zA-Z0-9_]*\*$/)
++          $n ~ /^[a-zA-Z0-9_]*\*$/) {
+           n++;
++            # skip line numbers GCC 5 adds after __attribute__
++            while ($n == "" || $0 ~ /^# [0-9]+ "/) {
++               getline;
++               n = 1;
++            }
++        }
+       # type specifier may not be set, as in
+       #   extern _X_EXPORT unsigned name(...)
+-- 
+cgit v0.10.2
+