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);