external/cairo/UnpackedTarball_cairo.mk | 1 external/cairo/cairo/Wincompatible-pointer-types.patch.0 | 29 +++++++++++++++ 2 files changed, 30 insertions(+)
New commits: commit 92da485fcab224ba3e83275dafd7bf0357c904ab Author: Stephan Bergmann <[email protected]> AuthorDate: Mon Sep 22 17:08:36 2025 +0200 Commit: Michael Stahl <[email protected]> CommitDate: Tue Sep 23 12:04:11 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) > | ^ Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191368 Reviewed-by: Stephan Bergmann <[email protected]> Tested-by: Jenkins (cherry picked from commit 4ad6309f5b7460a8e1c558d68a94c4515ec1b73f) Conflicts: external/cairo/UnpackedTarball_cairo.mk Change-Id: Ie7e6424350b60e61db2cc13c17fa14b1cc0e9944 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191369 Reviewed-by: Michael Stahl <[email protected]> Tested-by: Jenkins CollaboraOffice <[email protected]> diff --git a/external/cairo/UnpackedTarball_cairo.mk b/external/cairo/UnpackedTarball_cairo.mk index 1108b5810386..bd6b2760c424 100644 --- a/external/cairo/UnpackedTarball_cairo.mk +++ b/external/cairo/UnpackedTarball_cairo.mk @@ -30,6 +30,7 @@ $(eval $(call gb_UnpackedTarball_add_patches,cairo,\ external/cairo/cairo/0025-libtool-pass-use-ld.patch \ external/cairo/cairo/cairo-fd-hack.patch.0 \ external/cairo/cairo/cairo.ofz57493-Timeout.patch.1 \ + external/cairo/cairo/Wincompatible-pointer-types.patch.0 \ )) ifneq ($(OS),MACOSX) 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);
