Add QEMU into the monorepo

This adds QEMU and all its dependencies into the monorepo. Enough features are enabled that
this QEMU should be both usable for running tests for Metropolis as well as running customer VMs in
containers. Thus we can also get rid of the QEMU ambient dependency.

All dependencies have their includes fully rewritten as to be reusable without a huge effort. QEMU itself
relies on `includes` attributes since the patch would otherwise be enormous and it is a binary and thus
any include path madness ends there.

Overall though this is quite nice, the final QEMU build with full optimization is <10MiB and has no further
ambient dependencies. It also has full io_uring support, which works very well with our 5.10 kernel.
TPM support is also included.

This is not used anywhere, replacing the ambient dependency and shipping a container will be in an upcoming
revision.

Test Plan:
Manually tested to run a Ubuntu cloud image with io_uring and virtio. Automated tests will follow as
part of its roles in this repo.

X-Origin-Diff: phab/D712
GitOrigin-RevId: 9c2607d75c875b1d65346e3cdac1a5e08467ea33
diff --git a/third_party/glib/BUILD b/third_party/glib/BUILD
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/third_party/glib/BUILD
diff --git a/third_party/glib/cc_fix_spec.prototxt b/third_party/glib/cc_fix_spec.prototxt
new file mode 100644
index 0000000..b85aebd
--- /dev/null
+++ b/third_party/glib/cc_fix_spec.prototxt
@@ -0,0 +1,17 @@
+replace {
+    type: SYSTEM
+    from: "glibconfig.h"
+    to: "glib/glibconfig.h"
+}
+
+replace {
+    type: WORKSPACE
+    from: "build/config.h"
+    to: "glib/config.h"
+}
+
+replace {
+    type: SYSTEM
+    from: "glib.h"
+    to: "glib/glib.h"
+}
\ No newline at end of file
diff --git a/third_party/glib/external.bzl b/third_party/glib/external.bzl
new file mode 100644
index 0000000..0edd3f9
--- /dev/null
+++ b/third_party/glib/external.bzl
@@ -0,0 +1,35 @@
+#  Copyright 2020 The Monogon Project Authors.
+#
+#  SPDX-License-Identifier: Apache-2.0
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+
+load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
+
+def glib_external(name, version):
+    sums = {
+        "2.67.5": "410966db712638dc749054c0a3c3087545d5106643139c25806399a51a8d4ab1",
+    }
+
+    http_archive(
+        name = name,
+        patch_args = ["-p1", "-u"],
+        patches = [
+            "//third_party/glib/patches:bazel_cc_fix.patch",
+            "//third_party/glib/patches:bazel_support.patch",
+        ],
+        sha256 = sums[version],
+        strip_prefix = "glib-" + version,
+        # We cannot use the actual release tarball as it contains files generated incorrectly for our environment
+        urls = ["https://gitlab.gnome.org/GNOME/glib/-/archive/%s/glib-%s.tar.gz" % (version, version)],
+    )
diff --git a/third_party/glib/patches/BUILD b/third_party/glib/patches/BUILD
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/third_party/glib/patches/BUILD
diff --git a/third_party/glib/patches/bazel_cc_fix.patch b/third_party/glib/patches/bazel_cc_fix.patch
new file mode 100644
index 0000000..9bbe72b
--- /dev/null
+++ b/third_party/glib/patches/bazel_cc_fix.patch
@@ -0,0 +1,2407 @@
+Copyright 2020 The Monogon Project Authors.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+
+From c563024e7446e73299291abc1597d6c03010ca46 Mon Sep 17 00:00:00 2001
+From: Lorenz Brun <lorenz@nexantic.com>
+Date: Tue, 9 Mar 2021 22:40:09 +0100
+Subject: [PATCH] bazel_cc_fix patch
+
+---
+ glib/deprecated/gallocator.c         |   6 +-
+ glib/deprecated/gallocator.h         |   2 +-
+ glib/deprecated/gcache.c             |   8 +-
+ glib/deprecated/gcache.h             |   2 +-
+ glib/deprecated/gcompletion.c        |   8 +-
+ glib/deprecated/gcompletion.h        |   2 +-
+ glib/deprecated/gmain.h              |   2 +-
+ glib/deprecated/grel.c               |  12 +-
+ glib/deprecated/grel.h               |   2 +-
+ glib/deprecated/gthread-deprecated.c |  14 +--
+ glib/deprecated/gthread.h            |   2 +-
+ glib/galloca.h                       |   2 +-
+ glib/garray.h                        |   2 +-
+ glib/gasyncqueue.c                   |   2 +-
+ glib/gasyncqueue.h                   |   2 +-
+ glib/gatomic.h                       |   2 +-
+ glib/gbacktrace.h                    |   2 +-
+ glib/gbase64.h                       |   2 +-
+ glib/gbitlock.c                      |  10 +-
+ glib/gbitlock.h                      |   2 +-
+ glib/gbookmarkfile.h                 |   4 +-
+ glib/gbsearcharray.h                 |   2 +-
+ glib/gbytes.c                        |  16 +--
+ glib/gbytes.h                        |   4 +-
+ glib/gcharset.c                      |   2 +-
+ glib/gcharset.h                      |   2 +-
+ glib/gchecksum.h                     |   4 +-
+ glib/gconvert.h                      |   2 +-
+ glib/gdataset.h                      |   2 +-
+ glib/gdatasetprivate.h               |   2 +-
+ glib/gdate.h                         |   4 +-
+ glib/gdatetime.h                     |   2 +-
+ glib/gdir.c                          |   2 +-
+ glib/gdir.h                          |   2 +-
+ glib/genviron.h                      |   2 +-
+ glib/gerror.h                        |   2 +-
+ glib/gfileutils.h                    |   4 +-
+ glib/ggettext.h                      |   2 +-
+ glib/ghash.h                         |   4 +-
+ glib/ghmac.c                         |   2 +-
+ glib/ghmac.h                         |   2 +-
+ glib/ghook.h                         |   2 +-
+ glib/ghostutils.h                    |   2 +-
+ glib/gi18n-lib.h                     |   2 +-
+ glib/gi18n.h                         |   2 +-
+ glib/giochannel.h                    |   6 +-
+ glib/giounix.c                       |   2 +-
+ glib/gkeyfile.h                      |   4 +-
+ glib/glib-object.h                   |  32 +++---
+ glib/glib-private.h                  |   2 +-
+ glib/glib-unix.h                     |   2 +-
+ glib/glib.h                          | 160 +++++++++++++--------------
+ glib/glist.h                         |   4 +-
+ glib/gmain.h                         |   6 +-
+ glib/gmappedfile.h                   |   4 +-
+ glib/gmarkup.h                       |   4 +-
+ glib/gmem.h                          |   2 +-
+ glib/gmessages.h                     |   8 +-
+ glib/gnode.h                         |   2 +-
+ glib/goption.h                       |   4 +-
+ glib/gpattern.h                      |   2 +-
+ glib/gpoll.h                         |   4 +-
+ glib/gprimes.h                       |   2 +-
+ glib/gprintf.h                       |   2 +-
+ glib/gprintfint.h                    |   2 +-
+ glib/gqsort.h                        |   2 +-
+ glib/gquark.h                        |   2 +-
+ glib/gqueue.h                        |   2 +-
+ glib/grand.h                         |   2 +-
+ glib/grcbox.h                        |   2 +-
+ glib/grefcount.h                     |   4 +-
+ glib/gregex.c                        |   2 +-
+ glib/gregex.h                        |   4 +-
+ glib/gscanner.h                      |   4 +-
+ glib/gsequence.h                     |   2 +-
+ glib/gshell.h                        |   2 +-
+ glib/gslice.h                        |   2 +-
+ glib/gslist.h                        |   4 +-
+ glib/gspawn.c                        |   2 +-
+ glib/gspawn.h                        |   2 +-
+ glib/gstdio.h                        |   2 +-
+ glib/gstrfuncs.c                     |   2 +-
+ glib/gstrfuncs.h                     |   6 +-
+ glib/gstring.h                       |   8 +-
+ glib/gstringchunk.h                  |   2 +-
+ glib/gstrvbuilder.h                  |   4 +-
+ glib/gtester.c                       |   6 +-
+ glib/gtestutils.c                    |   2 +-
+ glib/gtestutils.h                    |   8 +-
+ glib/gthread.h                       |   6 +-
+ glib/gthreadpool.h                   |   2 +-
+ glib/gthreadprivate.h                |   2 +-
+ glib/gtimer.h                        |   2 +-
+ glib/gtimezone.h                     |   4 +-
+ glib/gtranslit.c                     |   4 +-
+ glib/gtrashstack.h                   |   2 +-
+ glib/gtree.h                         |   2 +-
+ glib/gtypes.h                        |   6 +-
+ glib/gunibreak.h                     |   4 +-
+ glib/gunicode.h                      |   4 +-
+ glib/guri.h                          |   2 +-
+ glib/gutils.h                        |   2 +-
+ glib/guuid.h                         |   2 +-
+ glib/gvariant-core.c                 |  22 ++--
+ glib/gvariant-core.h                 |   6 +-
+ glib/gvariant-internal.h             |   4 +-
+ glib/gvariant-serialiser.c           |   8 +-
+ glib/gvariant.c                      |  14 +--
+ glib/gvariant.h                      |   6 +-
+ glib/gvarianttype.c                  |   6 +-
+ glib/gvarianttype.h                  |   2 +-
+ glib/gvarianttypeinfo.c              |  10 +-
+ glib/gvarianttypeinfo.h              |   2 +-
+ glib/gversion.h                      |   2 +-
+ glib/gwakeup.c                       |   2 +-
+ glib/gwakeup.h                       |   2 +-
+ glib/gwin32.h                        |   2 +-
+ glib/libcharset/localcharset.c       |   2 +-
+ glib/pcre/pcre_byte_order.c          |   2 +-
+ glib/pcre/pcre_chartables.c          |   2 +-
+ glib/pcre/pcre_compile.c             |   6 +-
+ glib/pcre/pcre_config.c              |   2 +-
+ glib/pcre/pcre_dfa_exec.c            |   2 +-
+ glib/pcre/pcre_exec.c                |   2 +-
+ glib/pcre/pcre_fullinfo.c            |   2 +-
+ glib/pcre/pcre_get.c                 |   2 +-
+ glib/pcre/pcre_globals.c             |   6 +-
+ glib/pcre/pcre_jit_compile.c         |   2 +-
+ glib/pcre/pcre_newline.c             |   2 +-
+ glib/pcre/pcre_ord2utf8.c            |   2 +-
+ glib/pcre/pcre_string_utils.c        |   2 +-
+ glib/pcre/pcre_study.c               |   2 +-
+ glib/pcre/pcre_tables.c              |   2 +-
+ glib/pcre/pcre_valid_utf8.c          |   2 +-
+ glib/pcre/pcre_version.c             |   2 +-
+ glib/pcre/pcre_xclass.c              |   2 +-
+ glib/pcre/ucp.h                      |   4 +-
+ 137 files changed, 338 insertions(+), 338 deletions(-)
+
+diff --git a/glib/deprecated/gallocator.c b/glib/deprecated/gallocator.c
+index 66483b632..6598cbeed 100644
+--- a/glib/deprecated/gallocator.c
++++ b/glib/deprecated/gallocator.c
+@@ -13,7 +13,7 @@
+  * License along with this library; if not, see <http://www.gnu.org/licenses/>.
+  */
+ 
+-#include "config.h"
++#include "glib/config.h"
+ 
+ /* we know we are deprecated here, no need for warnings */
+ #ifndef GLIB_DISABLE_DEPRECATION_WARNINGS
+@@ -22,8 +22,8 @@
+ 
+ #include "gallocator.h"
+ 
+-#include <glib/gmessages.h>
+-#include <glib/gslice.h>
++#include "glib/gmessages.h"
++#include "glib/gslice.h"
+ 
+ struct _GMemChunk {
+   guint alloc_size;           /* the size of an atom */
+diff --git a/glib/deprecated/gallocator.h b/glib/deprecated/gallocator.h
+index 005e92b6e..5fead4206 100644
+--- a/glib/deprecated/gallocator.h
++++ b/glib/deprecated/gallocator.h
+@@ -20,7 +20,7 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gtypes.h>
++#include "glib/gtypes.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/deprecated/gcache.c b/glib/deprecated/gcache.c
+index 9e04145be..c1d33bd3e 100644
+--- a/glib/deprecated/gcache.c
++++ b/glib/deprecated/gcache.c
+@@ -26,7 +26,7 @@
+  * MT safe
+  */
+ 
+-#include "config.h"
++#include "glib/config.h"
+ 
+ /* we know we are deprecated here, no need for warnings */
+ #ifndef GLIB_DISABLE_DEPRECATION_WARNINGS
+@@ -35,9 +35,9 @@
+ 
+ #include "gcache.h"
+ 
+-#include "gslice.h"
+-#include "ghash.h"
+-#include "gtestutils.h"
++#include "glib/gslice.h"
++#include "glib/ghash.h"
++#include "glib/gtestutils.h"
+ 
+ /**
+  * SECTION:caches
+diff --git a/glib/deprecated/gcache.h b/glib/deprecated/gcache.h
+index e1c1f2cde..8ebabca20 100644
+--- a/glib/deprecated/gcache.h
++++ b/glib/deprecated/gcache.h
+@@ -29,7 +29,7 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/glist.h>
++#include "glib/glist.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/deprecated/gcompletion.c b/glib/deprecated/gcompletion.c
+index d09c1f1fa..b11aaa744 100644
+--- a/glib/deprecated/gcompletion.c
++++ b/glib/deprecated/gcompletion.c
+@@ -26,7 +26,7 @@
+  * MT safe
+  */
+ 
+-#include "config.h"
++#include "glib/config.h"
+ 
+ /* we know we are deprecated here, no need for warnings */
+ #ifndef GLIB_DISABLE_DEPRECATION_WARNINGS
+@@ -35,9 +35,9 @@
+ 
+ #include "gcompletion.h"
+ 
+-#include <glib/gstrfuncs.h>
+-#include <glib/gmessages.h>
+-#include <glib/gunicode.h>
++#include "glib/gstrfuncs.h"
++#include "glib/gmessages.h"
++#include "glib/gunicode.h"
+ 
+ #include <string.h>
+ 
+diff --git a/glib/deprecated/gcompletion.h b/glib/deprecated/gcompletion.h
+index 2fd1f0393..b5ff33172 100644
+--- a/glib/deprecated/gcompletion.h
++++ b/glib/deprecated/gcompletion.h
+@@ -29,7 +29,7 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/glist.h>
++#include "glib/glist.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/deprecated/gmain.h b/glib/deprecated/gmain.h
+index 5d08eb6b4..50c177deb 100644
+--- a/glib/deprecated/gmain.h
++++ b/glib/deprecated/gmain.h
+@@ -29,7 +29,7 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gmain.h>
++#include "glib/gmain.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/deprecated/grel.c b/glib/deprecated/grel.c
+index b48ec1173..a42d1ba6d 100644
+--- a/glib/deprecated/grel.c
++++ b/glib/deprecated/grel.c
+@@ -27,7 +27,7 @@
+  * MT safe
+  */
+ 
+-#include "config.h"
++#include "glib/config.h"
+ 
+ /* we know we are deprecated here, no need for warnings */
+ #ifndef GLIB_DISABLE_DEPRECATION_WARNINGS
+@@ -36,11 +36,11 @@
+ 
+ #include "grel.h"
+ 
+-#include <glib/gmessages.h>
+-#include <glib/gtestutils.h>
+-#include <glib/gstring.h>
+-#include <glib/gslice.h>
+-#include <glib/ghash.h>
++#include "glib/gmessages.h"
++#include "glib/gtestutils.h"
++#include "glib/gstring.h"
++#include "glib/gslice.h"
++#include "glib/ghash.h"
+ 
+ #include <stdarg.h>
+ #include <string.h>
+diff --git a/glib/deprecated/grel.h b/glib/deprecated/grel.h
+index 3a65240c1..68745ee03 100644
+--- a/glib/deprecated/grel.h
++++ b/glib/deprecated/grel.h
+@@ -29,7 +29,7 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gtypes.h>
++#include "glib/gtypes.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/deprecated/gthread-deprecated.c b/glib/deprecated/gthread-deprecated.c
+index e7e68fbd6..fa0648ef3 100644
+--- a/glib/deprecated/gthread-deprecated.c
++++ b/glib/deprecated/gthread-deprecated.c
+@@ -19,22 +19,22 @@
+  * License along with this library; if not, see <http://www.gnu.org/licenses/>.
+  */
+ 
+-#include "config.h"
++#include "glib/config.h"
+ 
+ /* we know we are deprecated here, no need for warnings */
+ #ifndef GLIB_DISABLE_DEPRECATION_WARNINGS
+ #define GLIB_DISABLE_DEPRECATION_WARNINGS
+ #endif
+ 
+-#include "gmessages.h"
+-#include "gslice.h"
++#include "glib/gmessages.h"
++#include "glib/gslice.h"
+ #include "gmain.h"
+ #include "gthread.h"
+-#include "gthreadprivate.h"
+-#include "deprecated/gthread.h"
+-#include "garray.h"
++#include "glib/gthreadprivate.h"
++#include "gthread.h"
++#include "glib/garray.h"
+ 
+-#include "gutils.h"
++#include "glib/gutils.h"
+ 
+ /* {{{1 Documentation */
+ 
+diff --git a/glib/deprecated/gthread.h b/glib/deprecated/gthread.h
+index 33b422240..380444f01 100644
+--- a/glib/deprecated/gthread.h
++++ b/glib/deprecated/gthread.h
+@@ -29,7 +29,7 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gthread.h>
++#include "glib/gthread.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/galloca.h b/glib/galloca.h
+index 47151ee8b..35c31fba9 100644
+--- a/glib/galloca.h
++++ b/glib/galloca.h
+@@ -29,7 +29,7 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gtypes.h>
++#include "gtypes.h"
+ 
+ #if defined(__BIONIC__) && defined (GLIB_HAVE_ALLOCA_H)
+ # include <alloca.h>
+diff --git a/glib/garray.h b/glib/garray.h
+index 67131b5b3..52775a281 100644
+--- a/glib/garray.h
++++ b/glib/garray.h
+@@ -29,7 +29,7 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gtypes.h>
++#include "gtypes.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/gasyncqueue.c b/glib/gasyncqueue.c
+index a452617fd..2a990ef8d 100644
+--- a/glib/gasyncqueue.c
++++ b/glib/gasyncqueue.c
+@@ -33,7 +33,7 @@
+ #include "gtestutils.h"
+ #include "gtimer.h"
+ #include "gthread.h"
+-#include "deprecated/gthread.h"
++#include "glib/deprecated/gthread.h"
+ 
+ 
+ /**
+diff --git a/glib/gasyncqueue.h b/glib/gasyncqueue.h
+index 73e537b07..30587f511 100644
+--- a/glib/gasyncqueue.h
++++ b/glib/gasyncqueue.h
+@@ -29,7 +29,7 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gthread.h>
++#include "gthread.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/gatomic.h b/glib/gatomic.h
+index 2ad648aad..da65a6029 100644
+--- a/glib/gatomic.h
++++ b/glib/gatomic.h
+@@ -24,7 +24,7 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gtypes.h>
++#include "gtypes.h"
+ 
+ #if defined(glib_typeof_2_68) && GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_68
+ /* for glib_typeof */
+diff --git a/glib/gbacktrace.h b/glib/gbacktrace.h
+index 09b8ccbd3..30894769a 100644
+--- a/glib/gbacktrace.h
++++ b/glib/gbacktrace.h
+@@ -29,7 +29,7 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gtypes.h>
++#include "gtypes.h"
+ #ifdef __sun__
+ #include <sys/select.h>
+ #endif
+diff --git a/glib/gbase64.h b/glib/gbase64.h
+index 662c597ff..26b0607dc 100644
+--- a/glib/gbase64.h
++++ b/glib/gbase64.h
+@@ -23,7 +23,7 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gtypes.h>
++#include "gtypes.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/gbitlock.c b/glib/gbitlock.c
+index c08a6f934..e586b1548 100644
+--- a/glib/gbitlock.c
++++ b/glib/gbitlock.c
+@@ -22,11 +22,11 @@
+ 
+ #include "gbitlock.h"
+ 
+-#include <glib/gmessages.h>
+-#include <glib/gatomic.h>
+-#include <glib/gslist.h>
+-#include <glib/gthread.h>
+-#include <glib/gslice.h>
++#include "gmessages.h"
++#include "gatomic.h"
++#include "gslist.h"
++#include "gthread.h"
++#include "gslice.h"
+ 
+ #include "gthreadprivate.h"
+ 
+diff --git a/glib/gbitlock.h b/glib/gbitlock.h
+index 8054bc8ae..6a0c69194 100644
+--- a/glib/gbitlock.h
++++ b/glib/gbitlock.h
+@@ -21,7 +21,7 @@
+ #ifndef __G_BITLOCK_H__
+ #define __G_BITLOCK_H__
+ 
+-#include <glib/gtypes.h>
++#include "gtypes.h"
+ 
+ #if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
+ #error "Only <glib.h> can be included directly."
+diff --git a/glib/gbookmarkfile.h b/glib/gbookmarkfile.h
+index e9cfbf12b..9355aa074 100644
+--- a/glib/gbookmarkfile.h
++++ b/glib/gbookmarkfile.h
+@@ -23,8 +23,8 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gdatetime.h>
+-#include <glib/gerror.h>
++#include "gdatetime.h"
++#include "gerror.h"
+ #include <time.h>
+ 
+ G_BEGIN_DECLS
+diff --git a/glib/gbsearcharray.h b/glib/gbsearcharray.h
+index 39afa3f79..e44ff0f8e 100644
+--- a/glib/gbsearcharray.h
++++ b/glib/gbsearcharray.h
+@@ -19,7 +19,7 @@
+ #ifndef __G_BSEARCH_ARRAY_H__
+ #define __G_BSEARCH_ARRAY_H__
+ 
+-#include <glib.h>
++#include "glib/glib.h"
+ #include <string.h>
+ 
+ 
+diff --git a/glib/gbytes.c b/glib/gbytes.c
+index aaadf451b..3fd73911f 100644
+--- a/glib/gbytes.c
++++ b/glib/gbytes.c
+@@ -23,14 +23,14 @@
+ 
+ #include "gbytes.h"
+ 
+-#include <glib/garray.h>
+-#include <glib/gstrfuncs.h>
+-#include <glib/gatomic.h>
+-#include <glib/gslice.h>
+-#include <glib/gtestutils.h>
+-#include <glib/gmem.h>
+-#include <glib/gmessages.h>
+-#include <glib/grefcount.h>
++#include "garray.h"
++#include "gstrfuncs.h"
++#include "gatomic.h"
++#include "gslice.h"
++#include "gtestutils.h"
++#include "gmem.h"
++#include "gmessages.h"
++#include "grefcount.h"
+ 
+ #include <string.h>
+ 
+diff --git a/glib/gbytes.h b/glib/gbytes.h
+index 0bb1517b9..13c818de3 100644
+--- a/glib/gbytes.h
++++ b/glib/gbytes.h
+@@ -26,8 +26,8 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gtypes.h>
+-#include <glib/garray.h>
++#include "gtypes.h"
++#include "garray.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/gcharset.c b/glib/gcharset.c
+index bb775bda4..f81ee1346 100644
+--- a/glib/gcharset.c
++++ b/glib/gcharset.c
+@@ -32,7 +32,7 @@
+ #include "gwin32.h"
+ #endif
+ 
+-#include "libcharset/libcharset.h"
++#include "glib/libcharset/libcharset.h"
+ 
+ #include <string.h>
+ #include <stdio.h>
+diff --git a/glib/gcharset.h b/glib/gcharset.h
+index 82020f604..4dbcb0948 100644
+--- a/glib/gcharset.h
++++ b/glib/gcharset.h
+@@ -23,7 +23,7 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gtypes.h>
++#include "gtypes.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/gchecksum.h b/glib/gchecksum.h
+index 599f439c1..dce60f026 100644
+--- a/glib/gchecksum.h
++++ b/glib/gchecksum.h
+@@ -23,8 +23,8 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gtypes.h>
+-#include <glib/gbytes.h>
++#include "gtypes.h"
++#include "gbytes.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/gconvert.h b/glib/gconvert.h
+index be58ecfbe..d8b0e7947 100644
+--- a/glib/gconvert.h
++++ b/glib/gconvert.h
+@@ -29,7 +29,7 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gerror.h>
++#include "gerror.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/gdataset.h b/glib/gdataset.h
+index 89a34c71a..d95f1d579 100644
+--- a/glib/gdataset.h
++++ b/glib/gdataset.h
+@@ -29,7 +29,7 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gquark.h>
++#include "gquark.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/gdatasetprivate.h b/glib/gdatasetprivate.h
+index eb95278f1..21233cd22 100644
+--- a/glib/gdatasetprivate.h
++++ b/glib/gdatasetprivate.h
+@@ -26,7 +26,7 @@
+ #ifndef __G_DATASETPRIVATE_H__
+ #define __G_DATASETPRIVATE_H__
+ 
+-#include <gatomic.h>
++#include "gatomic.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/gdate.h b/glib/gdate.h
+index 65fe811fa..8a52559e7 100644
+--- a/glib/gdate.h
++++ b/glib/gdate.h
+@@ -31,8 +31,8 @@
+ 
+ #include <time.h>
+ 
+-#include <glib/gtypes.h>
+-#include <glib/gquark.h>
++#include "gtypes.h"
++#include "gquark.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/gdatetime.h b/glib/gdatetime.h
+index fa43d8531..ee83e72ec 100644
+--- a/glib/gdatetime.h
++++ b/glib/gdatetime.h
+@@ -28,7 +28,7 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gtimezone.h>
++#include "gtimezone.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/gdir.c b/glib/gdir.c
+index c26edc1dc..7f643ab51 100644
+--- a/glib/gdir.c
++++ b/glib/gdir.c
+@@ -41,7 +41,7 @@
+ #include "glibintl.h"
+ 
+ #if defined (_MSC_VER) && !defined (HAVE_DIRENT_H)
+-#include "dirent/dirent.h"
++#include "glib/dirent/dirent.h"
+ #endif
+ 
+ #include "glib-private.h" /* g_dir_open_with_errno, g_dir_new_from_dirp */
+diff --git a/glib/gdir.h b/glib/gdir.h
+index 8f9d6bd7c..4bac1df5e 100644
+--- a/glib/gdir.h
++++ b/glib/gdir.h
+@@ -26,7 +26,7 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gerror.h>
++#include "gerror.h"
+ 
+ #ifdef G_OS_UNIX
+ #include <dirent.h>
+diff --git a/glib/genviron.h b/glib/genviron.h
+index c4bf01a5a..8624e2eda 100644
+--- a/glib/genviron.h
++++ b/glib/genviron.h
+@@ -29,7 +29,7 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gtypes.h>
++#include "gtypes.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/gerror.h b/glib/gerror.h
+index 6431d5b6c..ae3bf4378 100644
+--- a/glib/gerror.h
++++ b/glib/gerror.h
+@@ -25,7 +25,7 @@
+ 
+ #include <stdarg.h>
+ 
+-#include <glib/gquark.h>
++#include "gquark.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/gfileutils.h b/glib/gfileutils.h
+index d6b1d9eec..16cb7f481 100644
+--- a/glib/gfileutils.h
++++ b/glib/gfileutils.h
+@@ -23,8 +23,8 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glibconfig.h>
+-#include <glib/gerror.h>
++#include "glib/glibconfig.h"
++#include "gerror.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/ggettext.h b/glib/ggettext.h
+index 036f9d534..7a2844131 100644
+--- a/glib/ggettext.h
++++ b/glib/ggettext.h
+@@ -29,7 +29,7 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gtypes.h>
++#include "gtypes.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/ghash.h b/glib/ghash.h
+index e9ce64505..9bf818507 100644
+--- a/glib/ghash.h
++++ b/glib/ghash.h
+@@ -29,8 +29,8 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gtypes.h>
+-#include <glib/glist.h>
++#include "gtypes.h"
++#include "glist.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/ghmac.c b/glib/ghmac.c
+index 49fd272f0..91689754a 100644
+--- a/glib/ghmac.c
++++ b/glib/ghmac.c
+@@ -24,7 +24,7 @@
+ 
+ #include "ghmac.h"
+ 
+-#include "glib/galloca.h"
++#include "galloca.h"
+ #include "gatomic.h"
+ #include "gslice.h"
+ #include "gmem.h"
+diff --git a/glib/ghmac.h b/glib/ghmac.h
+index 36e24eb29..843b202bb 100644
+--- a/glib/ghmac.h
++++ b/glib/ghmac.h
+@@ -23,7 +23,7 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gtypes.h>
++#include "gtypes.h"
+ #include "gchecksum.h"
+ 
+ G_BEGIN_DECLS
+diff --git a/glib/ghook.h b/glib/ghook.h
+index 83ad1bdef..f377245da 100644
+--- a/glib/ghook.h
++++ b/glib/ghook.h
+@@ -29,7 +29,7 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gmem.h>
++#include "gmem.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/ghostutils.h b/glib/ghostutils.h
+index 59d2d41ed..37f8ed916 100644
+--- a/glib/ghostutils.h
++++ b/glib/ghostutils.h
+@@ -22,7 +22,7 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gtypes.h>
++#include "gtypes.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/gi18n-lib.h b/glib/gi18n-lib.h
+index 74e50a3a8..52e0e2201 100644
+--- a/glib/gi18n-lib.h
++++ b/glib/gi18n-lib.h
+@@ -18,7 +18,7 @@
+ #ifndef __G_I18N_LIB_H__
+ #define __G_I18N_LIB_H__
+ 
+-#include <glib.h>
++#include "glib/glib.h"
+ 
+ #include <libintl.h>
+ #include <string.h>
+diff --git a/glib/gi18n.h b/glib/gi18n.h
+index 5f996d24e..39a035c1b 100644
+--- a/glib/gi18n.h
++++ b/glib/gi18n.h
+@@ -18,7 +18,7 @@
+ #ifndef __G_I18N_H__
+ #define __G_I18N_H__
+ 
+-#include <glib.h>
++#include "glib/glib.h"
+ 
+ #include <libintl.h>
+ #include <string.h>
+diff --git a/glib/giochannel.h b/glib/giochannel.h
+index 82743602a..ecb748937 100644
+--- a/glib/giochannel.h
++++ b/glib/giochannel.h
+@@ -29,9 +29,9 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gconvert.h>
+-#include <glib/gmain.h>
+-#include <glib/gstring.h>
++#include "gconvert.h"
++#include "gmain.h"
++#include "gstring.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/giounix.c b/glib/giounix.c
+index b86d79db7..3ac2c5134 100644
+--- a/glib/giounix.c
++++ b/glib/giounix.c
+@@ -40,7 +40,7 @@
+ #include <errno.h>
+ #include <string.h>
+ #include <fcntl.h>
+-#include <glib/gstdio.h>
++#include "gstdio.h"
+ 
+ #include "giochannel.h"
+ 
+diff --git a/glib/gkeyfile.h b/glib/gkeyfile.h
+index 7a1004841..6d30fa378 100644
+--- a/glib/gkeyfile.h
++++ b/glib/gkeyfile.h
+@@ -25,8 +25,8 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gbytes.h>
+-#include <glib/gerror.h>
++#include "gbytes.h"
++#include "gerror.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/glib-object.h b/glib/glib-object.h
+index fa824f3bb..ca0043ca0 100644
+--- a/glib/glib-object.h
++++ b/glib/glib-object.h
+@@ -19,23 +19,23 @@
+ 
+ #define __GLIB_GOBJECT_H_INSIDE__
+ 
+-#include <gobject/gbinding.h>
+-#include <gobject/gboxed.h>
+-#include <gobject/genums.h>
+-#include <gobject/glib-enumtypes.h>
+-#include <gobject/gobject.h>
+-#include <gobject/gparam.h>
+-#include <gobject/gparamspecs.h>
+-#include <gobject/gsignal.h>
+-#include <gobject/gsourceclosure.h>
+-#include <gobject/gtype.h>
+-#include <gobject/gtypemodule.h>
+-#include <gobject/gtypeplugin.h>
+-#include <gobject/gvaluearray.h>
+-#include <gobject/gvalue.h>
+-#include <gobject/gvaluetypes.h>
++#include "gobject/gbinding.h"
++#include "gobject/gboxed.h"
++#include "gobject/genums.h"
++#include "build/gobject/glib-enumtypes.h"
++#include "gobject/gobject.h"
++#include "gobject/gparam.h"
++#include "gobject/gparamspecs.h"
++#include "gobject/gsignal.h"
++#include "gobject/gsourceclosure.h"
++#include "gobject/gtype.h"
++#include "gobject/gtypemodule.h"
++#include "gobject/gtypeplugin.h"
++#include "gobject/gvaluearray.h"
++#include "gobject/gvalue.h"
++#include "gobject/gvaluetypes.h"
+ 
+-#include <gobject/gobject-autocleanups.h>
++#include "gobject/gobject-autocleanups.h"
+ 
+ #undef __GLIB_GOBJECT_H_INSIDE__
+ 
+diff --git a/glib/glib-private.h b/glib/glib-private.h
+index 8de380d12..b0a1370cd 100644
+--- a/glib/glib-private.h
++++ b/glib/glib-private.h
+@@ -18,7 +18,7 @@
+ #ifndef __GLIB_PRIVATE_H__
+ #define __GLIB_PRIVATE_H__
+ 
+-#include <glib.h>
++#include "glib/glib.h"
+ #include "gwakeup.h"
+ #include "gstdioprivate.h"
+ 
+diff --git a/glib/glib-unix.h b/glib/glib-unix.h
+index a5ea9a1c5..b87708312 100644
+--- a/glib/glib-unix.h
++++ b/glib/glib-unix.h
+@@ -30,7 +30,7 @@
+ #include <stdlib.h>
+ #include <fcntl.h>
+ 
+-#include <glib.h>
++#include "glib/glib.h"
+ 
+ #ifndef G_OS_UNIX
+ #error "This header may only be used on UNIX"
+diff --git a/glib/glib.h b/glib/glib.h
+index a4d43a9bf..db3c0bf14 100644
+--- a/glib/glib.h
++++ b/glib/glib.h
+@@ -27,91 +27,91 @@
+ 
+ #define __GLIB_H_INSIDE__
+ 
+-#include <glib/galloca.h>
+-#include <glib/garray.h>
+-#include <glib/gasyncqueue.h>
+-#include <glib/gatomic.h>
+-#include <glib/gbacktrace.h>
+-#include <glib/gbase64.h>
+-#include <glib/gbitlock.h>
+-#include <glib/gbookmarkfile.h>
+-#include <glib/gbytes.h>
+-#include <glib/gcharset.h>
+-#include <glib/gchecksum.h>
+-#include <glib/gconvert.h>
+-#include <glib/gdataset.h>
+-#include <glib/gdate.h>
+-#include <glib/gdatetime.h>
+-#include <glib/gdir.h>
+-#include <glib/genviron.h>
+-#include <glib/gerror.h>
+-#include <glib/gfileutils.h>
+-#include <glib/ggettext.h>
+-#include <glib/ghash.h>
+-#include <glib/ghmac.h>
+-#include <glib/ghook.h>
+-#include <glib/ghostutils.h>
+-#include <glib/giochannel.h>
+-#include <glib/gkeyfile.h>
+-#include <glib/glist.h>
+-#include <glib/gmacros.h>
+-#include <glib/gmain.h>
+-#include <glib/gmappedfile.h>
+-#include <glib/gmarkup.h>
+-#include <glib/gmem.h>
+-#include <glib/gmessages.h>
+-#include <glib/gnode.h>
+-#include <glib/goption.h>
+-#include <glib/gpattern.h>
+-#include <glib/gpoll.h>
+-#include <glib/gprimes.h>
+-#include <glib/gqsort.h>
+-#include <glib/gquark.h>
+-#include <glib/gqueue.h>
+-#include <glib/grand.h>
+-#include <glib/grcbox.h>
+-#include <glib/grefcount.h>
+-#include <glib/grefstring.h>
+-#include <glib/gregex.h>
+-#include <glib/gscanner.h>
+-#include <glib/gsequence.h>
+-#include <glib/gshell.h>
+-#include <glib/gslice.h>
+-#include <glib/gslist.h>
+-#include <glib/gspawn.h>
+-#include <glib/gstrfuncs.h>
+-#include <glib/gstringchunk.h>
+-#include <glib/gstring.h>
+-#include <glib/gstrvbuilder.h>
+-#include <glib/gtestutils.h>
+-#include <glib/gthread.h>
+-#include <glib/gthreadpool.h>
+-#include <glib/gtimer.h>
+-#include <glib/gtimezone.h>
+-#include <glib/gtrashstack.h>
+-#include <glib/gtree.h>
+-#include <glib/gtypes.h>
+-#include <glib/gunicode.h>
+-#include <glib/guri.h>
+-#include <glib/gutils.h>
+-#include <glib/guuid.h>
+-#include <glib/gvariant.h>
+-#include <glib/gvarianttype.h>
+-#include <glib/gversion.h>
+-#include <glib/gversionmacros.h>
++#include "galloca.h"
++#include "garray.h"
++#include "gasyncqueue.h"
++#include "gatomic.h"
++#include "gbacktrace.h"
++#include "gbase64.h"
++#include "gbitlock.h"
++#include "gbookmarkfile.h"
++#include "gbytes.h"
++#include "gcharset.h"
++#include "gchecksum.h"
++#include "gconvert.h"
++#include "gdataset.h"
++#include "gdate.h"
++#include "gdatetime.h"
++#include "gdir.h"
++#include "genviron.h"
++#include "gerror.h"
++#include "gfileutils.h"
++#include "ggettext.h"
++#include "ghash.h"
++#include "ghmac.h"
++#include "ghook.h"
++#include "ghostutils.h"
++#include "giochannel.h"
++#include "gkeyfile.h"
++#include "glist.h"
++#include "gmacros.h"
++#include "gmain.h"
++#include "gmappedfile.h"
++#include "gmarkup.h"
++#include "gmem.h"
++#include "gmessages.h"
++#include "gnode.h"
++#include "goption.h"
++#include "gpattern.h"
++#include "gpoll.h"
++#include "gprimes.h"
++#include "gqsort.h"
++#include "gquark.h"
++#include "gqueue.h"
++#include "grand.h"
++#include "grcbox.h"
++#include "grefcount.h"
++#include "grefstring.h"
++#include "gregex.h"
++#include "gscanner.h"
++#include "gsequence.h"
++#include "gshell.h"
++#include "gslice.h"
++#include "gslist.h"
++#include "gspawn.h"
++#include "gstrfuncs.h"
++#include "gstringchunk.h"
++#include "gstring.h"
++#include "gstrvbuilder.h"
++#include "gtestutils.h"
++#include "gthread.h"
++#include "gthreadpool.h"
++#include "gtimer.h"
++#include "gtimezone.h"
++#include "gtrashstack.h"
++#include "gtree.h"
++#include "gtypes.h"
++#include "gunicode.h"
++#include "guri.h"
++#include "gutils.h"
++#include "guuid.h"
++#include "gvariant.h"
++#include "gvarianttype.h"
++#include "gversion.h"
++#include "gversionmacros.h"
+ 
+ #ifdef G_PLATFORM_WIN32
+-#include <glib/gwin32.h>
++#include "gwin32.h"
+ #endif
+ 
+-#include <glib/deprecated/gallocator.h>
+-#include <glib/deprecated/gcache.h>
+-#include <glib/deprecated/gcompletion.h>
+-#include <glib/deprecated/gmain.h>
+-#include <glib/deprecated/grel.h>
+-#include <glib/deprecated/gthread.h>
++#include "glib/deprecated/gallocator.h"
++#include "glib/deprecated/gcache.h"
++#include "glib/deprecated/gcompletion.h"
++#include "glib/deprecated/gmain.h"
++#include "glib/deprecated/grel.h"
++#include "glib/deprecated/gthread.h"
+ 
+-#include <glib/glib-autocleanups.h>
++#include "glib-autocleanups.h"
+ 
+ #undef __GLIB_H_INSIDE__
+ 
+diff --git a/glib/glist.h b/glib/glist.h
+index ddea3cf35..fc822fa5c 100644
+--- a/glib/glist.h
++++ b/glib/glist.h
+@@ -29,8 +29,8 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gmem.h>
+-#include <glib/gnode.h>
++#include "gmem.h"
++#include "gnode.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/gmain.h b/glib/gmain.h
+index 5c0e524cc..12504f6e3 100644
+--- a/glib/gmain.h
++++ b/glib/gmain.h
+@@ -22,9 +22,9 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gpoll.h>
+-#include <glib/gslist.h>
+-#include <glib/gthread.h>
++#include "gpoll.h"
++#include "gslist.h"
++#include "gthread.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/gmappedfile.h b/glib/gmappedfile.h
+index 8256811e6..aeb80e3c0 100644
+--- a/glib/gmappedfile.h
++++ b/glib/gmappedfile.h
+@@ -24,8 +24,8 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gbytes.h>
+-#include <glib/gerror.h>
++#include "gbytes.h"
++#include "gerror.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/gmarkup.h b/glib/gmarkup.h
+index 96375b55a..b7c65f6b4 100644
+--- a/glib/gmarkup.h
++++ b/glib/gmarkup.h
+@@ -25,8 +25,8 @@
+ 
+ #include <stdarg.h>
+ 
+-#include <glib/gerror.h>
+-#include <glib/gslist.h>
++#include "gerror.h"
++#include "gslist.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/gmem.h b/glib/gmem.h
+index ccf477843..8b1822bd3 100644
+--- a/glib/gmem.h
++++ b/glib/gmem.h
+@@ -29,7 +29,7 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gutils.h>
++#include "gutils.h"
+ 
+ #if defined(glib_typeof_2_68) && GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_68
+ /* for glib_typeof */
+diff --git a/glib/gmessages.h b/glib/gmessages.h
+index 43c6d67b9..f4ece7894 100644
+--- a/glib/gmessages.h
++++ b/glib/gmessages.h
+@@ -30,10 +30,10 @@
+ #endif
+ 
+ #include <stdarg.h>
+-#include <glib/gatomic.h>
+-#include <glib/gtypes.h>
+-#include <glib/gmacros.h>
+-#include <glib/gvariant.h>
++#include "gatomic.h"
++#include "gtypes.h"
++#include "gmacros.h"
++#include "gvariant.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/gnode.h b/glib/gnode.h
+index 693e6154d..217084cf7 100644
+--- a/glib/gnode.h
++++ b/glib/gnode.h
+@@ -29,7 +29,7 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gmem.h>
++#include "gmem.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/goption.h b/glib/goption.h
+index 63552fb0d..4b75b74cb 100644
+--- a/glib/goption.h
++++ b/glib/goption.h
+@@ -23,8 +23,8 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gerror.h>
+-#include <glib/gquark.h>
++#include "gerror.h"
++#include "gquark.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/gpattern.h b/glib/gpattern.h
+index bd9e4a7af..5a8b5d53a 100644
+--- a/glib/gpattern.h
++++ b/glib/gpattern.h
+@@ -22,7 +22,7 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gtypes.h>
++#include "gtypes.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/gpoll.h b/glib/gpoll.h
+index 2cbd69729..306a48069 100644
+--- a/glib/gpoll.h
++++ b/glib/gpoll.h
+@@ -22,8 +22,8 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glibconfig.h>
+-#include <glib/gtypes.h>
++#include "glib/glibconfig.h"
++#include "gtypes.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/gprimes.h b/glib/gprimes.h
+index 0b6ea850d..634bdddc3 100644
+--- a/glib/gprimes.h
++++ b/glib/gprimes.h
+@@ -29,7 +29,7 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gtypes.h>
++#include "gtypes.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/gprintf.h b/glib/gprintf.h
+index 429de7a24..2a224e3a4 100644
+--- a/glib/gprintf.h
++++ b/glib/gprintf.h
+@@ -18,7 +18,7 @@
+ #ifndef __G_PRINTF_H__
+ #define __G_PRINTF_H__
+ 
+-#include <glib.h>
++#include "glib/glib.h"
+ #include <stdio.h>
+ #include <stdarg.h>
+ 
+diff --git a/glib/gprintfint.h b/glib/gprintfint.h
+index 9ccf2eb47..e8cffcd58 100644
+--- a/glib/gprintfint.h
++++ b/glib/gprintfint.h
+@@ -39,7 +39,7 @@
+ 
+ #else
+ 
+-#include "gnulib/printf.h"
++#include "glib/gnulib/printf.h"
+ 
+ #define _g_printf    _g_gnulib_printf
+ #define _g_fprintf   _g_gnulib_fprintf
+diff --git a/glib/gqsort.h b/glib/gqsort.h
+index 2ecd75fae..63ca144ca 100644
+--- a/glib/gqsort.h
++++ b/glib/gqsort.h
+@@ -29,7 +29,7 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gtypes.h>
++#include "gtypes.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/gquark.h b/glib/gquark.h
+index 1822c4bf7..5badfd45c 100644
+--- a/glib/gquark.h
++++ b/glib/gquark.h
+@@ -29,7 +29,7 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gtypes.h>
++#include "gtypes.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/gqueue.h b/glib/gqueue.h
+index 65d609f1a..c38219d53 100644
+--- a/glib/gqueue.h
++++ b/glib/gqueue.h
+@@ -29,7 +29,7 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/glist.h>
++#include "glist.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/grand.h b/glib/grand.h
+index d64e50253..bdf82a6fe 100644
+--- a/glib/grand.h
++++ b/glib/grand.h
+@@ -29,7 +29,7 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gtypes.h>
++#include "gtypes.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/grcbox.h b/glib/grcbox.h
+index 47dfd488b..a87629588 100644
+--- a/glib/grcbox.h
++++ b/glib/grcbox.h
+@@ -22,7 +22,7 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gmem.h>
++#include "gmem.h"
+ 
+ #if defined(glib_typeof_2_68) && GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_68
+ /* for glib_typeof */
+diff --git a/glib/grefcount.h b/glib/grefcount.h
+index 599dac978..f46364db5 100644
+--- a/glib/grefcount.h
++++ b/glib/grefcount.h
+@@ -23,8 +23,8 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gatomic.h>
+-#include <glib/gtypes.h>
++#include "gatomic.h"
++#include "gtypes.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/gregex.c b/glib/gregex.c
+index 5e6ddfb46..a89bfe779 100644
+--- a/glib/gregex.c
++++ b/glib/gregex.c
+@@ -25,7 +25,7 @@
+ #ifdef USE_SYSTEM_PCRE
+ #include <pcre.h>
+ #else
+-#include "pcre/pcre.h"
++#include "glib/pcre/pcre.h"
+ #endif
+ 
+ #include "gtypes.h"
+diff --git a/glib/gregex.h b/glib/gregex.h
+index 45e198df6..b765bc17c 100644
+--- a/glib/gregex.h
++++ b/glib/gregex.h
+@@ -25,8 +25,8 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gerror.h>
+-#include <glib/gstring.h>
++#include "gerror.h"
++#include "gstring.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/gscanner.h b/glib/gscanner.h
+index d87b4533e..837891caf 100644
+--- a/glib/gscanner.h
++++ b/glib/gscanner.h
+@@ -29,8 +29,8 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gdataset.h>
+-#include <glib/ghash.h>
++#include "gdataset.h"
++#include "ghash.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/gsequence.h b/glib/gsequence.h
+index 6dce2f4fb..ad69d34f3 100644
+--- a/glib/gsequence.h
++++ b/glib/gsequence.h
+@@ -23,7 +23,7 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gtypes.h>
++#include "gtypes.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/gshell.h b/glib/gshell.h
+index 798dd7808..77d081f43 100644
+--- a/glib/gshell.h
++++ b/glib/gshell.h
+@@ -23,7 +23,7 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gerror.h>
++#include "gerror.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/gslice.h b/glib/gslice.h
+index 002410635..5da19645d 100644
+--- a/glib/gslice.h
++++ b/glib/gslice.h
+@@ -22,7 +22,7 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gtypes.h>
++#include "gtypes.h"
+ #include <string.h>
+ 
+ G_BEGIN_DECLS
+diff --git a/glib/gslist.h b/glib/gslist.h
+index 249417986..954fa70e8 100644
+--- a/glib/gslist.h
++++ b/glib/gslist.h
+@@ -29,8 +29,8 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gmem.h>
+-#include <glib/gnode.h>
++#include "gmem.h"
++#include "gnode.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/gspawn.c b/glib/gspawn.c
+index 95f5b868e..62505ebda 100644
+--- a/glib/gspawn.c
++++ b/glib/gspawn.c
+@@ -55,7 +55,7 @@
+ #include "gspawn-private.h"
+ #include "gthread.h"
+ #include "gtrace-private.h"
+-#include "glib/gstdio.h"
++#include "gstdio.h"
+ 
+ #include "genviron.h"
+ #include "gmem.h"
+diff --git a/glib/gspawn.h b/glib/gspawn.h
+index e09dc2aec..ca0a34f42 100644
+--- a/glib/gspawn.h
++++ b/glib/gspawn.h
+@@ -23,7 +23,7 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gerror.h>
++#include "gerror.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/gstdio.h b/glib/gstdio.h
+index 7ed9c5dfa..ce94a8c1a 100644
+--- a/glib/gstdio.h
++++ b/glib/gstdio.h
+@@ -19,7 +19,7 @@
+ #ifndef __G_STDIO_H__
+ #define __G_STDIO_H__
+ 
+-#include <glib/gprintf.h>
++#include "gprintf.h"
+ 
+ #include <sys/stat.h>
+ 
+diff --git a/glib/gstrfuncs.c b/glib/gstrfuncs.c
+index b6ff60f51..95381d682 100644
+--- a/glib/gstrfuncs.c
++++ b/glib/gstrfuncs.c
+@@ -35,7 +35,7 @@
+ #include <string.h>
+ #include <locale.h>
+ #include <errno.h>
+-#include <garray.h>
++#include "garray.h"
+ #include <ctype.h>              /* For tolower() */
+ 
+ #ifdef HAVE_XLOCALE_H
+diff --git a/glib/gstrfuncs.h b/glib/gstrfuncs.h
+index 2b44c9a55..57d6ba7af 100644
+--- a/glib/gstrfuncs.h
++++ b/glib/gstrfuncs.h
+@@ -30,9 +30,9 @@
+ #endif
+ 
+ #include <stdarg.h>
+-#include <glib/gmacros.h>
+-#include <glib/gtypes.h>
+-#include <glib/gerror.h>
++#include "gmacros.h"
++#include "gtypes.h"
++#include "gerror.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/gstring.h b/glib/gstring.h
+index eec4c138f..a851e1f72 100644
+--- a/glib/gstring.h
++++ b/glib/gstring.h
+@@ -29,10 +29,10 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gtypes.h>
+-#include <glib/gunicode.h>
+-#include <glib/gbytes.h>
+-#include <glib/gutils.h>  /* for G_CAN_INLINE */
++#include "gtypes.h"
++#include "gunicode.h"
++#include "gbytes.h"
++#include "gutils.h"  /* for G_CAN_INLINE */
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/gstringchunk.h b/glib/gstringchunk.h
+index 8d445e349..17797883a 100644
+--- a/glib/gstringchunk.h
++++ b/glib/gstringchunk.h
+@@ -29,7 +29,7 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gtypes.h>
++#include "gtypes.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/gstrvbuilder.h b/glib/gstrvbuilder.h
+index 395bcfbbe..82b2434cc 100644
+--- a/glib/gstrvbuilder.h
++++ b/glib/gstrvbuilder.h
+@@ -22,8 +22,8 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gstrfuncs.h>
+-#include <glib/gtypes.h>
++#include "gstrfuncs.h"
++#include "gtypes.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/gtester.c b/glib/gtester.c
+index fdcdaca10..e2f2550e4 100644
+--- a/glib/gtester.c
++++ b/glib/gtester.c
+@@ -17,9 +17,9 @@
+  */
+ #include "config.h"
+ 
+-#include <glib.h>
+-#include <glib-unix.h>
+-#include <gstdio.h>
++#include "glib/glib.h"
++#include "glib-unix.h"
++#include "gstdio.h"
+ #include <string.h>
+ #include <stdlib.h>
+ #include <unistd.h>
+diff --git a/glib/gtestutils.c b/glib/gtestutils.c
+index d24c6e186..3ef845796 100644
+--- a/glib/gtestutils.c
++++ b/glib/gtestutils.c
+@@ -43,7 +43,7 @@
+ #ifdef HAVE_SYS_SELECT_H
+ #include <sys/select.h>
+ #endif /* HAVE_SYS_SELECT_H */
+-#include <glib/gstdio.h>
++#include "gstdio.h"
+ 
+ #include "gmain.h"
+ #include "gpattern.h"
+diff --git a/glib/gtestutils.h b/glib/gtestutils.h
+index 041143936..420624249 100644
+--- a/glib/gtestutils.h
++++ b/glib/gtestutils.h
+@@ -23,10 +23,10 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gmessages.h>
+-#include <glib/gstring.h>
+-#include <glib/gerror.h>
+-#include <glib/gslist.h>
++#include "gmessages.h"
++#include "gstring.h"
++#include "gerror.h"
++#include "gslist.h"
+ #include <errno.h>
+ #include <string.h>
+ 
+diff --git a/glib/gthread.h b/glib/gthread.h
+index a30815eb8..0ab54dd66 100644
+--- a/glib/gthread.h
++++ b/glib/gthread.h
+@@ -29,9 +29,9 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gatomic.h>
+-#include <glib/gerror.h>
+-#include <glib/gutils.h>
++#include "gatomic.h"
++#include "gerror.h"
++#include "gutils.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/gthreadpool.h b/glib/gthreadpool.h
+index 11c3d1d16..44b5c6b06 100644
+--- a/glib/gthreadpool.h
++++ b/glib/gthreadpool.h
+@@ -29,7 +29,7 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gthread.h>
++#include "gthread.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/gthreadprivate.h b/glib/gthreadprivate.h
+index 34ba6126b..bd5edd104 100644
+--- a/glib/gthreadprivate.h
++++ b/glib/gthreadprivate.h
+@@ -23,7 +23,7 @@
+ 
+ #include "config.h"
+ 
+-#include "deprecated/gthread.h"
++#include "glib/deprecated/gthread.h"
+ 
+ typedef struct _GRealThread GRealThread;
+ struct  _GRealThread
+diff --git a/glib/gtimer.h b/glib/gtimer.h
+index 28794d167..b0749b97d 100644
+--- a/glib/gtimer.h
++++ b/glib/gtimer.h
+@@ -29,7 +29,7 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gtypes.h>
++#include "gtypes.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/gtimezone.h b/glib/gtimezone.h
+index d68a76d3e..67bb9242b 100644
+--- a/glib/gtimezone.h
++++ b/glib/gtimezone.h
+@@ -24,8 +24,8 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gerror.h>
+-#include <glib/gtypes.h>
++#include "gerror.h"
++#include "gtypes.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/gtranslit.c b/glib/gtranslit.c
+index 3cffe1d2d..7b6671e73 100644
+--- a/glib/gtranslit.c
++++ b/glib/gtranslit.c
+@@ -17,11 +17,11 @@
+  * Author: Ryan Lortie <desrt@desrt.ca>
+  */
+ 
+-#include <config.h>
++#include "config.h"
+ 
+ #include "gstrfuncs.h"
+ 
+-#include <glib.h>
++#include "glib/glib.h"
+ #include <locale.h>
+ #include <stdlib.h>
+ #include <string.h>
+diff --git a/glib/gtrashstack.h b/glib/gtrashstack.h
+index 0730ec296..7585e9907 100644
+--- a/glib/gtrashstack.h
++++ b/glib/gtrashstack.h
+@@ -29,7 +29,7 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gutils.h>
++#include "gutils.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/gtree.h b/glib/gtree.h
+index 19f9f7ea1..8164efff8 100644
+--- a/glib/gtree.h
++++ b/glib/gtree.h
+@@ -29,7 +29,7 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gnode.h>
++#include "gnode.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/gtypes.h b/glib/gtypes.h
+index 2c4825582..34cae584f 100644
+--- a/glib/gtypes.h
++++ b/glib/gtypes.h
+@@ -29,9 +29,9 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glibconfig.h>
+-#include <glib/gmacros.h>
+-#include <glib/gversionmacros.h>
++#include "glib/glibconfig.h"
++#include "gmacros.h"
++#include "gversionmacros.h"
+ #include <time.h>
+ 
+ G_BEGIN_DECLS
+diff --git a/glib/gunibreak.h b/glib/gunibreak.h
+index d2d38a100..c69e86c77 100644
+--- a/glib/gunibreak.h
++++ b/glib/gunibreak.h
+@@ -4,8 +4,8 @@
+ #ifndef BREAKTABLES_H
+ #define BREAKTABLES_H
+ 
+-#include <glib/gtypes.h>
+-#include <glib/gunicode.h>
++#include "gtypes.h"
++#include "gunicode.h"
+ 
+ #define G_UNICODE_DATA_VERSION "13.0.0"
+ 
+diff --git a/glib/gunicode.h b/glib/gunicode.h
+index d72980380..edc033624 100644
+--- a/glib/gunicode.h
++++ b/glib/gunicode.h
+@@ -24,8 +24,8 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gerror.h>
+-#include <glib/gtypes.h>
++#include "gerror.h"
++#include "gtypes.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/guri.h b/glib/guri.h
+index b6a4fd033..4948815bd 100644
+--- a/glib/guri.h
++++ b/glib/guri.h
+@@ -22,7 +22,7 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gtypes.h>
++#include "gtypes.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/gutils.h b/glib/gutils.h
+index f8a6049ff..e47c0d03e 100644
+--- a/glib/gutils.h
++++ b/glib/gutils.h
+@@ -29,7 +29,7 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gtypes.h>
++#include "gtypes.h"
+ #include <stdarg.h>
+ 
+ G_BEGIN_DECLS
+diff --git a/glib/guuid.h b/glib/guuid.h
+index c653188a0..c5f5eeaee 100644
+--- a/glib/guuid.h
++++ b/glib/guuid.h
+@@ -27,7 +27,7 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gtypes.h>
++#include "gtypes.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/gvariant-core.c b/glib/gvariant-core.c
+index b34ba8d8e..bb992ff0d 100644
+--- a/glib/gvariant-core.c
++++ b/glib/gvariant-core.c
+@@ -18,17 +18,17 @@
+ 
+ #include "config.h"
+ 
+-#include <glib/gvariant-core.h>
+-
+-#include <glib/gvariant-internal.h>
+-#include <glib/gvariant-serialiser.h>
+-#include <glib/gtestutils.h>
+-#include <glib/gbitlock.h>
+-#include <glib/gatomic.h>
+-#include <glib/gbytes.h>
+-#include <glib/gslice.h>
+-#include <glib/gmem.h>
+-#include <glib/grefcount.h>
++#include "gvariant-core.h"
++
++#include "gvariant-internal.h"
++#include "gvariant-serialiser.h"
++#include "gtestutils.h"
++#include "gbitlock.h"
++#include "gatomic.h"
++#include "gbytes.h"
++#include "gslice.h"
++#include "gmem.h"
++#include "grefcount.h"
+ #include <string.h>
+ 
+ 
+diff --git a/glib/gvariant-core.h b/glib/gvariant-core.h
+index fc04711ac..e83af4fcf 100644
+--- a/glib/gvariant-core.h
++++ b/glib/gvariant-core.h
+@@ -19,9 +19,9 @@
+ #ifndef __G_VARIANT_CORE_H__
+ #define __G_VARIANT_CORE_H__
+ 
+-#include <glib/gvarianttypeinfo.h>
+-#include <glib/gvariant.h>
+-#include <glib/gbytes.h>
++#include "gvarianttypeinfo.h"
++#include "gvariant.h"
++#include "gbytes.h"
+ 
+ /* gvariant-core.c */
+ 
+diff --git a/glib/gvariant-internal.h b/glib/gvariant-internal.h
+index f7536da71..3952cc3db 100644
+--- a/glib/gvariant-internal.h
++++ b/glib/gvariant-internal.h
+@@ -29,8 +29,8 @@
+ /* Hack */
+ #define __GLIB_H_INSIDE__
+ 
+-#include <glib/gvarianttype.h>
+-#include <glib/gtypes.h>
++#include "gvarianttype.h"
++#include "gtypes.h"
+ 
+ #include "gvariant-serialiser.h"
+ #include "gvarianttypeinfo.h"
+diff --git a/glib/gvariant-serialiser.c b/glib/gvariant-serialiser.c
+index 06f419fe4..6e958bb69 100644
+--- a/glib/gvariant-serialiser.c
++++ b/glib/gvariant-serialiser.c
+@@ -23,10 +23,10 @@
+ 
+ #include "gvariant-serialiser.h"
+ 
+-#include <glib/gvariant-internal.h>
+-#include <glib/gtestutils.h>
+-#include <glib/gstrfuncs.h>
+-#include <glib/gtypes.h>
++#include "gvariant-internal.h"
++#include "gtestutils.h"
++#include "gstrfuncs.h"
++#include "gtypes.h"
+ 
+ #include <string.h>
+ 
+diff --git a/glib/gvariant.c b/glib/gvariant.c
+index e48dec1ad..2bd0e6ba6 100644
+--- a/glib/gvariant.c
++++ b/glib/gvariant.c
+@@ -22,14 +22,14 @@
+ 
+ #include "config.h"
+ 
+-#include <glib/gvariant-serialiser.h>
++#include "gvariant-serialiser.h"
+ #include "gvariant-internal.h"
+-#include <glib/gvariant-core.h>
+-#include <glib/gtestutils.h>
+-#include <glib/gstrfuncs.h>
+-#include <glib/gslice.h>
+-#include <glib/ghash.h>
+-#include <glib/gmem.h>
++#include "gvariant-core.h"
++#include "gtestutils.h"
++#include "gstrfuncs.h"
++#include "gslice.h"
++#include "ghash.h"
++#include "gmem.h"
+ 
+ #include <string.h>
+ 
+diff --git a/glib/gvariant.h b/glib/gvariant.h
+index c0587a887..15fe73e84 100644
+--- a/glib/gvariant.h
++++ b/glib/gvariant.h
+@@ -25,9 +25,9 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gvarianttype.h>
+-#include <glib/gstring.h>
+-#include <glib/gbytes.h>
++#include "gvarianttype.h"
++#include "gstring.h"
++#include "gbytes.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/gvarianttype.c b/glib/gvarianttype.c
+index cc97235f3..8125cac1b 100644
+--- a/glib/gvarianttype.c
++++ b/glib/gvarianttype.c
+@@ -22,9 +22,9 @@
+ 
+ #include "gvarianttype.h"
+ 
+-#include <glib/gtestutils.h>
+-#include <glib/gstrfuncs.h>
+-#include <glib/gvariant-internal.h>
++#include "gtestutils.h"
++#include "gstrfuncs.h"
++#include "gvariant-internal.h"
+ 
+ #include <string.h>
+ 
+diff --git a/glib/gvarianttype.h b/glib/gvarianttype.h
+index fdc364166..dc705cc3a 100644
+--- a/glib/gvarianttype.h
++++ b/glib/gvarianttype.h
+@@ -25,7 +25,7 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gtypes.h>
++#include "gtypes.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/gvarianttypeinfo.c b/glib/gvarianttypeinfo.c
+index 087294a09..31b8820b5 100644
+--- a/glib/gvarianttypeinfo.c
++++ b/glib/gvarianttypeinfo.c
+@@ -22,11 +22,11 @@
+ 
+ #include "gvarianttypeinfo.h"
+ 
+-#include <glib/gtestutils.h>
+-#include <glib/gthread.h>
+-#include <glib/gslice.h>
+-#include <glib/ghash.h>
+-#include <glib/grefcount.h>
++#include "gtestutils.h"
++#include "gthread.h"
++#include "gslice.h"
++#include "ghash.h"
++#include "grefcount.h"
+ 
+ /* < private >
+  * GVariantTypeInfo:
+diff --git a/glib/gvarianttypeinfo.h b/glib/gvarianttypeinfo.h
+index 8663e2090..b7e926c53 100644
+--- a/glib/gvarianttypeinfo.h
++++ b/glib/gvarianttypeinfo.h
+@@ -21,7 +21,7 @@
+ #ifndef __G_VARIANT_TYPE_INFO_H__
+ #define __G_VARIANT_TYPE_INFO_H__
+ 
+-#include <glib/gvarianttype.h>
++#include "gvarianttype.h"
+ 
+ #define G_VARIANT_TYPE_INFO_CHAR_MAYBE      'm'
+ #define G_VARIANT_TYPE_INFO_CHAR_ARRAY      'a'
+diff --git a/glib/gversion.h b/glib/gversion.h
+index 68343f727..f3c8c907a 100644
+--- a/glib/gversion.h
++++ b/glib/gversion.h
+@@ -29,7 +29,7 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gtypes.h>
++#include "gtypes.h"
+ 
+ G_BEGIN_DECLS
+ 
+diff --git a/glib/gwakeup.c b/glib/gwakeup.c
+index f1062489c..93776f907 100644
+--- a/glib/gwakeup.c
++++ b/glib/gwakeup.c
+@@ -29,7 +29,7 @@
+ #include "gtypes.h"
+ #include "gpoll.h"
+ #else
+-#include <glib.h>
++#include "glib/glib.h"
+ #endif
+ 
+ #include "gwakeup.h"
+diff --git a/glib/gwakeup.h b/glib/gwakeup.h
+index 64db2bf86..e11d1020e 100644
+--- a/glib/gwakeup.h
++++ b/glib/gwakeup.h
+@@ -20,7 +20,7 @@
+ #ifndef __G_WAKEUP_H__
+ #define __G_WAKEUP_H__
+ 
+-#include <glib/gpoll.h>
++#include "gpoll.h"
+ 
+ typedef struct _GWakeup GWakeup;
+ 
+diff --git a/glib/gwin32.h b/glib/gwin32.h
+index 6696afa9a..3d6d4e608 100644
+--- a/glib/gwin32.h
++++ b/glib/gwin32.h
+@@ -29,7 +29,7 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
+-#include <glib/gtypes.h>
++#include "gtypes.h"
+ 
+ #ifdef G_PLATFORM_WIN32
+ 
+diff --git a/glib/libcharset/localcharset.c b/glib/libcharset/localcharset.c
+index ab3a2678d..9a394f333 100644
+--- a/glib/libcharset/localcharset.c
++++ b/glib/libcharset/localcharset.c
+@@ -19,7 +19,7 @@
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>.  */
+ 
+-#include "config.h"
++#include "glib/config.h"
+ 
+ /* Specification.  */
+ #include "localcharset.h"
+diff --git a/glib/pcre/pcre_byte_order.c b/glib/pcre/pcre_byte_order.c
+index 4f21433c1..ae02364e9 100644
+--- a/glib/pcre/pcre_byte_order.c
++++ b/glib/pcre/pcre_byte_order.c
+@@ -43,7 +43,7 @@ see if it was compiled with the opposite endianness. If so, it uses an
+ auxiliary local function to flip the appropriate bytes. */
+ 
+ 
+-#include "config.h"
++#include "glib/config.h"
+ 
+ #include "pcre_internal.h"
+ 
+diff --git a/glib/pcre/pcre_chartables.c b/glib/pcre/pcre_chartables.c
+index 293b16b32..d6f2bac30 100644
+--- a/glib/pcre/pcre_chartables.c
++++ b/glib/pcre/pcre_chartables.c
+@@ -20,7 +20,7 @@ and dead code stripping is activated. This leads to link errors. Pulling in the
+ header ensures that the array gets flagged as "someone outside this compilation
+ unit might reference this" and so it will always be supplied to the linker. */
+ 
+-#include "config.h"
++#include "glib/config.h"
+ 
+ #include "pcre_internal.h"
+ 
+diff --git a/glib/pcre/pcre_compile.c b/glib/pcre/pcre_compile.c
+index 12e09c4ef..e143ab55f 100644
+--- a/glib/pcre/pcre_compile.c
++++ b/glib/pcre/pcre_compile.c
+@@ -42,7 +42,7 @@ POSSIBILITY OF SUCH DAMAGE.
+ supporting internal functions that are not used by other modules. */
+ 
+ 
+-#include "config.h"
++#include "glib/config.h"
+ 
+ #define NLBLOCK cd             /* Block containing newline information */
+ #define PSSTART start_pattern  /* Field containing processed string start */
+@@ -51,9 +51,9 @@ supporting internal functions that are not used by other modules. */
+ #include "pcre_internal.h"
+ 
+ #ifdef GLIB_COMPILATION
+-#include "gstrfuncs.h"
++#include "glib/gstrfuncs.h"
+ #else
+-#include <glib.h>
++#include "glib/glib.h"
+ #endif
+ 
+ /* When PCRE_DEBUG is defined, we need the pcre(16)_printint() function, which
+diff --git a/glib/pcre/pcre_config.c b/glib/pcre/pcre_config.c
+index 34719591f..2d854b3ad 100644
+--- a/glib/pcre/pcre_config.c
++++ b/glib/pcre/pcre_config.c
+@@ -41,7 +41,7 @@ POSSIBILITY OF SUCH DAMAGE.
+ /* This module contains the external function pcre_config(). */
+ 
+ 
+-#include "config.h"
++#include "glib/config.h"
+ 
+ /* Keep the original link size. */
+ static int real_link_size = LINK_SIZE;
+diff --git a/glib/pcre/pcre_dfa_exec.c b/glib/pcre/pcre_dfa_exec.c
+index 9cc82323d..742aa2123 100644
+--- a/glib/pcre/pcre_dfa_exec.c
++++ b/glib/pcre/pcre_dfa_exec.c
+@@ -72,7 +72,7 @@ in others, so I abandoned this code. */
+ 
+ 
+ 
+-#include "config.h"
++#include "glib/config.h"
+ 
+ #define NLBLOCK md             /* Block containing newline information */
+ #define PSSTART start_subject  /* Field containing processed string start */
+diff --git a/glib/pcre/pcre_exec.c b/glib/pcre/pcre_exec.c
+index 4ba3eda01..82166131a 100644
+--- a/glib/pcre/pcre_exec.c
++++ b/glib/pcre/pcre_exec.c
+@@ -41,7 +41,7 @@ POSSIBILITY OF SUCH DAMAGE.
+ pattern matching using an NFA algorithm, trying to mimic Perl as closely as
+ possible. There are also some static supporting functions. */
+ 
+-#include "config.h"
++#include "glib/config.h"
+ 
+ #define NLBLOCK md             /* Block containing newline information */
+ #define PSSTART start_subject  /* Field containing processed string start */
+diff --git a/glib/pcre/pcre_fullinfo.c b/glib/pcre/pcre_fullinfo.c
+index 2fe785a13..6eb69443c 100644
+--- a/glib/pcre/pcre_fullinfo.c
++++ b/glib/pcre/pcre_fullinfo.c
+@@ -42,7 +42,7 @@ POSSIBILITY OF SUCH DAMAGE.
+ information about a compiled pattern. */
+ 
+ 
+-#include "config.h"
++#include "glib/config.h"
+ 
+ #include "pcre_internal.h"
+ 
+diff --git a/glib/pcre/pcre_get.c b/glib/pcre/pcre_get.c
+index 61147efe8..63991f648 100644
+--- a/glib/pcre/pcre_get.c
++++ b/glib/pcre/pcre_get.c
+@@ -43,7 +43,7 @@ from the subject string after a regex match has succeeded. The original idea
+ for these functions came from Scott Wimer. */
+ 
+ 
+-#include "config.h"
++#include "glib/config.h"
+ 
+ #include "pcre_internal.h"
+ 
+diff --git a/glib/pcre/pcre_globals.c b/glib/pcre/pcre_globals.c
+index 383ec7311..7c8273822 100644
+--- a/glib/pcre/pcre_globals.c
++++ b/glib/pcre/pcre_globals.c
+@@ -52,14 +52,14 @@ a local function is used.
+ Also, when compiling for Virtual Pascal, things are done differently, and
+ global variables are not used. */
+ 
+-#include "config.h"
++#include "glib/config.h"
+ 
+ #include "pcre_internal.h"
+ 
+ #ifdef GLIB_COMPILATION
+-#include "gmem.h"
++#include "glib/gmem.h"
+ #else
+-#include <glib.h>
++#include "glib/glib.h"
+ #endif /* GLIB_COMPILATION */
+ 
+ #if defined _MSC_VER || defined  __SYMBIAN32__
+diff --git a/glib/pcre/pcre_jit_compile.c b/glib/pcre/pcre_jit_compile.c
+index d7233832f..b253cf745 100644
+--- a/glib/pcre/pcre_jit_compile.c
++++ b/glib/pcre/pcre_jit_compile.c
+@@ -40,7 +40,7 @@ POSSIBILITY OF SUCH DAMAGE.
+ -----------------------------------------------------------------------------
+ */
+ 
+-#include "config.h"
++#include "glib/config.h"
+ 
+ #include "pcre_internal.h"
+ 
+diff --git a/glib/pcre/pcre_newline.c b/glib/pcre/pcre_newline.c
+index ddd7708fa..a6487f0b2 100644
+--- a/glib/pcre/pcre_newline.c
++++ b/glib/pcre/pcre_newline.c
+@@ -47,7 +47,7 @@ and NLTYPE_ANY. The full list of Unicode newline characters is taken from
+ http://unicode.org/unicode/reports/tr18/. */
+ 
+ 
+-#include "config.h"
++#include "glib/config.h"
+ 
+ #include "pcre_internal.h"
+ 
+diff --git a/glib/pcre/pcre_ord2utf8.c b/glib/pcre/pcre_ord2utf8.c
+index 71fd587e0..f45e60901 100644
+--- a/glib/pcre/pcre_ord2utf8.c
++++ b/glib/pcre/pcre_ord2utf8.c
+@@ -41,7 +41,7 @@ POSSIBILITY OF SUCH DAMAGE.
+ /* This file contains a private PCRE function that converts an ordinal
+ character value into a UTF8 string. */
+ 
+-#include "config.h"
++#include "glib/config.h"
+ 
+ #include "pcre_internal.h"
+ 
+diff --git a/glib/pcre/pcre_string_utils.c b/glib/pcre/pcre_string_utils.c
+index 38cc2f958..ee01cdc47 100644
+--- a/glib/pcre/pcre_string_utils.c
++++ b/glib/pcre/pcre_string_utils.c
+@@ -42,7 +42,7 @@ POSSIBILITY OF SUCH DAMAGE.
+ class. It is used by both pcre_exec() and pcre_def_exec(). */
+ 
+ 
+-#include "config.h"
++#include "glib/config.h"
+ 
+ #include "pcre_internal.h"
+ 
+diff --git a/glib/pcre/pcre_study.c b/glib/pcre/pcre_study.c
+index ee0930718..3e239c755 100644
+--- a/glib/pcre/pcre_study.c
++++ b/glib/pcre/pcre_study.c
+@@ -42,7 +42,7 @@ POSSIBILITY OF SUCH DAMAGE.
+ supporting functions. */
+ 
+ 
+-#include "config.h"
++#include "glib/config.h"
+ 
+ #include "pcre_internal.h"
+ 
+diff --git a/glib/pcre/pcre_tables.c b/glib/pcre/pcre_tables.c
+index abcc96ef4..3a4ed3e35 100644
+--- a/glib/pcre/pcre_tables.c
++++ b/glib/pcre/pcre_tables.c
+@@ -45,7 +45,7 @@ uses macros to change their names from _pcre_xxx to xxxx, thereby avoiding name
+ clashes with the library. */
+ 
+ 
+-#include "config.h"
++#include "glib/config.h"
+ 
+ #include "pcre_internal.h"
+ 
+diff --git a/glib/pcre/pcre_valid_utf8.c b/glib/pcre/pcre_valid_utf8.c
+index cecaf347f..a837ce5c0 100644
+--- a/glib/pcre/pcre_valid_utf8.c
++++ b/glib/pcre/pcre_valid_utf8.c
+@@ -42,7 +42,7 @@ POSSIBILITY OF SUCH DAMAGE.
+ strings. */
+ 
+ 
+-#include "config.h"
++#include "glib/config.h"
+ 
+ #include "pcre_internal.h"
+ 
+diff --git a/glib/pcre/pcre_version.c b/glib/pcre/pcre_version.c
+index 3dd60a5bc..fb715c47a 100644
+--- a/glib/pcre/pcre_version.c
++++ b/glib/pcre/pcre_version.c
+@@ -42,7 +42,7 @@ POSSIBILITY OF SUCH DAMAGE.
+ string that identifies the PCRE version that is in use. */
+ 
+ 
+-#include "config.h"
++#include "glib/config.h"
+ 
+ #include "pcre_internal.h"
+ 
+diff --git a/glib/pcre/pcre_xclass.c b/glib/pcre/pcre_xclass.c
+index 89ad09f54..f09e4d1b1 100644
+--- a/glib/pcre/pcre_xclass.c
++++ b/glib/pcre/pcre_xclass.c
+@@ -42,7 +42,7 @@ POSSIBILITY OF SUCH DAMAGE.
+ class. It is used by both pcre_exec() and pcre_def_exec(). */
+ 
+ 
+-#include "config.h"
++#include "glib/config.h"
+ 
+ #include "pcre_internal.h"
+ 
+diff --git a/glib/pcre/ucp.h b/glib/pcre/ucp.h
+index f1c14be5d..850049e27 100644
+--- a/glib/pcre/ucp.h
++++ b/glib/pcre/ucp.h
+@@ -11,9 +11,9 @@ should always be at the end of each enum, for backwards compatibility. */
+ 
+ /* These are the general character categories. */
+ #ifdef GLIB_COMPILATION
+-#include "gunicode.h"
++#include "glib/gunicode.h"
+ #else
+-#include <glib.h>
++#include "glib/glib.h"
+ #endif
+ 
+ enum {
+-- 
+2.25.1
+
diff --git a/third_party/glib/patches/bazel_support.patch b/third_party/glib/patches/bazel_support.patch
new file mode 100644
index 0000000..10b834b
--- /dev/null
+++ b/third_party/glib/patches/bazel_support.patch
@@ -0,0 +1,884 @@
+Copyright 2020 The Monogon Project Authors.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+
+From 5a0089d8e8be0905bcdc5604878c65eeca6f532c Mon Sep 17 00:00:00 2001
+From: Lorenz Brun <lorenz@nexantic.com>
+Date: Thu, 18 Feb 2021 17:39:24 +0100
+Subject: [PATCH 1/2] Add Bazel support
+
+---
+ BUILD             |   0
+ glib/BUILD        | 202 +++++++++++++++++++++++
+ glib/config.h     | 412 ++++++++++++++++++++++++++++++++++++++++++++++
+ glib/glibconfig.h | 215 ++++++++++++++++++++++++
+ 4 files changed, 829 insertions(+)
+ create mode 100644 BUILD
+ create mode 100644 glib/BUILD
+ create mode 100644 glib/config.h
+ create mode 100644 glib/glibconfig.h
+
+diff --git a/BUILD b/BUILD
+new file mode 100644
+index 000000000..e69de29bb
+diff --git a/glib/BUILD b/glib/BUILD
+new file mode 100644
+index 000000000..ecb524ecc
+--- /dev/null
++++ b/glib/BUILD
+@@ -0,0 +1,202 @@
++cc_library(
++    name = "glib",
++    srcs = [
++        "garcbox.c",
++        "garray.c",
++        "gasyncqueue.c",
++        "gatomic.c",
++        "gbacktrace.c",
++        "gbase64.c",
++        "gbitlock.c",
++        "gbookmarkfile.c",
++        "gbytes.c",
++        "gcharset.c",
++        "gchecksum.c",
++        "gconvert.c",
++        "gdataset.c",
++        "gdate.c",
++        "gdatetime.c",
++        "gdir.c",
++        "genviron.c",
++        "gerror.c",
++        "gfileutils.c",
++        "ggettext.c",
++        "ghash.c",
++        "ghmac.c",
++        "ghook.c",
++        "ghostutils.c",
++        "giochannel.c",
++        "gkeyfile.c",
++        "glib-init.c",
++        "glib-private.c",
++        "glist.c",
++        "gmain.c",
++        "gmappedfile.c",
++        "gmarkup.c",
++        "gmem.c",
++        "gmessages.c",
++        "gnode.c",
++        "goption.c",
++        "gpattern.c",
++        "gpoll.c",
++        "gprimes.c",
++        "gprintf.c",
++        "gqsort.c",
++        "gquark.c",
++        "gqueue.c",
++        "grand.c",
++        "grcbox.c",
++        "grefcount.c",
++        "grefstring.c",
++        "gregex.c",
++        "gscanner.c",
++        "gsequence.c",
++        "gshell.c",
++        "gslice.c",
++        "gslist.c",
++        "gstdio.c",
++        "gstrfuncs.c",
++        "gstring.c",
++        "gstringchunk.c",
++        "gstrvbuilder.c",
++        "gtestutils.c",
++        "gthread.c",
++        "gthreadpool.c",
++        "gtimer.c",
++        "gtimezone.c",
++        "gtrace.c",
++        "gtranslit.c",
++        "gtrashstack.c",
++        "gtree.c",
++        "gunibreak.c",
++        "gunicollate.c",
++        "gunidecomp.c",
++        "guniprop.c",
++        "guri.c",
++        "gutf8.c",
++        "gutils.c",
++        "guuid.c",
++        "gvariant.c",
++        "gvariant-core.c",
++        "gvariant-parser.c",
++        "gvariant-serialiser.c",
++        "gvarianttype.c",
++        "gvarianttypeinfo.c",
++        "gversion.c",
++        "gwakeup.c",
++        "libcharset/localcharset.c",
++    ] + [
++        # Unix-specific
++        "glib-unix.c",
++        "gspawn.c",
++        "giounix.c",
++        "gthread-posix.c",
++    ] + glob([
++        "*.h",
++        "deprecated/*.h",
++        "libcharset/*.h",
++        "pcre/*.h",
++        "pcre/*.c",
++    ]),
++    hdrs = [
++        "glib.h",
++        # Only allowed to be included by glib.h, don't directly include them
++        "deprecated/gallocator.h",
++        "deprecated/gcache.h",
++        "deprecated/gcompletion.h",
++        "deprecated/gmain.h",
++        "deprecated/grel.h",
++        "deprecated/gthread.h",
++        "galloca.h",
++        "garray.h",
++        "gasyncqueue.h",
++        "gatomic.h",
++        "gbacktrace.h",
++        "gbase64.h",
++        "gbitlock.h",
++        "gbookmarkfile.h",
++        "gbytes.h",
++        "gcharset.h",
++        "gchecksum.h",
++        "gconvert.h",
++        "gdataset.h",
++        "gdate.h",
++        "gdatetime.h",
++        "gdir.h",
++        "genviron.h",
++        "gerror.h",
++        "gfileutils.h",
++        "ggettext.h",
++        "ghash.h",
++        "ghmac.h",
++        "ghook.h",
++        "ghostutils.h",
++        "giochannel.h",
++        "gkeyfile.h",
++        "glib-autocleanups.h",
++        "glist.h",
++        "gmacros.h",
++        "gmain.h",
++        "gmappedfile.h",
++        "gmarkup.h",
++        "gmem.h",
++        "gmessages.h",
++        "gnode.h",
++        "goption.h",
++        "gpattern.h",
++        "gpoll.h",
++        "gprimes.h",
++        "gqsort.h",
++        "gquark.h",
++        "gqueue.h",
++        "grand.h",
++        "grcbox.h",
++        "grefcount.h",
++        "grefstring.h",
++        "gregex.h",
++        "gscanner.h",
++        "gsequence.h",
++        "gshell.h",
++        "gslice.h",
++        "gslist.h",
++        "gspawn.h",
++        "gstrfuncs.h",
++        "gstring.h",
++        "gstringchunk.h",
++        "gstrvbuilder.h",
++        "gtestutils.h",
++        "gthread.h",
++        "gthreadpool.h",
++        "gtimer.h",
++        "gtimezone.h",
++        "gtrashstack.h",
++        "gtree.h",
++        "gtypes.h",
++        "gunicode.h",
++        "guri.h",
++        "gutils.h",
++        "guuid.h",
++        "gvariant.h",
++        "gvarianttype.h",
++        "gversion.h",
++        "gversionmacros.h",
++    ],
++    local_defines = [
++        "HAVE_MEMMOVE=1",
++        "SUPPORT_UCP=1",
++        "SUPPORT_UTF=1",
++        "SUPPORT_UTF8=1",
++        "NEWLINE=-1",
++        "MATCH_LIMIT=10000000",
++        "MATCH_LIMIT_RECURSION=8192",
++        "MAX_NAME_SIZE=32",
++        "MAX_NAME_COUNT=10000",
++        "MAX_DUPLENGTH=30000",
++        "LINK_SIZE=2",
++        "POSIX_MALLOC_THRESHOLD=10",
++        "PCRE_STATIC=1",
++        "GLIB_COMPILATION=1",
++        "GLIB_CHARSETALIAS_DIR=\\\"/nonexistent\\\"",
++    ],
++    visibility = ["//visibility:public"],
++)
+diff --git a/glib/config.h b/glib/config.h
+new file mode 100644
+index 000000000..a13711316
+--- /dev/null
++++ b/glib/config.h
+@@ -0,0 +1,412 @@
++/*
++ * Autogenerated by the Meson build system.
++ * Do not edit, your changes will be lost.
++ */
++
++#pragma once
++
++#define ALIGNOF_GUINT32 4
++
++#define ALIGNOF_GUINT64 8
++
++#define ALIGNOF_UNSIGNED_LONG 8
++
++#define ENABLE_NLS 1
++
++#define EXEEXT 
++
++#define GETTEXT_PACKAGE "glib20"
++
++#define GLIB_BINARY_AGE 6702
++
++#define GLIB_INTERFACE_AGE 0
++
++#define GLIB_LOCALE_DIR "/usr/local/share/locale"
++
++#define GLIB_MAJOR_VERSION 2
++
++#define GLIB_MICRO_VERSION 2
++
++#define GLIB_MINOR_VERSION 67
++
++#define G_VA_COPY va_copy
++
++#define G_VA_COPY_AS_ARRAY 1
++
++#define HAVE_ALLOCA_H 1
++
++#define HAVE_BIND_TEXTDOMAIN_CODESET
++
++#define HAVE_C99_SNPRINTF 1
++
++#define HAVE_C99_VSNPRINTF 1
++
++#define HAVE_CLOCK_GETTIME 1
++
++#define HAVE_CODESET 1
++
++#define HAVE_DCGETTEXT 1
++
++#define HAVE_DIRENT_H 1
++
++#define HAVE_ENDMNTENT 1
++
++#define HAVE_ENDSERVENT 1
++
++#define HAVE_EVENTFD 1
++
++#define HAVE_FALLOCATE 1
++
++#define HAVE_FCHMOD 1
++
++#define HAVE_FCHOWN 1
++
++#define HAVE_FLOAT_H 1
++
++#define HAVE_FSTAB_H 1
++
++#define HAVE_FSYNC 1
++
++#define HAVE_FUTEX 1
++
++#define HAVE_GETAUXVAL 1
++
++#define HAVE_GETC_UNLOCKED 1
++
++#define HAVE_GETGRGID_R 1
++
++#define HAVE_GETMNTENT_R 1
++
++#define HAVE_GETPWUID_R 1
++
++#define HAVE_GETRESUID 1
++
++#define HAVE_GETTEXT 1
++
++#define HAVE_GMTIME_R 1
++
++#define HAVE_GRP_H 1
++
++#define HAVE_HASMNTOPT 1
++
++#define HAVE_IF_INDEXTONAME 1
++
++#define HAVE_IF_NAMETOINDEX 1
++
++#define HAVE_INOTIFY_INIT1 1
++
++#define HAVE_INTMAX_T 1
++
++#define HAVE_INTTYPES_H 1
++
++#define HAVE_INTTYPES_H_WITH_UINTMAX 1
++
++#define HAVE_IPV6
++
++#define HAVE_IP_MREQN 1
++
++#define HAVE_LANGINFO_ABALTMON 1
++
++#define HAVE_LANGINFO_ALTMON 1
++
++#define HAVE_LANGINFO_CODESET 1
++
++#define HAVE_LANGINFO_OUTDIGIT 1
++
++#define HAVE_LANGINFO_TIME 1
++
++#define HAVE_LCHOWN 1
++
++#define HAVE_LC_MESSAGES 1
++
++#define HAVE_LIBELF 1
++
++#undef HAVE_LIBMOUNT
++
++#define HAVE_LIMITS_H 1
++
++#define HAVE_LINK 1
++
++#define HAVE_LINUX_MAGIC_H 1
++
++#define HAVE_LOCALE_H 1
++
++#define HAVE_LOCALTIME_R 1
++
++#define HAVE_LONG_DOUBLE 1
++
++#define HAVE_LONG_LONG 1
++
++#define HAVE_LSTAT 1
++
++#define HAVE_MALLOC_H 1
++
++#define HAVE_MBRTOWC 1
++
++#define HAVE_MEMALIGN 1
++
++#define HAVE_MEMORY_H 1
++
++#define HAVE_MKOSTEMP 1
++
++#define HAVE_MMAP 1
++
++#define HAVE_MNTENT_H 1
++
++#define HAVE_NETLINK 1
++
++#define HAVE_NEWLOCALE 1
++
++#define HAVE_OPEN_O_DIRECTORY 1
++
++#define HAVE_PIPE2 1
++
++#define HAVE_POLL 1
++
++#define HAVE_POLL_H 1
++
++#define HAVE_POSIX_MEMALIGN 1
++
++#define HAVE_POSIX_SPAWN 1
++
++#define HAVE_PRLIMIT 1
++
++#define HAVE_PROC_SELF_CMDLINE
++
++#define HAVE_PTHREAD_ATTR_SETINHERITSCHED 1
++
++#define HAVE_PTHREAD_ATTR_SETSTACKSIZE 1
++
++#define HAVE_PTHREAD_CONDATTR_SETCLOCK 1
++
++#define HAVE_PTHREAD_GETNAME_NP 1
++
++#define HAVE_PTHREAD_SETNAME_NP_WITH_TID 1
++
++#define HAVE_PTRDIFF_T 1
++
++#define HAVE_PWD_H 1
++
++#define HAVE_READLINK 1
++
++#define HAVE_RECVMMSG 1
++
++#define HAVE_RES_INIT 1
++
++#define HAVE_RES_NCLOSE 1
++
++#define HAVE_RES_NINIT 1
++
++#define HAVE_RES_NQUERY 1
++
++#define HAVE_RTLD_GLOBAL 1
++
++#define HAVE_RTLD_LAZY 1
++
++#define HAVE_RTLD_NEXT 1
++
++#define HAVE_RTLD_NOW 1
++
++#define HAVE_SCHED_H 1
++
++#undef HAVE_SELINUX
++
++#define HAVE_SENDMMSG 1
++
++#define HAVE_SETENV 1
++
++#define HAVE_SETMNTENT 1
++
++#define HAVE_SIG_ATOMIC_T 1
++
++#define HAVE_SIOCGIFADDR /**/
++
++#define HAVE_SNPRINTF 1
++
++#define HAVE_SPAWN_H 1
++
++#define HAVE_SPLICE 1
++
++#define HAVE_STATFS 1
++
++#define HAVE_STATVFS 1
++
++#define HAVE_STATX 1
++
++#define HAVE_STDATOMIC_H 1
++
++#define HAVE_STDINT_H 1
++
++#define HAVE_STDINT_H_WITH_UINTMAX 1
++
++#define HAVE_STDLIB_H 1
++
++#define HAVE_STPCPY 1
++
++#define HAVE_STRCASECMP 1
++
++#define HAVE_STRERROR_R 1
++
++#define HAVE_STRINGS_H 1
++
++#define HAVE_STRING_H 1
++
++#define HAVE_STRNCASECMP 1
++
++#define HAVE_STRNLEN 1
++
++#define HAVE_STRSIGNAL 1
++
++#define HAVE_STRTOD_L 1
++
++#define HAVE_STRTOLL_L 1
++
++#define HAVE_STRTOULL_L 1
++
++#define HAVE_STRUCT_DIRENT_D_TYPE 1
++
++#define HAVE_STRUCT_STATFS_F_BAVAIL 1
++
++#define HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC 1
++
++#define HAVE_STRUCT_STAT_ST_BLKSIZE 1
++
++#define HAVE_STRUCT_STAT_ST_BLOCKS 1
++
++#define HAVE_STRUCT_STAT_ST_CTIM_TV_NSEC 1
++
++#define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1
++
++#define HAVE_STRUCT_TM_TM_GMTOFF 1
++
++#define HAVE_SYMLINK 1
++
++#undef HAVE_SYSPROF
++
++#define HAVE_SYS_AUXV_H 1
++
++#define HAVE_SYS_INOTIFY_H 1
++
++#define HAVE_SYS_MOUNT_H 1
++
++#define HAVE_SYS_PARAM_H 1
++
++#define HAVE_SYS_RESOURCE_H 1
++
++#define HAVE_SYS_SCHED_GETATTR 1
++
++#define HAVE_SYS_SELECT_H 1
++
++#define HAVE_SYS_STATFS_H 1
++
++#define HAVE_SYS_STATVFS_H 1
++
++#define HAVE_SYS_STAT_H 1
++
++#define HAVE_SYS_SYSCTL_H 1
++
++#define HAVE_SYS_TIMES_H 1
++
++#define HAVE_SYS_TIME_H 1
++
++#define HAVE_SYS_TYPES_H 1
++
++#define HAVE_SYS_UIO_H 1
++
++#define HAVE_SYS_VFS_H 1
++
++#define HAVE_SYS_WAIT_H 1
++
++#define HAVE_SYS_XATTR_H 1
++
++#define HAVE_TERMIOS_H 1
++
++#define HAVE_TIMEGM 1
++
++#define HAVE_UINT128_T 1
++
++#define HAVE_UNISTD_H 1
++
++#define HAVE_UNIX98_PRINTF 1
++
++#define HAVE_UNSETENV 1
++
++#define HAVE_USELOCALE 1
++
++#define HAVE_UTIMES 1
++
++#define HAVE_VALLOC 1
++
++#define HAVE_VALUES_H 1
++
++#define HAVE_VASPRINTF 1
++
++#define HAVE_VSNPRINTF 1
++
++#define HAVE_WCHAR_H 1
++
++#define HAVE_WCHAR_T 1
++
++#define HAVE_WCRTOMB 1
++
++#define HAVE_WCSLEN 1
++
++#define HAVE_WCSNLEN 1
++
++#define HAVE_WINT_T 1
++
++#define HAVE_XATTR 1
++
++#define MAJOR_IN_SYSMACROS 1
++
++#define PACKAGE_BUGREPORT "https://gitlab.gnome.org/GNOME/glib/issues/new"
++
++#define PACKAGE_NAME "glib"
++
++#define PACKAGE_STRING "glib 2.67.2"
++
++#define PACKAGE_TARNAME "glib"
++
++#define PACKAGE_URL ""
++
++#define PACKAGE_VERSION "2.67.2"
++
++#define SIZEOF_CHAR 1
++
++#define SIZEOF_INT 4
++
++#define SIZEOF_LONG 8
++
++#define SIZEOF_LONG_LONG 8
++
++#define SIZEOF_SHORT 2
++
++#define SIZEOF_SIZE_T 8
++
++#define SIZEOF_SSIZE_T 8
++
++#define SIZEOF_VOID_P 8
++
++#define SIZEOF_WCHAR_T 4
++
++#define STATFS_ARGS 2
++
++/* Defined if strerror_r returns char * */
++#define STRERROR_R_CHAR_P 1
++
++#define THREADS_POSIX 1
++
++#define USE_STATFS 1
++
++#undef USE_SYSTEM_PCRE
++
++#define USE_SYSTEM_PRINTF
++
++#define _GLIB_EXTERN __attribute__((visibility("default"))) extern
++
++#define _GNU_SOURCE 1
++
++#define gl_extern_inline 
++
++#define gl_unused 
++
+diff --git a/glib/glibconfig.h b/glib/glibconfig.h
+new file mode 100644
+index 000000000..b4185d96c
+--- /dev/null
++++ b/glib/glibconfig.h
+@@ -0,0 +1,215 @@
++/* glibconfig.h
++ *
++ * This is a generated file.  Please modify 'glibconfig.h.in'
++ */
++
++#ifndef __GLIBCONFIG_H__
++#define __GLIBCONFIG_H__
++
++#include "gmacros.h"
++
++#include <limits.h>
++#include <float.h>
++#define GLIB_HAVE_ALLOCA_H
++
++/* Specifies that GLib's g_print*() functions wrap the
++ * system printf functions.  This is useful to know, for example,
++ * when using glibc's register_printf_function().
++ */
++#define GLIB_USING_SYSTEM_PRINTF
++
++/* #undef GLIB_STATIC_COMPILATION */
++/* #undef GOBJECT_STATIC_COMPILATION */
++
++G_BEGIN_DECLS
++
++#define G_MINFLOAT	FLT_MIN
++#define G_MAXFLOAT	FLT_MAX
++#define G_MINDOUBLE	DBL_MIN
++#define G_MAXDOUBLE	DBL_MAX
++#define G_MINSHORT	SHRT_MIN
++#define G_MAXSHORT	SHRT_MAX
++#define G_MAXUSHORT	USHRT_MAX
++#define G_MININT	INT_MIN
++#define G_MAXINT	INT_MAX
++#define G_MAXUINT	UINT_MAX
++#define G_MINLONG	LONG_MIN
++#define G_MAXLONG	LONG_MAX
++#define G_MAXULONG	ULONG_MAX
++
++typedef signed char gint8;
++typedef unsigned char guint8;
++
++typedef signed short gint16;
++typedef unsigned short guint16;
++
++#define G_GINT16_MODIFIER "h"
++#define G_GINT16_FORMAT "hi"
++#define G_GUINT16_FORMAT "hu"
++
++
++typedef signed int gint32;
++typedef unsigned int guint32;
++
++#define G_GINT32_MODIFIER ""
++#define G_GINT32_FORMAT "i"
++#define G_GUINT32_FORMAT "u"
++
++
++#define G_HAVE_GINT64 1          /* deprecated, always true */
++
++typedef signed long gint64;
++typedef unsigned long guint64;
++
++#define G_GINT64_CONSTANT(val)	(val##L)
++#define G_GUINT64_CONSTANT(val)	(val##UL)
++
++#define G_GINT64_MODIFIER "l"
++#define G_GINT64_FORMAT "li"
++#define G_GUINT64_FORMAT "lu"
++
++
++#define GLIB_SIZEOF_VOID_P 8
++#define GLIB_SIZEOF_LONG   8
++#define GLIB_SIZEOF_SIZE_T 8
++#define GLIB_SIZEOF_SSIZE_T 8
++
++typedef signed long gssize;
++typedef unsigned long gsize;
++#define G_GSIZE_MODIFIER "l"
++#define G_GSSIZE_MODIFIER "l"
++#define G_GSIZE_FORMAT "lu"
++#define G_GSSIZE_FORMAT "li"
++
++#define G_MAXSIZE	G_MAXULONG
++#define G_MINSSIZE	G_MINLONG
++#define G_MAXSSIZE	G_MAXLONG
++
++typedef gint64 goffset;
++#define G_MINOFFSET	G_MININT64
++#define G_MAXOFFSET	G_MAXINT64
++
++#define G_GOFFSET_MODIFIER      G_GINT64_MODIFIER
++#define G_GOFFSET_FORMAT        G_GINT64_FORMAT
++#define G_GOFFSET_CONSTANT(val) G_GINT64_CONSTANT(val)
++
++#define G_POLLFD_FORMAT "%d"
++
++#define GPOINTER_TO_INT(p)	((gint)  (glong) (p))
++#define GPOINTER_TO_UINT(p)	((guint) (gulong) (p))
++
++#define GINT_TO_POINTER(i)	((gpointer) (glong) (i))
++#define GUINT_TO_POINTER(u)	((gpointer) (gulong) (u))
++
++typedef signed long gintptr;
++typedef unsigned long guintptr;
++
++#define G_GINTPTR_MODIFIER      "l"
++#define G_GINTPTR_FORMAT        "li"
++#define G_GUINTPTR_FORMAT       "lu"
++
++#define GLIB_MAJOR_VERSION 2
++#define GLIB_MINOR_VERSION 67
++#define GLIB_MICRO_VERSION 2
++
++#define G_OS_UNIX
++
++#define G_VA_COPY va_copy
++#define G_VA_COPY_AS_ARRAY 1
++
++
++#ifndef __cplusplus
++# define G_HAVE_ISO_VARARGS 1
++#endif
++
++#ifdef __cplusplus
++# define G_HAVE_ISO_VARARGS 1
++#endif
++
++/* gcc-2.95.x supports both gnu style and ISO varargs, but if -ansi
++ * is passed ISO vararg support is turned off, and there is no work
++ * around to turn it on, so we unconditionally turn it off.
++ */
++#if __GNUC__ == 2 && __GNUC_MINOR__ == 95
++#  undef G_HAVE_ISO_VARARGS
++#endif
++
++#define G_HAVE_GROWING_STACK 0
++#define G_HAVE_GNUC_VISIBILITY 1
++
++#ifndef _MSC_VER
++# define G_HAVE_GNUC_VARARGS 1
++#endif
++
++#if defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590)
++#define G_GNUC_INTERNAL __attribute__((visibility("hidden")))
++#elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550)
++#define G_GNUC_INTERNAL __hidden
++#elif defined (__GNUC__) && defined (G_HAVE_GNUC_VISIBILITY)
++#define G_GNUC_INTERNAL __attribute__((visibility("hidden")))
++#else
++#define G_GNUC_INTERNAL
++#endif
++
++#define G_THREADS_ENABLED
++#define G_THREADS_IMPL_POSIX
++
++#define G_ATOMIC_LOCK_FREE
++
++#define GINT16_TO_LE(val)	((gint16) (val))
++#define GUINT16_TO_LE(val)	((guint16) (val))
++#define GINT16_TO_BE(val)	((gint16) GUINT16_SWAP_LE_BE (val))
++#define GUINT16_TO_BE(val)	(GUINT16_SWAP_LE_BE (val))
++
++#define GINT32_TO_LE(val)	((gint32) (val))
++#define GUINT32_TO_LE(val)	((guint32) (val))
++#define GINT32_TO_BE(val)	((gint32) GUINT32_SWAP_LE_BE (val))
++#define GUINT32_TO_BE(val)	(GUINT32_SWAP_LE_BE (val))
++
++#define GINT64_TO_LE(val)	((gint64) (val))
++#define GUINT64_TO_LE(val)	((guint64) (val))
++#define GINT64_TO_BE(val)	((gint64) GUINT64_SWAP_LE_BE (val))
++#define GUINT64_TO_BE(val)	(GUINT64_SWAP_LE_BE (val))
++
++#define GLONG_TO_LE(val)	((glong) GINT64_TO_LE (val))
++#define GULONG_TO_LE(val)	((gulong) GUINT64_TO_LE (val))
++#define GLONG_TO_BE(val)	((glong) GINT64_TO_BE (val))
++#define GULONG_TO_BE(val)	((gulong) GUINT64_TO_BE (val))
++#define GINT_TO_LE(val)		((gint) GINT32_TO_LE (val))
++#define GUINT_TO_LE(val)	((guint) GUINT32_TO_LE (val))
++#define GINT_TO_BE(val)		((gint) GINT32_TO_BE (val))
++#define GUINT_TO_BE(val)	((guint) GUINT32_TO_BE (val))
++#define GSIZE_TO_LE(val)	((gsize) GUINT64_TO_LE (val))
++#define GSSIZE_TO_LE(val)	((gssize) GINT64_TO_LE (val))
++#define GSIZE_TO_BE(val)	((gsize) GUINT64_TO_BE (val))
++#define GSSIZE_TO_BE(val)	((gssize) GINT64_TO_BE (val))
++#define G_BYTE_ORDER G_LITTLE_ENDIAN
++
++#define GLIB_SYSDEF_POLLIN =1
++#define GLIB_SYSDEF_POLLOUT =4
++#define GLIB_SYSDEF_POLLPRI =2
++#define GLIB_SYSDEF_POLLHUP =16
++#define GLIB_SYSDEF_POLLERR =8
++#define GLIB_SYSDEF_POLLNVAL =32
++
++#define G_MODULE_SUFFIX "so"
++
++typedef int GPid;
++#define G_PID_FORMAT "i"
++
++#define GLIB_SYSDEF_AF_UNIX 1
++#define GLIB_SYSDEF_AF_INET 2
++#define GLIB_SYSDEF_AF_INET6 10
++
++#define GLIB_SYSDEF_MSG_OOB 1
++#define GLIB_SYSDEF_MSG_PEEK 2
++#define GLIB_SYSDEF_MSG_DONTROUTE 4
++
++#define G_DIR_SEPARATOR '/'
++#define G_DIR_SEPARATOR_S "/"
++#define G_SEARCHPATH_SEPARATOR ':'
++#define G_SEARCHPATH_SEPARATOR_S ":"
++
++G_END_DECLS
++
++#endif /* __GLIBCONFIG_H__ */
+-- 
+2.25.1
+