mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-02-25 19:52:10 +01:00
Merge branch 'xclaesse/glib-meson-cross-doc'
Closes #1363 See merge request GNOME/glib!232
This commit is contained in:
commit
bc0d624245
@ -2,7 +2,7 @@
|
|||||||
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||||
]>
|
]>
|
||||||
<refentry id="glib-cross-compiling" revision="8 Apr 2003">
|
<refentry id="glib-cross-compiling" revision="7 Aug 2018">
|
||||||
<refmeta>
|
<refmeta>
|
||||||
<refentrytitle>Cross-compiling the GLib package</refentrytitle>
|
<refentrytitle>Cross-compiling the GLib package</refentrytitle>
|
||||||
<manvolnum>3</manvolnum>
|
<manvolnum>3</manvolnum>
|
||||||
@ -28,178 +28,115 @@ How to cross-compile GLib
|
|||||||
<para>
|
<para>
|
||||||
These notes cover things specific to cross-compiling GLib;
|
These notes cover things specific to cross-compiling GLib;
|
||||||
for general information about cross-compilation, see the
|
for general information about cross-compilation, see the
|
||||||
<application>autoconf</application> info pages.
|
<ulink url="http://mesonbuild.com/Cross-compilation.html">meson</ulink>
|
||||||
|
info pages.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
GLib tries to detect as much information as possible about
|
GLib tries to detect as much information as possible about
|
||||||
the target system by compiling and linking programs without
|
the target system by compiling and linking programs without
|
||||||
actually running anything; however, some information GLib
|
actually running anything; however, some information GLib
|
||||||
needs is not available this way. This information needs
|
needs is not available this way. This information needs
|
||||||
to be provided to the configure script via a "cache file"
|
to be provided to meson via a ‘cross file’.
|
||||||
or by setting the cache variables in your environment.
|
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
As an example of using a cache file, to cross compile for
|
As an example of using a cross file, to cross compile for
|
||||||
the "MingW32" Win32 runtime environment on a Linux system,
|
the ‘MingW32’ Win64 runtime environment on a Linux system,
|
||||||
create a file 'win32.cache' with the following contents:
|
create a file <filename>cross_file.txt</filename> with the following
|
||||||
|
contents:
|
||||||
</para>
|
</para>
|
||||||
<programlisting>
|
<programlisting>
|
||||||
glib_cv_long_long_format=I64
|
[host_machine]
|
||||||
glib_cv_stack_grows=no
|
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'
|
||||||
|
strip = 'x86_64-w64-mingw32-strip'
|
||||||
|
pkgconfig = 'x86_64-w64-mingw32-pkg-config'
|
||||||
|
windres = 'x86_64-w64-mingw32-windres'
|
||||||
</programlisting>
|
</programlisting>
|
||||||
<para>
|
<para>
|
||||||
Then execute the following commands:
|
Then execute the following commands:
|
||||||
</para>
|
</para>
|
||||||
<programlisting>
|
<programlisting>
|
||||||
PATH=/path/to/mingw32-compiler/bin:$PATH
|
meson --cross_file cross_file.txt builddir
|
||||||
chmod a-w win32.cache # prevent configure from changing it
|
|
||||||
./configure --cache-file=win32.cache --host=mingw32
|
|
||||||
</programlisting>
|
</programlisting>
|
||||||
<para>
|
<para>
|
||||||
The complete list of cache file variables follows. Most
|
The complete list of cross properties follows. Most
|
||||||
of these won't need to be set in most cases.
|
of these won't need to be set in most cases.
|
||||||
</para>
|
</para>
|
||||||
</refsect1>
|
</refsect1>
|
||||||
<refsect1 id="cache-file-variables">
|
<refsect1 id="cross-properties">
|
||||||
<title>Cache file variables</title>
|
<title>Cross properties</title>
|
||||||
<formalpara>
|
<formalpara>
|
||||||
<title>glib_cv_long_long_format=[ll/q/I64]</title>
|
<title>have_[function]</title>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Format used by <function>printf()</function> and
|
When meson checks if a function is supported, the test can be
|
||||||
<function>scanf()</function> for 64 bit integers. "ll" is
|
overridden by setting the
|
||||||
the C99 standard, and what is used by the 'trio' library
|
<literal>have_<replaceable>function</replaceable></literal> property
|
||||||
that GLib builds if your <function>printf()</function> is
|
to <constant>true</constant> or <constant>false</constant>.
|
||||||
insufficiently capable.
|
For example <programlisting>Checking for function "alloca" : YES</programlisting>
|
||||||
Doesn't need to be set if you are compiling using trio.
|
can be overridden by setting <programlisting>have_alloca = false</programlisting>
|
||||||
</para>
|
</para>
|
||||||
</formalpara>
|
</formalpara>
|
||||||
<formalpara>
|
<formalpara>
|
||||||
<title>glib_cv_stack_grows=[yes/no]</title>
|
<title>growing_stack=[true/false]</title>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Whether the stack grows up or down. Most places will want "no",
|
Whether the stack grows up or down. Most places will want
|
||||||
A few architectures, such as PA-RISC need "yes".
|
<constant>false</constant>.
|
||||||
|
A few architectures, such as PA-RISC need <constant>true</constant>.
|
||||||
</para>
|
</para>
|
||||||
</formalpara>
|
</formalpara>
|
||||||
<formalpara>
|
<formalpara>
|
||||||
<title>glib_cv_working_bcopy=[yes/no]</title>
|
<title>have_strlcpy=[true/false]</title>
|
||||||
|
|
||||||
<para>
|
|
||||||
Whether your <function>bcopy()</function> can handle overlapping
|
|
||||||
copies. Only needs to be set if you don't have
|
|
||||||
<function>memmove()</function>. (Very unlikely)
|
|
||||||
</para>
|
|
||||||
</formalpara>
|
|
||||||
<formalpara>
|
|
||||||
<title>glib_cv_sane_realloc=[yes/no]</title>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
Whether your <function>realloc()</function> conforms to ANSI C
|
|
||||||
and can handle <literal>NULL</literal> as the first argument.
|
|
||||||
Defaults to "yes" and probably doesn't need to be set.
|
|
||||||
</para>
|
|
||||||
</formalpara>
|
|
||||||
<formalpara>
|
|
||||||
<title>glib_cv_have_strlcpy=[yes/no]</title>
|
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Whether you have <function>strlcpy()</function> that matches
|
Whether you have <function>strlcpy()</function> that matches
|
||||||
OpenBSD. Defaults to "no", which is safe, since GLib uses a
|
OpenBSD. Defaults to <constant>false</constant>, which is safe,
|
||||||
built-in version in that case.
|
since GLib uses a built-in version in that case.
|
||||||
</para>
|
</para>
|
||||||
</formalpara>
|
</formalpara>
|
||||||
<formalpara>
|
<formalpara>
|
||||||
<title>glib_cv_have_qsort_r=[yes/no]</title>
|
<title>va_val_copy=[true/false]</title>
|
||||||
|
|
||||||
<para>
|
|
||||||
Whether you have <function>qsort_r()</function> that matches
|
|
||||||
BSD. Defaults to "no", which is safe, since GLib uses a
|
|
||||||
built-in version in that case.
|
|
||||||
</para>
|
|
||||||
</formalpara>
|
|
||||||
<formalpara>
|
|
||||||
<title>glib_cv_va_val_copy=[yes/no]</title>
|
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Whether <type>va_list</type> can be copied as a pointer. If set
|
Whether <type>va_list</type> can be copied as a pointer. If set
|
||||||
to "no", then <function>memcopy()</function> will be used. Only
|
to <constant>false</constant>, then <function>memcopy()</function>
|
||||||
matters if you don't have <function>va_copy()</function> or
|
will be used. Only matters if you don't have
|
||||||
<function>__va_copy()</function>. (So, doesn't matter for GCC.)
|
<function>va_copy()</function> or <function>__va_copy()</function>.
|
||||||
Defaults to "yes" which is slightly more common than "no".
|
(So, doesn't matter for GCC.)
|
||||||
|
Defaults to <constant>true</constant> which is slightly more common
|
||||||
|
than <constant>false</constant>.
|
||||||
</para>
|
</para>
|
||||||
</formalpara>
|
</formalpara>
|
||||||
<formalpara>
|
<formalpara>
|
||||||
<title>glib_cv_rtldglobal_broken=[yes/no]</title>
|
<title>have_c99_vsnprintf=[true/false]</title>
|
||||||
|
|
||||||
<para>
|
|
||||||
Whether you have a bug found in OSF/1 v5.0. Defaults to "no".
|
|
||||||
</para>
|
|
||||||
</formalpara>
|
|
||||||
<formalpara>
|
|
||||||
<title>glib_cv_uscore=[yes/no]</title>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
Whether an underscore needs to be prepended to symbols when
|
|
||||||
looking them up via <function>dlsym()</function>. Only needs to
|
|
||||||
be set if your system uses
|
|
||||||
<function>dlopen()</function>/<function>dlsym()</function>.
|
|
||||||
</para>
|
|
||||||
</formalpara>
|
|
||||||
<formalpara>
|
|
||||||
<title>ac_cv_func_posix_getpwuid_r=[yes/no]</title>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
Whether you have a getpwuid_r function (in your C library,
|
|
||||||
not your thread library) that conforms to the POSIX spec.
|
|
||||||
(Takes a 'struct passwd **' as the final argument)
|
|
||||||
</para>
|
|
||||||
</formalpara>
|
|
||||||
<formalpara>
|
|
||||||
<title>ac_cv_func_nonposix_getpwuid_r=[yes/no]</title>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
Whether you have some variant of <function>getpwuid_r()</function>
|
|
||||||
that doesn't conform to to the POSIX spec, but GLib might be able
|
|
||||||
to use (or might segfault.) Only needs to be set if
|
|
||||||
<literal>ac_cv_func_posix_getpwuid_r</literal> is not set. It's
|
|
||||||
safest to set this to "no".
|
|
||||||
</para>
|
|
||||||
</formalpara>
|
|
||||||
<formalpara>
|
|
||||||
<title>ac_cv_func_posix_getgrgid_r=[yes/no]</title>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
Whether you have a getgrgid_r function that conforms to
|
|
||||||
the POSIX spec.
|
|
||||||
</para>
|
|
||||||
</formalpara>
|
|
||||||
<formalpara>
|
|
||||||
<title>glib_cv_use_pid_surrogate=[yes/no]</title>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
Whether to use a <function>setpriority()</function> on the PID of
|
|
||||||
the thread as a method for setting the priority of threads. This
|
|
||||||
only needs to be set when using POSIX threads.
|
|
||||||
</para>
|
|
||||||
</formalpara>
|
|
||||||
<formalpara>
|
|
||||||
<title>ac_cv_func_printf_unix98=[yes/no]</title>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
Whether your <function>printf()</function> family supports Unix98
|
|
||||||
style <literal>%N$</literal> positional parameters. Defaults to
|
|
||||||
"no".
|
|
||||||
</para>
|
|
||||||
</formalpara>
|
|
||||||
<formalpara>
|
|
||||||
<title>ac_cv_func_vsnprintf_c99=[yes/no]</title>
|
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Whether you have a <function>vsnprintf()</function> with C99
|
Whether you have a <function>vsnprintf()</function> with C99
|
||||||
semantics. (C99 semantics means returning the number of bytes
|
semantics. (C99 semantics means returning the number of bytes
|
||||||
that would have been written had the output buffer had enough
|
that would have been written had the output buffer had enough
|
||||||
space.) Defaults to "no".
|
space.) Defaults to <constant>false</constant>.
|
||||||
|
</para>
|
||||||
|
</formalpara>
|
||||||
|
<formalpara>
|
||||||
|
<title>have_c99_snprintf=[true/false]</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Whether you have a <function>snprintf()</function> 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 <constant>false</constant>.
|
||||||
</para>
|
</para>
|
||||||
</formalpara>
|
</formalpara>
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user