mirror of
https://github.com/SebastianWendel/nixpkgs.git
synced 2024-09-20 04:19:00 +02:00
perlPackages.Gtk2: fix build with clang 16
Fix pointer casts to 32-bit integers.
This commit is contained in:
parent
0dca32340c
commit
1a2c0b89c6
|
@ -0,0 +1,86 @@
|
|||
diff -ur a/gdk.typemap b/gdk.typemap
|
||||
--- a/gdk.typemap 2017-05-21 15:02:54.000000000 -0400
|
||||
+++ b/gdk.typemap 2023-11-03 13:17:43.717890172 -0400
|
||||
@@ -23,6 +23,7 @@
|
||||
TYPEMAP
|
||||
|
||||
# can be either a pointer or an integer, this handles both cases
|
||||
+uintptr_t T_UV
|
||||
GdkNativeWindow T_UV
|
||||
|
||||
# GdkBitmap doesn't get its own type id, but needs to be treated separately.
|
||||
diff -ur a/xs/GdkDnd.xs b/xs/GdkDnd.xs
|
||||
--- a/xs/GdkDnd.xs 2017-05-21 15:02:54.000000000 -0400
|
||||
+++ b/xs/GdkDnd.xs 2023-11-03 13:23:22.478329089 -0400
|
||||
@@ -142,12 +142,12 @@
|
||||
void
|
||||
gdk_drag_get_protocol_for_display (class, display, xid)
|
||||
GdkDisplay *display
|
||||
- guint32 xid
|
||||
+ uintptr_t xid
|
||||
PREINIT:
|
||||
GdkDragProtocol protocol;
|
||||
- guint32 ret;
|
||||
+ uintptr_t ret;
|
||||
PPCODE:
|
||||
- ret = gdk_drag_get_protocol_for_display (display, xid, &protocol);
|
||||
+ ret = (uintptr_t)gdk_drag_get_protocol_for_display (display, INT2PTR(GdkNativeWindow, xid), &protocol);
|
||||
XPUSHs (sv_2mortal (newSVuv (ret)));
|
||||
XPUSHs (sv_2mortal (ret
|
||||
? newSVGdkDragProtocol (protocol)
|
||||
@@ -184,12 +184,12 @@
|
||||
=cut
|
||||
void
|
||||
gdk_drag_get_protocol (class, xid)
|
||||
- guint32 xid
|
||||
+ uintptr_t xid
|
||||
PREINIT:
|
||||
GdkDragProtocol protocol;
|
||||
- guint32 ret;
|
||||
+ uintptr_t ret;
|
||||
PPCODE:
|
||||
- ret = gdk_drag_get_protocol (xid, &protocol);
|
||||
+ ret = (uintptr_t)gdk_drag_get_protocol (INT2PTR(GdkNativeWindow, xid), &protocol);
|
||||
XPUSHs (sv_2mortal (newSVuv (ret)));
|
||||
XPUSHs (sv_2mortal (newSVGdkDragProtocol (protocol)));
|
||||
|
||||
diff -ur a/xs/GdkSelection.xs b/xs/GdkSelection.xs
|
||||
--- a/xs/GdkSelection.xs 2017-05-21 15:02:54.000000000 -0400
|
||||
+++ b/xs/GdkSelection.xs 2023-11-03 13:26:58.976888906 -0400
|
||||
@@ -147,7 +147,7 @@
|
||||
## void gdk_selection_send_notify (guint32 requestor, GdkAtom selection, GdkAtom target, GdkAtom property, guint32 time_)
|
||||
void
|
||||
gdk_selection_send_notify (class, requestor, selection, target, property, time_)
|
||||
- guint32 requestor
|
||||
+ GdkNativeWindow requestor
|
||||
GdkAtom selection
|
||||
GdkAtom target
|
||||
GdkAtom property
|
||||
@@ -161,7 +161,7 @@
|
||||
void
|
||||
gdk_selection_send_notify_for_display (class, display, requestor, selection, target, property, time_)
|
||||
GdkDisplay *display
|
||||
- guint32 requestor
|
||||
+ GdkNativeWindow requestor
|
||||
GdkAtom selection
|
||||
GdkAtom target
|
||||
GdkAtom property
|
||||
diff -ur a/xs/GtkWindow.xs b/xs/GtkWindow.xs
|
||||
--- a/xs/GtkWindow.xs 2017-05-21 15:02:54.000000000 -0400
|
||||
+++ b/xs/GtkWindow.xs 2023-11-03 13:32:53.673168678 -0400
|
||||
@@ -581,13 +581,13 @@
|
||||
void
|
||||
gtk_window_remove_embedded_xid (window, xid)
|
||||
GtkWindow * window
|
||||
- guint xid
|
||||
+ GdkNativeWindow xid
|
||||
|
||||
## void gtk_window_add_embedded_xid (GtkWindow *window, guint xid)
|
||||
void
|
||||
gtk_window_add_embedded_xid (window, xid)
|
||||
GtkWindow * window
|
||||
- guint xid
|
||||
+ GdkNativeWindow xid
|
||||
|
||||
##void gtk_window_reshow_with_initial_size (GtkWindow *window)
|
||||
void
|
|
@ -11121,6 +11121,10 @@ with self; {
|
|||
url = "mirror://cpan/authors/id/X/XA/XAOC/Gtk2-1.24993.tar.gz";
|
||||
hash = "sha256-ScRDdDsu7+EadoACck9/akxI78lP8806VZ+357aTyWc=";
|
||||
};
|
||||
patches = [
|
||||
# Fix incompatible function pointer conversion (assigning `GdkNativeWindow` to `guint32`).
|
||||
../development/perl-modules/Gtk2-fix-incompatible-pointer-conversion.patch
|
||||
];
|
||||
buildInputs = [ pkgs.gtk2 ];
|
||||
# https://rt.cpan.org/Public/Bug/Display.html?id=130742
|
||||
# doCheck = !stdenv.isDarwin;
|
||||
|
|
Loading…
Reference in a new issue