commit:     509f72b7bab93d0aa2a5ff1260937f958fdd560b
Author:     Gabi Falk <gabifalk <AT> gmx <DOT> com>
AuthorDate: Sat May 11 13:00:00 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue May 21 11:48:20 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=509f72b7

x11-base/xorg-server: backport upstream patch to port to modern C (C99)

Closes: https://bugs.gentoo.org/925876
Link: 
https://gitlab.freedesktop.org/xorg/xserver/-/commit/e89edec497bac581ca9b614fb00c25365580f045
Signed-off-by: Gabi Falk <gabifalk <AT> gmx.com>
Closes: https://github.com/gentoo/gentoo/pull/36640
Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../files/xorg-server-21.1.10-fix-c99-32bit.patch  | 54 ++++++++++++++++++++++
 ...1.1.13.ebuild => xorg-server-21.1.13-r1.ebuild} |  2 +
 2 files changed, 56 insertions(+)

diff --git a/x11-base/xorg-server/files/xorg-server-21.1.10-fix-c99-32bit.patch 
b/x11-base/xorg-server/files/xorg-server-21.1.10-fix-c99-32bit.patch
new file mode 100644
index 000000000000..40afef18cead
--- /dev/null
+++ b/x11-base/xorg-server/files/xorg-server-21.1.10-fix-c99-32bit.patch
@@ -0,0 +1,54 @@
+https://bugs.gentoo.org/925876
+https://gitlab.freedesktop.org/xorg/xserver/-/commit/e89edec497bac581ca9b614fb00c25365580f045
+
+From e89edec497bac581ca9b614fb00c25365580f045 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Jos=C3=A9=20Exp=C3=B3sito?= <[email protected]>
+Date: Fri, 19 Jan 2024 13:05:51 +0100
+Subject: [PATCH] ephyr: Fix incompatible pointer type build error
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Fix a compilation error on 32 bits architectures with gcc 14:
+
+  ephyr_glamor_xv.c: In function ‘ephyr_glamor_xv_init’:
+  ephyr_glamor_xv.c:154:31: error: assignment to ‘SetPortAttributeFuncPtr’ 
{aka ‘int (*)(struct _KdScreenInfo *, long unsigned int,  int,  void *)’} from 
incompatible pointer type ‘int (*)(KdScreenInfo *, Atom,  INT32,  void *)’ {aka 
‘int (*)(struct _KdScreenInfo *, long unsigned int,  long int,  void *)’} 
[-Wincompatible-pointer-types]
+    154 |     adaptor->SetPortAttribute = ephyr_glamor_xv_set_port_attribute;
+        |                               ^
+  ephyr_glamor_xv.c:155:31: error: assignment to ‘GetPortAttributeFuncPtr’ 
{aka ‘int (*)(struct _KdScreenInfo *, long unsigned int,  int *, void *)’} from 
incompatible pointer type ‘int (*)(KdScreenInfo *, Atom,  INT32 *, void *)’ 
{aka ‘int (*)(struct _KdScreenInfo *, long unsigned int,  long int *, void *)’} 
[-Wincompatible-pointer-types]
+    155 |     adaptor->GetPortAttribute = ephyr_glamor_xv_get_port_attribute;
+        |                               ^
+
+Build error logs:
+https://koji.fedoraproject.org/koji/taskinfo?taskID=111964273
+
+Signed-off-by: José Expósito <[email protected]>
+---
+ hw/kdrive/ephyr/ephyr_glamor_xv.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/hw/kdrive/ephyr/ephyr_glamor_xv.c 
b/hw/kdrive/ephyr/ephyr_glamor_xv.c
+index 4dd15cf41..b5eae48c8 100644
+--- a/hw/kdrive/ephyr/ephyr_glamor_xv.c
++++ b/hw/kdrive/ephyr/ephyr_glamor_xv.c
+@@ -50,16 +50,16 @@ ephyr_glamor_xv_stop_video(KdScreenInfo *screen, void 
*data, Bool cleanup)
+ 
+ static int
+ ephyr_glamor_xv_set_port_attribute(KdScreenInfo *screen,
+-                                   Atom attribute, INT32 value, void *data)
++                                   Atom attribute, int value, void *data)
+ {
+-    return glamor_xv_set_port_attribute(data, attribute, value);
++    return glamor_xv_set_port_attribute(data, attribute, (INT32)value);
+ }
+ 
+ static int
+ ephyr_glamor_xv_get_port_attribute(KdScreenInfo *screen,
+-                                   Atom attribute, INT32 *value, void *data)
++                                   Atom attribute, int *value, void *data)
+ {
+-    return glamor_xv_get_port_attribute(data, attribute, value);
++    return glamor_xv_get_port_attribute(data, attribute, (INT32 *)value);
+ }
+ 
+ static void

diff --git a/x11-base/xorg-server/xorg-server-21.1.13.ebuild 
b/x11-base/xorg-server/xorg-server-21.1.13-r1.ebuild
similarity index 98%
rename from x11-base/xorg-server/xorg-server-21.1.13.ebuild
rename to x11-base/xorg-server/xorg-server-21.1.13-r1.ebuild
index aac526f8a150..e32da90e92a2 100644
--- a/x11-base/xorg-server/xorg-server-21.1.13.ebuild
+++ b/x11-base/xorg-server/xorg-server-21.1.13-r1.ebuild
@@ -104,6 +104,8 @@ PATCHES=(
        "${FILESDIR}"/${PN}-1.18-support-multiple-Files-sections.patch
        # pending upstream backport, bug #885763
        "${FILESDIR}"/${PN}-21.1.10-c99.patch
+       # backport of upstream commit, bug #925876
+       "${FILESDIR}"/${PN}-21.1.10-fix-c99-32bit.patch
 )
 
 src_configure() {

Reply via email to