diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ac9fcc7a7..95342c493 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -108,10 +108,16 @@ variables: .build-gobject-introspection: before_script: - - mkdir -p gobject-introspection - - git clone --branch $GOBJECT_INTROSPECTION_TAG https://gitlab.gnome.org/GNOME/gobject-introspection.git gobject-introspection - - meson gobject-introspection gobject-introspection/build --prefix=/usr - - sudo meson install -C gobject-introspection/build + # If the CI image doesn’t provide a new enough gobject-introspection + # package, build it ourselves. + # See https://gitlab.gnome.org/GNOME/glib/-/merge_requests/3746#note_2161354 + - > + if ! pkg-config --atleast-version "${GOBJECT_INTROSPECTION_TAG}" gobject-introspection-1.0; then + mkdir -p gobject-introspection + git clone --branch $GOBJECT_INTROSPECTION_TAG https://gitlab.gnome.org/GNOME/gobject-introspection.git gobject-introspection + meson gobject-introspection gobject-introspection/build --prefix=/usr + sudo meson install -C gobject-introspection/build + fi artifacts: expire_in: 3 days paths: diff --git a/.gitlab-ci/test-msys2.sh b/.gitlab-ci/test-msys2.sh index 3a58f0bb7..29c103a4f 100755 --- a/.gitlab-ci/test-msys2.sh +++ b/.gitlab-ci/test-msys2.sh @@ -34,10 +34,15 @@ PATH="$(cygpath "$USERPROFILE")/.local/bin:$HOME/.local/bin:$PATH" DIR="$(pwd)" export PATH CFLAGS -mkdir -p gobject-introspection -git clone --branch "${GOBJECT_INTROSPECTION_TAG}" https://gitlab.gnome.org/GNOME/gobject-introspection.git gobject-introspection -meson gobject-introspection gobject-introspection/build --prefix "/c/msys64/${MSYSTEM}/usr" -meson install -C gobject-introspection/build +# If msys2 doesn’t provide a new enough gobject-introspection package, build it +# ourselves. +# See https://gitlab.gnome.org/GNOME/glib/-/merge_requests/3746#note_2161354 +if [[ $(vercmp "$(pacman -Qi "${MINGW_PACKAGE_PREFIX}"-gobject-introspection | grep -Po '^Version\s*: \K.+')" "${GOBJECT_INTROSPECTION_TAG}") -lt 0 ]]; then + mkdir -p gobject-introspection + git clone --branch "${GOBJECT_INTROSPECTION_TAG}" https://gitlab.gnome.org/GNOME/gobject-introspection.git gobject-introspection + meson gobject-introspection gobject-introspection/build --prefix "/c/msys64/${MSYSTEM}/usr" + meson install -C gobject-introspection/build +fi # FIXME: We can’t use ${MESON_COMMON_OPTIONS} here because this script installs # Meson 1.3. See the comment in .gitlab-ci.yml about the same problem on diff --git a/glib/gpoll.c b/glib/gpoll.c index 4ec0bfdd3..cbbbe8886 100644 --- a/glib/gpoll.c +++ b/glib/gpoll.c @@ -449,7 +449,6 @@ g_poll (GPollFD *fds, for (i = 0; i < nthreads; i++) { guint thread_fds; - guint ignore; if (i == (nthreads - 1) && threads_remain > 0) thread_fds = threads_remain; diff --git a/glib/gvariant-core.c b/glib/gvariant-core.c index a8de6689c..7afef1b2f 100644 --- a/glib/gvariant-core.c +++ b/glib/gvariant-core.c @@ -76,7 +76,11 @@ struct _GVariant gatomicrefcount ref_count; gsize depth; +#if g_macro__has_attribute(aligned) + guint8 suffix[] __attribute__((aligned(8))); +#else guint8 suffix[]; +#endif }; /* Ensure our suffix data aligns to largest guaranteed offset