~ubuntu-branches/debian/sid/glib2.0/sid

« back to all changes in this revision

Viewing changes to docs/reference/glib/cross.xml

  • Committer: Package Import Robot
  • Author(s): Martin Pitt
  • Date: 2013-05-08 06:25:57 UTC
  • mfrom: (1.27.14) (3.1.181 experimental)
  • Revision ID: package-import@ubuntu.com-20130508062557-i7gbku66mls70gi2
Tags: 2.36.1-2
Merge experimental branch, upload to unstable.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<?xml version="1.0"?>
 
2
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
 
3
               "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
 
4
]>
 
5
<refentry id="glib-cross-compiling" revision="8 Apr 2003">
 
6
<refmeta>
 
7
<refentrytitle>Cross-compiling the GLib package</refentrytitle>
 
8
<manvolnum>3</manvolnum>
 
9
<refmiscinfo>GLib Library</refmiscinfo>
 
10
</refmeta>
 
11
 
 
12
<refnamediv>
 
13
<refname>Cross-compiling the GLib Package</refname>
 
14
<refpurpose>
 
15
How to cross-compile GLib
 
16
</refpurpose>
 
17
</refnamediv>
 
18
 
 
19
    <refsect1 id="cross">
 
20
      <title>Building the Library for a different architecture</title>
 
21
      <para>
 
22
        Cross-compilation is the process of compiling a program or
 
23
        library on a different architecture or operating system then
 
24
        it will be run upon. GLib is slightly more difficult to 
 
25
        cross-compile than many packages because much of GLib is
 
26
        about hiding differences between different systems. 
 
27
      </para>
 
28
      <para>
 
29
        These notes cover things specific to cross-compiling GLib;
 
30
        for general information about cross-compilation, see the
 
31
        <application>autoconf</application> info pages.
 
32
      </para>
 
33
      <para>
 
34
        GLib tries to detect as much information as possible about
 
35
        the target system by compiling and linking programs without
 
36
        actually running anything; however, some information GLib
 
37
        needs is not available this way. This information needs
 
38
        to be provided to the configure script via a "cache file"
 
39
        or by setting the cache variables in your environment.
 
40
      </para>
 
41
      <para>
 
42
        As an example of using a cache file, to cross compile for
 
43
        the "MingW32" Win32 runtine environment on a Linux system,
 
44
        create a file 'win32.cache' with the following contents:
 
45
      </para>
 
46
      <programlisting> 
 
47
glib_cv_long_long_format=I64
 
48
glib_cv_stack_grows=no
 
49
      </programlisting>
 
50
      <para>
 
51
        Then execute the following commands:
 
52
      </para>
 
53
      <programlisting>
 
54
PATH=/path/to/mingw32-compiler/bin:$PATH
 
55
chmod a-w win32.cache   # prevent configure from changing it
 
56
./configure --cache-file=win32.cache --host=mingw32
 
57
      </programlisting>
 
58
      <para>
 
59
        The complete list of cache file variables follows. Most
 
60
         of these won't need to be set in most cases.
 
61
      </para>
 
62
    </refsect1>
 
63
    <refsect1 id="cache-file-variables">
 
64
      <title>Cache file variables</title>
 
65
      <formalpara>
 
66
        <title>glib_cv_long_long_format=[ll/q/I64]</title>
 
67
        
 
68
        <para>
 
69
           Format used by <function>printf()</function> and 
 
70
           <function>scanf()</function> for 64 bit integers. "ll" is 
 
71
           the C99 standard, and what is used by the 'trio' library
 
72
           that GLib builds if your <function>printf()</function> is 
 
73
           insufficiently capable.
 
74
           Doesn't need to be set if you are compiling using trio.
 
75
        </para>
 
76
      </formalpara>
 
77
      <formalpara>
 
78
        <title>glib_cv_stack_grows=[yes/no]</title>
 
79
 
 
80
        <para>
 
81
           Whether the stack grows up or down. Most places will want "no",
 
82
           A few architectures, such as PA-RISC need "yes".
 
83
        </para>
 
84
      </formalpara>
 
85
      <formalpara>
 
86
        <title>glib_cv_working_bcopy=[yes/no]</title>
 
87
 
 
88
        <para>
 
89
           Whether your <function>bcopy()</function> can handle overlapping 
 
90
           copies. Only needs to be set if you don't have 
 
91
           <function>memmove()</function>. (Very unlikely)
 
92
        </para>
 
93
      </formalpara>
 
94
      <formalpara>
 
95
         <title>glib_cv_sane_realloc=[yes/no]</title>
 
96
 
 
97
         <para>  
 
98
            Whether your <function>realloc()</function> conforms to ANSI C 
 
99
            and can handle <literal>NULL</literal> as the first argument. 
 
