diff mbox

[1/1] package/x11r7/xserver_xorg-server: fix gcc5+ build with version 1.14.7

Message ID 20170605180044.22459-1-bernd.kuhls@t-online.de
State Accepted
Headers show

Commit Message

Bernd Kuhls June 5, 2017, 6 p.m. UTC
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>
---
 .../1.14.7/0001-sdksyms-gcc5.patch                 | 50 ++++++++++++++++++++++
 1 file changed, 50 insertions(+)
 create mode 100644 package/x11r7/xserver_xorg-server/1.14.7/0001-sdksyms-gcc5.patch

Comments

Thomas Petazzoni June 6, 2017, 8:33 p.m. UTC | #1
Hello,

On Mon,  5 Jun 2017 20:00:44 +0200, Bernd Kuhls wrote:
> 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>
> ---
>  .../1.14.7/0001-sdksyms-gcc5.patch                 | 50 ++++++++++++++++++++++
>  1 file changed, 50 insertions(+)
>  create mode 100644 package/x11r7/xserver_xorg-server/1.14.7/0001-sdksyms-gcc5.patch

Applied to master, thanks. Peter: this qualifies for the LTS branch I
guess.

Thomas
Peter Korsgaard June 6, 2017, 8:43 p.m. UTC | #2
>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:

 > Hello,
 > On Mon,  5 Jun 2017 20:00:44 +0200, Bernd Kuhls wrote:
 >> 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>
 >> ---
 >> .../1.14.7/0001-sdksyms-gcc5.patch                 | 50 ++++++++++++++++++++++
 >> 1 file changed, 50 insertions(+)
 >> create mode 100644 package/x11r7/xserver_xorg-server/1.14.7/0001-sdksyms-gcc5.patch

 > Applied to master, thanks. Peter: this qualifies for the LTS branch I
 > guess.

Indeed - Committed to 2017.02.x and 2017.05.x, thanks!
diff mbox

Patch

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
index 000000000..ad544aa30
--- /dev/null
+++ b/package/x11r7/xserver_xorg-server/1.14.7/0001-sdksyms-gcc5.patch
@@ -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
+