source: chapter08/libffi.xml@ c28569b

ml-11.0 multilib
Last change on this file since c28569b was c28569b, checked in by Thomas Trepl (Moody) <thomas@…>, 3 years ago

Automatic merge of trunk into multilib

  • Property mode set to 100644
File size: 5.7 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../general.ent">
5 %general-entities;
6]>
7
8<sect1 id="ch-system-libffi" role="wrap">
9 <?dbhtml filename="libffi.html"?>
10
11 <sect1info condition="script">
12 <productname>libffi</productname>
13 <productnumber>&libffi-version;</productnumber>
14 <address>&libffi-url;</address>
15 </sect1info>
16
17 <title>Libffi-&libffi-version;</title>
18
19 <indexterm zone="ch-system-libffi">
20 <primary sortas="a-libffi">libffi</primary>
21 </indexterm>
22
23 <sect2 role="package">
24 <title/>
25
26 <para>The Libffi library provides a portable, high level programming
27 interface to various calling conventions. This allows a programmer to call
28 any function specified by a call interface description at run time.</para>
29
30 <segmentedlist>
31 <segtitle>&buildtime;</segtitle>
32 <segtitle>&diskspace;</segtitle>
33
34 <seglistitem>
35 <seg>&libffi-fin-sbu;</seg>
36 <seg>&libffi-fin-du;</seg>
37 </seglistitem>
38 </segmentedlist>
39
40 </sect2>
41
42 <sect2 role="installation">
43 <title>Installation of Libffi</title>
44
45 <note>
46 <para>Similar to GMP, libffi builds with optimizations specific
47 to the proccesor in use. If building for another system, export
48 CFLAGS and CXXFLAGS to specify a generic build for your architecture.
49 If this is not done, all applications that link to libffi will trigger
50 Illegal Operation Errors.</para>
51 </note>
52
53 <para>Prepare libffi for compilation:</para>
54
55 <screen><userinput remap="configure">./configure --prefix=/usr \
56 --disable-static \
57 --with-gcc-arch=native \
58 --disable-exec-static-tramp </userinput></screen>
59
60 <variablelist>
61 <title>The meaning of the configure option:</title>
62
63 <varlistentry>
64 <term><parameter>--with-gcc-arch=native</parameter></term>
65 <listitem>
66 <para>Ensure GCC optimizes for the current system. If this
67 is not specified, the system is guessed and the code generated
68 may not be correct for some systems. If the generated code
69 will be copied from the native system to a less capable
70 system, use the less capable system as a parameter. For details
71 about alternative system types, see <ulink
72 url='https://gcc.gnu.org/onlinedocs/gcc-&gcc-version;/gcc/x86-Options.html'>
73 the x86 options in the GCC manual</ulink>.</para>
74 </listitem>
75 </varlistentry>
76
77 </variablelist>
78
79 <para>Compile the package:</para>
80
81<screen><userinput remap="make">make</userinput></screen>
82
83 <para>To test the results, issue:</para>
84
85<screen><userinput remap="test">make check</userinput></screen>
86
87 <para>Install the package:</para>
88
89<screen><userinput remap="install">make install</userinput></screen>
90
91 </sect2>
92
93 <!-- - - - - - - - - - -->
94 <!-- Multilib - 32bit -->
95 <!-- - - - - - - - - - -->
96
97 <sect2 arch="ml_32,ml_all" role="installation">
98 <title>Installation of Libffi - 32bit</title>
99
100 <para>Clean previous build:</para>
101
102<screen><userinput remap="pre">make distclean</userinput></screen>
103
104 <para>Prepare Libffi for compilation:</para>
105
106<screen><userinput remap="configure">CC="gcc -m32" CXX="g++ -m32" ./configure \
107 --prefix=/usr \
108 --disable-static \
109 --libdir=/usr/lib32 \
110 --with-gcc-arch=i686 \
111 --host=i686-pc-linux-gnu</userinput></screen>
112
113 <para>Compile the package:</para>
114
115<screen><userinput remap="make">make</userinput></screen>
116
117 <para>To test the results, issue:</para>
118
119<screen><userinput remap="test">make check</userinput></screen>
120
121 <para>Install the package:</para>
122
123<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
124cp -Rv DESTDIR/usr/lib32/* /usr/lib32
125rm -rf DESTDIR</userinput></screen>
126
127 </sect2><!-- m32 -->
128
129 <!-- - - - - - - - - - -->
130 <!-- Multilib - x32bit -->
131 <!-- - - - - - - - - - -->
132
133 <sect2 arch="ml_x32,ml_all" role="installation">
134 <title>Installation of Libffi - x32bit</title>
135
136 <para>Clean previous build:</para>
137
138<screen><userinput remap="pre">make distclean</userinput></screen>
139
140 <para>Prepare Libffi for compilation:</para>
141
142<screen><userinput remap="configure">CC="gcc -mx32" CXX="g++ -mx32" ./configure \
143 --prefix=/usr \
144 --disable-static \
145 --libdir=/usr/libx32 \
146 --with-gcc-arch=x86_64 \
147 --host=x86_64-unknown-linux-gnux32</userinput></screen>
148
149 <para>Compile the package:</para>
150
151<screen><userinput remap="make">make</userinput></screen>
152
153 <para>To test the results, issue:</para>
154
155<screen><userinput remap="test">make check</userinput></screen>
156
157 <para>Install the package:</para>
158
159<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
160cp -Rv DESTDIR/usr/libx32/* /usr/libx32
161rm -rf DESTDIR</userinput></screen>
162
163 </sect2><!-- mx32 -->
164
165 <sect2 id="contents-libffi" role="content">
166 <title>Contents of Libffi</title>
167
168 <segmentedlist>
169 <segtitle>Installed library</segtitle>
170
171 <seglistitem>
172 <seg>libffi.so</seg>
173 </seglistitem>
174 </segmentedlist>
175
176 <variablelist>
177 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
178 <?dbfo list-presentation="list"?>
179 <?dbhtml list-presentation="table"?>
180
181 <varlistentry id="libffi">
182 <term><filename class="libraryfile">libffi</filename></term>
183 <listitem>
184 <para>contains the foreign function interface API functions</para>
185 <indexterm zone="ch-system-libffi">
186 <primary sortas="c-libffi">libffi</primary>
187 </indexterm>
188 </listitem>
189 </varlistentry>
190 </variablelist>
191
192 </sect2>
193
194</sect1>
195
Note: See TracBrowser for help on using the repository browser.