<?xml version="1.0"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
               "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
]>
<refentry id="glib-cross-compiling" revision="8 Apr 2003">
<refmeta>
<refentrytitle>Cross-compiling the GLib package</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>GLib Library</refmiscinfo>
</refmeta>

<refnamediv>
<refname>Cross-compiling the GLib Package</refname>
<refpurpose>
How to cross-compile GLib
</refpurpose>
</refnamediv>

    <refsect1 id="cross">
      <title>Building the Library for a different architecture</title>
      <para>
        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. 
      </para>
      <para>
        These notes cover things specific to cross-compiling GLib;
        for general information about cross-compilation, see the
        <application>autoconf</application> info pages.
      </para>
      <para>
        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 the configure script via a "cache file"
        or by setting the cache variables in your environment.
      </para>
      <para>
        As an example of using a cache file, to cross compile for
        the "MingW32" Win32 runtime environment on a Linux system,
        create a file 'win32.cache' with the following contents:
      </para>
      <programlisting> 
glib_cv_long_long_format=I64
glib_cv_stack_grows=no
      </programlisting>
      <para>
        Then execute the following commands:
      </para>
      <programlisting>
PATH=/path/to/mingw32-compiler/bin:$PATH
chmod a-w win32.cache   # prevent configure from changing it
./configure --cache-file=win32.cache --host=mingw32
      </programlisting>
      <para>
        The complete list of cache file variables follows. Most
         of these won't need to be set in most cases.
      </para>
    </refsect1>
    <refsect1 id="cache-file-variables">
      <title>Cache file variables</title>
      <formalpara>
        <title>glib_cv_long_long_format=[ll/q/I64]</title>
        
        <para>
           Format used by <function>printf()</function> and 
           <function>scanf()</function> for 64 bit integers. "ll" is 
           the C99 standard, and what is used by the 'trio' library
           that GLib builds if your <function>printf()</function> is 
           insufficiently capable.
           Doesn't need to be set if you are compiling using trio.
        </para>
      </formalpara>
      <formalpara>
        <title>glib_cv_stack_grows=[yes/no]</title>

        <para>
           Whether the stack grows up or down. Most places will want "no",
           A few architectures, such as PA-RISC need "yes".
        </para>
      </formalpara>
      <formalpara>
        <title>glib_cv_working_bcopy=[yes/no]</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>
            Whether you have <function>strlcpy()</function> that matches 
            OpenBSD. Defaults to "no", which is safe, since GLib uses a 
            built-in version in that case.
	</para>
      </formalpara>
      <formalpara>
         <title>glib_cv_have_qsort_r=[yes/no]</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>
            Whether <type>va_list</type> can be copied as a pointer. If set 
            to "no", then <function>memcopy()</function> will be used. Only 
            matters if you don't have <function>va_copy()</function> or 
            <function>__va_copy()</function>. (So, doesn't matter for GCC.) 
            Defaults to "yes" which is slightly more common than "no".
	</para>
      </formalpara>
      <formalpara>
         <title>glib_cv_rtldglobal_broken=[yes/no]</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>
            Whether you have a <function>vsnprintf()</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 "no".
         </para>
      </formalpara>

    </refsect1>    

</refentry>
