diff --git a/docs/reference/glib/cross-compiling.md b/docs/reference/glib/cross-compiling.md
new file mode 100644
index 000000000..4d91caa2f
--- /dev/null
+++ b/docs/reference/glib/cross-compiling.md
@@ -0,0 +1,88 @@
+Title: Cross-compiling the GLib package
+
+# Cross-compiling the GLib Package
+
+## Building the Library for a different architecture
+
+Cross-compilation is the process of compiling a program or library on a
+different architecture or operating system then it will be run upon. GLib is
+slightly more difficult to cross-compile than many packages because much of
+GLib is about hiding differences between different systems.
+
+These notes cover things specific to cross-compiling GLib; for general
+information about cross-compilation, see the [Meson
+documentation](http://mesonbuild.com/Cross-compilation.html).
+
+GLib tries to detect as much information as possible about the target system
+by compiling and linking programs without actually running anything;
+however, some information GLib needs is not available this way. This
+information needs to be provided to meson via a ‘cross file’.
+
+As an example of using a cross file, to cross compile for the ‘MingW32’
+Win64 runtime environment on a Linux system, create a file `cross_file.txt`
+with the following contents:
+
+```
+[host_machine]
+system = 'windows'
+cpu_family = 'x86_64'
+cpu = 'x86_64'
+endian = 'little'
+
+[properties]
+c_args = []
+c_link_args = []
+
+[binaries]
+c = 'x86_64-w64-mingw32-gcc'
+cpp = 'x86_64-w64-mingw32-g++'
+ar = 'x86_64-w64-mingw32-ar'
+ld = 'x86_64-w64-mingw32-ld'
+objcopy = 'x86_64-w64-mingw32-objcopy'
+strip = 'x86_64-w64-mingw32-strip'
+pkgconfig = 'x86_64-w64-mingw32-pkg-config'
+windres = 'x86_64-w64-mingw32-windres'
+```
+
+Then execute the following commands:
+
+ meson setup --cross-file cross_file.txt builddir
+
+The complete list of cross properties follows. Most of these won't need to
+be set in most cases.
+
+## Cross properties
+
+`have_[function]`
+: When meson checks if a function is supported, the test can be overridden by
+ setting the `have_function` property to `true` or `false`. For example:
+
+ Checking for function "fsync" : YES
+
+ can be overridden by setting
+
+ have_fsync = false
+
+`growing_stack=[true/false]`
+: Whether the stack grows up or down. Most places will want `false`. A few
+ architectures, such as PA-RISC need `true`.
+
+`have_strlcpy=[true/false]`
+: Whether you have `strlcpy()` that matches OpenBSD. Defaults to `false`,
+ which is safe, since GLib uses a built-in version in that case.
+
+`va_val_copy=[true/false]`
+: Whether `va_list` can be copied as a pointer. If set to `false`, then
+ `memcopy()` will be used. Only matters if you don't have `va_copy()` or
+ `__va_copy()`. (So, doesn't matter for GCC.) Defaults to `true` which is
+ slightly more common than `false`.
+
+`have_c99_vsnprintf=[true/false]`
+: Whether you have a `vsnprintf()` with C99 semantics. (C99 semantics means
+ returning the number of bytes that would have been written had the output
+ buffer had enough space.) Defaults to `false`.
+
+`have_c99_snprintf=[true/false]`
+: Whether you have a `snprintf()` with C99 semantics. (C99 semantics means
+ returning the number of bytes that would have been written had the output
+ buffer had enough space.) Defaults to `false`.
diff --git a/docs/reference/glib/cross.xml b/docs/reference/glib/cross.xml
deleted file mode 100644
index c90b30b36..000000000
--- a/docs/reference/glib/cross.xml
+++ /dev/null
@@ -1,147 +0,0 @@
-
-
-
-
-Cross-compiling the GLib package
-3
-GLib Library
-
-
-
-Cross-compiling the GLib Package
-
-How to cross-compile GLib
-
-
-
-
- Building the Library for a different architecture
-
- Cross-compilation is the process of compiling a program or
- library on a different architecture or operating system then
- it will be run upon. GLib is slightly more difficult to
- cross-compile than many packages because much of GLib is
- about hiding differences between different systems.
-
-
- These notes cover things specific to cross-compiling GLib;
- for general information about cross-compilation, see the
- meson
- info pages.
-
-
- GLib tries to detect as much information as possible about
- the target system by compiling and linking programs without
- actually running anything; however, some information GLib
- needs is not available this way. This information needs
- to be provided to meson via a ‘cross file’.
-
-
- As an example of using a cross file, to cross compile for
- the ‘MingW32’ Win64 runtime environment on a Linux system,
- create a file cross_file.txt with the following
- contents:
-
-
-[host_machine]
-system = 'windows'
-cpu_family = 'x86_64'
-cpu = 'x86_64'
-endian = 'little'
-
-[properties]
-c_args = []
-c_link_args = []
-
-[binaries]
-c = 'x86_64-w64-mingw32-gcc'
-cpp = 'x86_64-w64-mingw32-g++'
-ar = 'x86_64-w64-mingw32-ar'
-ld = 'x86_64-w64-mingw32-ld'
-objcopy = 'x86_64-w64-mingw32-objcopy'
-strip = 'x86_64-w64-mingw32-strip'
-pkgconfig = 'x86_64-w64-mingw32-pkg-config'
-windres = 'x86_64-w64-mingw32-windres'
-
-
- Then execute the following commands:
-
-
-meson --cross-file cross_file.txt builddir
-
-
- The complete list of cross properties follows. Most
- of these won't need to be set in most cases.
-
-
-
- Cross properties
-
- have_[function]
-
-
- When meson checks if a function is supported, the test can be
- overridden by setting the
- have_function property
- to true or false.
- For example Checking for function "fsync" : YES
- can be overridden by setting have_fsync = false
-
-
-
- growing_stack=[true/false]
-
-
- Whether the stack grows up or down. Most places will want
- false.
- A few architectures, such as PA-RISC need true.
-
-
-
- have_strlcpy=[true/false]
-
-
- Whether you have strlcpy() that matches
- OpenBSD. Defaults to false, which is safe,
- since GLib uses a built-in version in that case.
-
-
-
- va_val_copy=[true/false]
-
-
- Whether va_list can be copied as a pointer. If set
- to false, then memcopy()
- will be used. Only matters if you don't have
- va_copy() or __va_copy().
- (So, doesn't matter for GCC.)
- Defaults to true which is slightly more common
- than false.
-
-
-
- have_c99_vsnprintf=[true/false]
-
-
- Whether you have a vsnprintf() with C99
- semantics. (C99 semantics means returning the number of bytes
- that would have been written had the output buffer had enough
- space.) Defaults to false.
-
-
-
- have_c99_snprintf=[true/false]
-
-
- Whether you have a snprintf() with C99
- semantics. (C99 semantics means returning the number of bytes
- that would have been written had the output buffer had enough
- space.) Defaults to false.
-
-
-
-
-
-
diff --git a/docs/reference/glib/glib-docs.xml b/docs/reference/glib/glib-docs.xml
index 659cdba01..54314de12 100644
--- a/docs/reference/glib/glib-docs.xml
+++ b/docs/reference/glib/glib-docs.xml
@@ -25,7 +25,6 @@
-
diff --git a/docs/reference/glib/glib.toml.in b/docs/reference/glib/glib.toml.in
index c9a2b6e3d..2f489bd1d 100644
--- a/docs/reference/glib/glib.toml.in
+++ b/docs/reference/glib/glib.toml.in
@@ -40,6 +40,7 @@ show_class_hierarchy = true
urlmap_file = "urlmap.js"
# The same order will be used when generating the index
content_files = [
+ "cross-compiling.md",
"running.md",
"gvariant-format-strings.md",
diff --git a/docs/reference/glib/meson.build b/docs/reference/glib/meson.build
index 16cd23887..5e82ad5a9 100644
--- a/docs/reference/glib/meson.build
+++ b/docs/reference/glib/meson.build
@@ -71,7 +71,6 @@ if get_option('gtk_doc')
'--ignore-headers=' + ' '.join(ignore_headers),
],
content_files : [
- 'cross.xml',
'building.xml',
'changes.xml',
'compiling.xml',
@@ -150,6 +149,7 @@ endif
# gi-docgen version
expand_content_files = [
'character-set.md',
+ 'cross-compiling.md',
'error-reporting.md',
'gvariant-format-strings.md',
'gvariant-text-format.md',