From f4096fc26babd7be8c32a5de482e65ab22d716bd Mon Sep 17 00:00:00 2001 From: Adrian Johnson Date: Thu, 4 Jul 2024 18:02:20 +0930 Subject: [PATCH 1/2] Add clang build to CI --- .gitlab-ci.yml | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0202fad0a..8465c87ae 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -16,7 +16,7 @@ workflow: variables: FDO_UPSTREAM_REPO: 'cairo/cairo' FDO_DISTRIBUTION_VERSION: '40' - FDO_DISTRIBUTION_TAG: '2024-05-25.0' + FDO_DISTRIBUTION_TAG: '2024-06-06.0' # TODO: should probably get its own image at some point instead of reusing the GStreamer one # See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/main/.gitlab-image-tags.yml for latest @@ -96,6 +96,7 @@ fedora image: fonttools util-linux poppler-utils + clang .build fedora: extends: @@ -106,8 +107,9 @@ fedora image: MESON_ARGS: > ${DEFAULT_MESON_ARGS} ${EXTRA_MESON_ARGS} + --werror + CFLAGS: '-Wno-error=deprecated-declarations' script: - - export CFLAGS="-Werror -Wno-error=deprecated-declarations" - meson setup ${MESON_ARGS} builddir - meson compile -C builddir @@ -137,6 +139,16 @@ fedora build static: variables: EXTRA_MESON_ARGS: '--default-library=static' +fedora build clang: + extends: + - '.build fedora' + variables: + EXTRA_MESON_ARGS: '--default-library=shared' + script: + - export CC=clang + - meson setup ${MESON_ARGS} builddir + - meson compile -C builddir + .test fedora: dependencies: - 'fedora build shared' From 86a6a3a2ec389c82326510018f52e465c5162b65 Mon Sep 17 00:00:00 2001 From: Adrian Johnson Date: Sat, 6 Jul 2024 07:24:44 +0930 Subject: [PATCH 2/2] offsetof is ANSI C Fixes 166 | A = csi_container_of (link, csi_blob_t, list); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../util/cairo-script/cairo-script-private.h:132:33: note: expanded from macro 'csi_container_of' 132 | (type *) ((char *) mptr__ - offsetof (type, member)); \ | ^~~~~~~~~~~~~~~~~~~~~~~ ../util/cairo-script/cairo-script-private.h:128:37: note: expanded from macro 'offsetof' 128 | ((char *) &((type *) 0)->member - (char *) 0) | ^ ~~~~~~~~~~ --- util/cairo-script/cairo-script-private.h | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/util/cairo-script/cairo-script-private.h b/util/cairo-script/cairo-script-private.h index a4cd1712f..96f9248d5 100644 --- a/util/cairo-script/cairo-script-private.h +++ b/util/cairo-script/cairo-script-private.h @@ -39,6 +39,7 @@ #include "cairo-script-interpreter.h" +#include #include #ifdef _MSC_VER @@ -123,10 +124,6 @@ #endif #ifdef __GNUC__ -#ifndef offsetof -#define offsetof(type, member) \ - ((char *) &((type *) 0)->member - (char *) 0) -#endif #define csi_container_of(ptr, type, member) ({ \ const typeof(((type *) 0)->member) *mptr__ = (ptr); \ (type *) ((char *) mptr__ - offsetof (type, member)); \