diff --git a/subprojects/libglnx/glnx-backports.h b/subprojects/libglnx/glnx-backports.h
index b6d93c05fbe4b1d0c242fa6c2f5053a1898a5394..6c39cf223b966c99d29a9d280fa0fd0ae7a1bf4d 100644
--- a/subprojects/libglnx/glnx-backports.h
+++ b/subprojects/libglnx/glnx-backports.h
@@ -63,4 +63,16 @@ gboolean              glnx_set_object  (GObject **object_ptr,
 
 #endif /* !GLIB_CHECK_VERSION(2, 44, 0) */
 
+#ifndef g_assert_nonnull
+#define g_assert_nonnull(x) g_assert (x != NULL)
+#endif
+
+#ifndef g_assert_null
+#define g_assert_null(x) g_assert (x == NULL)
+#endif
+
+#if !GLIB_CHECK_VERSION (2, 38, 0)
+#define g_test_skip(s) g_test_message ("SKIP: %s", s)
+#endif
+
 G_END_DECLS
diff --git a/subprojects/libglnx/tests/test-libglnx-xattrs.c b/subprojects/libglnx/tests/test-libglnx-xattrs.c
index 63e12314a332ddd94e7b5b3c17fbec7c761e1350..82def4aafc6b2c5573664780644d528d302f79af 100644
--- a/subprojects/libglnx/tests/test-libglnx-xattrs.c
+++ b/subprojects/libglnx/tests/test-libglnx-xattrs.c
@@ -218,7 +218,11 @@ test_xattr_races (void)
   /* FIXME - this deadlocks for me on 4.9.4-201.fc25.x86_64, whether
    * using overlayfs or xfs as source/dest.
    */
+#if GLIB_CHECK_VERSION (2, 36, 0)
   const guint nprocs = MAX (4, g_get_num_processors ());
+#else
+  const guint nprocs = 4;
+#endif
   struct XattrWorker wdata[nprocs];
   GThread *threads[nprocs];
   g_autoptr(GError) local_error = NULL;