100
            Defaults to "yes" and probably doesn't need to be set.
 
101
        </para>
 
102
      </formalpara>
 
103
      <formalpara>
 
104
         <title>glib_cv_have_strlcpy=[yes/no]</title>
 
105
 
 
106
         <para>
 
107
            Whether you have <function>strlcpy()</function> that matches 
 
108
            OpenBSD. Defaults to "no", which is safe, since GLib uses a 
 
109
            built-in version in that case.
 
110
        </para>
 
111
      </formalpara>
 
112
      <formalpara>
 
113
         <title>glib_cv_have_qsort_r=[yes/no]</title>
 
114
 
 
115
         <para>
 
116
           Whether you have <function>qsort_r()</function> that matches
 
117
           BSD. Defaults to "no", which is safe, since GLib uses a
 
118
           built-in version in that case.
 
119
         </para>
 
120
      </formalpara>
 
121
      <formalpara>
 
122
         <title>glib_cv_va_val_copy=[yes/no]</title>
 
123
   
 
124
         <para>
 
125
            Whether <type>va_list</type> can be copied as a pointer. If set 
 
126
            to "no", then <function>memcopy()</function> will be used. Only 
 
127
            matters if you don't have <function>va_copy()</function> or 
 
128
            <function>__va_copy()</function>. (So, doesn't matter for GCC.) 
 
129
            Defaults to "yes" which is slightly more common than "no".
 
130
        </para>
 
131
      </formalpara>
 
132
      <formalpara>
 
133
         <title>glib_cv_rtldglobal_broken=[yes/no]</title>
 
134
 
 
135
         <para>
 
136
            Whether you have a bug found in OSF/1 v5.0. Defaults to "no".
 
137
         </para>
 
138
      </formalpara>
 
139
      <formalpara>
 
140
         <title>glib_cv_uscore=[yes/no]</title>
 
141
 
 
142
         <para>
 
143
            Whether an underscore needs to be prepended to symbols when
 
144
            looking them up via <function>dlsym()</function>. Only needs to 
 
145
            be set if your system uses
 
146
            <function>dlopen()</function>/<function>dlsym()</function>.
 
147
         </para>
 
148
      </formalpara>
 
149
      <formalpara>
 
150
         <title>ac_cv_func_posix_getpwuid_r=[yes/no]</title>
 
151
 
 
152
         <para>
 
153
            Whether you have a getpwuid_r function (in your C library,
 
154
            not your thread library) that conforms to the POSIX spec.
 
155
            (Takes a 'struct passwd **' as the final argument)
 
156
         </para>
 
157
      </formalpara>
 
158
      <formalpara>
 
159
         <title>ac_cv_func_nonposix_getpwuid_r=[yes/no]</title>
 
160
 
 
161
         <para>
 
162
            Whether you have some variant of <function>getpwuid_r()</function>
 
163
            that doesn't conform to to the POSIX spec, but GLib might be able
 
164
            to use (or might segfault.) Only needs to be set if 
 
165
            <literal>ac_cv_func_posix_getpwuid_r</literal> is not set. It's 
 
166
            safest to set this to "no".
 
167
         </para>
 
168
      </formalpara>
 
169
      <formalpara>
 
170
         <title>ac_cv_func_posix_getgrgid_r=[yes/no]</title>
 
171
 
 
172
         <para>
 
173
            Whether you have a getgrgid_r function that conforms to
 
174
            the POSIX spec.
 
175
         </para>
 
176
      </formalpara>
 
177
      <formalpara>
 
178
         <title>glib_cv_use_pid_surrogate=[yes/no]</title>
 
179
 
 
180
         <para>
 
181
            Whether to use a <function>setpriority()</function> on the PID of 
 
182
            the thread as a method for setting the priority of threads. This 
 
183
            only needs to be set when using POSIX threads.
 
184
         </para>
 
185
      </formalpara>
 
186
      <formalpara>
 
187
         <title>ac_cv_func_printf_unix98=[yes/no]</title>
 
188
 
 
189
         <para>
 
190
           Whether your <function>printf()</function> family supports Unix98 
 
191
           style <literal>%N$</literal> positional parameters. Defaults to
 
192
        "no".
 
193
         </para>
 
194
      </formalpara>
 
195
      <formalpara>
 
196
         <title>ac_cv_func_vsnprintf_c99=[yes/no]</title>
 
197
 
 
198
         <para>
 
199
            Whether you have a <function>vsnprintf()</function> with C99 
 
200
            semantics. (C99 semantics means returning the number of bytes 
 
201
            that would have been written had the output buffer had enough 
 
202
            space.) Defaults to "no".
 
203
         </para>
 
204
      </formalpara>
 
205
 
 
206
    </refsect1>    
 
207
 
 
208
</refentry>