external/cairo/UnpackedTarball_cairo.mk                  |    1 
 external/cairo/cairo/Wincompatible-pointer-types.patch.0 |   29 +++++++++++++++
 2 files changed, 30 insertions(+)

New commits:
commit 4ad6309f5b7460a8e1c558d68a94c4515ec1b73f
Author:     Stephan Bergmann <stephan.bergm...@collabora.com>
AuthorDate: Mon Sep 22 17:08:36 2025 +0200
Commit:     Stephan Bergmann <stephan.bergm...@collabora.com>
CommitDate: Mon Sep 22 21:53:57 2025 +0200

    external/cairo: Silence some -Wincompatible-pointer-types
    
    ...as seen at least when doing an Emscripten build against emsdk 4.0.15 
(which
    uses a Clang with
    
<https://github.com/llvm/llvm-project/commit/b24769855d97697de08e2296a548c033f193caf4>
    "[Clang] [Sema] Make `-Wincompatible-pointer-types` an error by default
    (#157364)"),
    
    > cairo-image-source.c:89:33: error: incompatible pointer types passing 
'pixman_image_t **' (aka 'union pixman_image **') to parameter of type 'void 
**' [-Wincompatible-pointer-types]
    >    89 |         if (_cairo_atomic_ptr_cmpxchg 
(&__pixman_transparent_image,
    >       |                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~
    > ./cairo-atomic-private.h:143:34: note: expanded from macro 
'_cairo_atomic_ptr_cmpxchg'
    >   143 |   _cairo_atomic_ptr_cmpxchg_impl(x, oldv, newv)
    >       |                                  ^
    > ./cairo-atomic-private.h:136:39: note: passing argument to parameter 'x' 
here
    >   136 | _cairo_atomic_ptr_cmpxchg_impl(void **x, void *oldv, void *newv)
    >       |                                       ^
    > cairo-image-source.c:121:33: error: incompatible pointer types passing 
'pixman_image_t **' (aka 'union pixman_image **') to parameter of type 'void 
**' [-Wincompatible-pointer-types]
    >   121 |         if (_cairo_atomic_ptr_cmpxchg (&__pixman_black_image,
    >       |                                        ^~~~~~~~~~~~~~~~~~~~~
    > ./cairo-atomic-private.h:143:34: note: expanded from macro 
'_cairo_atomic_ptr_cmpxchg'
    >   143 |   _cairo_atomic_ptr_cmpxchg_impl(x, oldv, newv)
    >       |                                  ^
    > ./cairo-atomic-private.h:136:39: note: passing argument to parameter 'x' 
here
    >   136 | _cairo_atomic_ptr_cmpxchg_impl(void **x, void *oldv, void *newv)
    >       |                                       ^
    > cairo-image-source.c:153:33: error: incompatible pointer types passing 
'pixman_image_t **' (aka 'union pixman_image **') to parameter of type 'void 
**' [-Wincompatible-pointer-types]
    >   153 |         if (_cairo_atomic_ptr_cmpxchg (&__pixman_white_image,
    >       |                                        ^~~~~~~~~~~~~~~~~~~~~
    > ./cairo-atomic-private.h:143:34: note: expanded from macro 
'_cairo_atomic_ptr_cmpxchg'
    >   143 |   _cairo_atomic_ptr_cmpxchg_impl(x, oldv, newv)
    >       |                                  ^
    > ./cairo-atomic-private.h:136:39: note: passing argument to parameter 'x' 
here
    >   136 | _cairo_atomic_ptr_cmpxchg_impl(void **x, void *oldv, void *newv)
    >       |                                       ^
    
    Change-Id: Ie7e6424350b60e61db2cc13c17fa14b1cc0e9944
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191368
    Reviewed-by: Stephan Bergmann <stephan.bergm...@collabora.com>
    Tested-by: Jenkins

diff --git a/external/cairo/UnpackedTarball_cairo.mk 
b/external/cairo/UnpackedTarball_cairo.mk
index ece81d1341dd..e0a60bc7f7d6 100644
--- a/external/cairo/UnpackedTarball_cairo.mk
+++ b/external/cairo/UnpackedTarball_cairo.mk
@@ -34,6 +34,7 @@ $(eval $(call gb_UnpackedTarball_add_patches,cairo,\
        external/cairo/cairo/cairo-fd-hack.patch.0 \
        external/cairo/cairo/cairo.ofz57493-Timeout.patch.1 \
        external/cairo/cairo/shm-null-deref.patch.1 \
+       external/cairo/cairo/Wincompatible-pointer-types.patch.0 \
 ))
 
 ifeq ($(OS),iOS)
diff --git a/external/cairo/cairo/Wincompatible-pointer-types.patch.0 
b/external/cairo/cairo/Wincompatible-pointer-types.patch.0
new file mode 100644
index 000000000000..8e5ce833220d
--- /dev/null
+++ b/external/cairo/cairo/Wincompatible-pointer-types.patch.0
@@ -0,0 +1,29 @@
+--- src/cairo-image-source.c
++++ src/cairo-image-source.c
+@@ -86,7 +86,7 @@
+       if (unlikely (image == NULL))
+           return NULL;
+ 
+-      if (_cairo_atomic_ptr_cmpxchg (&__pixman_transparent_image,
++      if (_cairo_atomic_ptr_cmpxchg ((void **) &__pixman_transparent_image,
+                                      NULL, image))
+       {
+           pixman_image_ref (image);
+@@ -118,7 +118,7 @@
+       if (unlikely (image == NULL))
+           return NULL;
+ 
+-      if (_cairo_atomic_ptr_cmpxchg (&__pixman_black_image,
++      if (_cairo_atomic_ptr_cmpxchg ((void **) &__pixman_black_image,
+                                      NULL, image))
+       {
+           pixman_image_ref (image);
+@@ -150,7 +150,7 @@
+       if (unlikely (image == NULL))
+           return NULL;
+ 
+-      if (_cairo_atomic_ptr_cmpxchg (&__pixman_white_image,
++      if (_cairo_atomic_ptr_cmpxchg ((void **) &__pixman_white_image,
+                                      NULL, image))
+       {
+           pixman_image_ref (image);

Reply via email to