source: chapter08/libffi.xml@ d672ab7

11.1 11.1-rc1 11.2 11.2-rc1 11.3 11.3-rc1 12.0 12.0-rc1 12.1 12.1-rc1 arm bdubbs/gcc13 multilib renodr/libudev-from-systemd s6-init trunk xry111/arm64 xry111/arm64-12.0 xry111/clfs-ng xry111/lfs-next xry111/loongarch xry111/loongarch-12.0 xry111/loongarch-12.1 xry111/mips64el xry111/pip3 xry111/rust-wip-20221008 xry111/update-glibc
Last change on this file since d672ab7 was d672ab7, checked in by Pierre Labastie <pierre.labastie@…>, 3 years ago

Remove spaces at end o lines - chapter08

  • Property mode set to 100644
File size: 4.2 KB
RevLine 
[b0aabe0]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
[e03d5e49]17 <title>Libffi-&libffi-version;</title>
[b0aabe0]18
19 <indexterm zone="ch-system-libffi">
20 <primary sortas="a-libffi">libffi</primary>
21 </indexterm>
22
23 <sect2 role="package">
24 <title/>
25
[e03d5e49]26 <para>The Libffi library provides a portable, high level programming
[b0aabe0]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>
[fb386e0]35 <seg>&libffi-fin-sbu;</seg>
36 <seg>&libffi-fin-du;</seg>
[b0aabe0]37 </seglistitem>
38 </segmentedlist>
39
40 </sect2>
41
42 <sect2 role="installation">
[e03d5e49]43 <title>Installation of Libffi</title>
[b0aabe0]44
[8dbae30]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>
[6a156bab]52
[b0aabe0]53 <para>Prepare libffi for compilation:</para>
54
[3ba82a8]55 <screen><userinput remap="configure">./configure --prefix=/usr \
56 --disable-static \
57 --with-gcc-arch=native \
[c3f8922]58 --disable-exec-static-tramp</userinput></screen>
[b8b65b7]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>
[77d2cd8d]66 <para>Ensure GCC optimizes for the current system. If this
[b8b65b7]67 is not specified, the system is guessed and the code generated
68 may not be correct for some systems. If the generated code
[d672ab7]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
[2c53f52]72 url='https://gcc.gnu.org/onlinedocs/gcc-&gcc-version;/gcc/x86-Options.html'>
[77d2cd8d]73 the x86 options in the GCC manual</ulink>.</para>
[b8b65b7]74 </listitem>
75 </varlistentry>
76
[c3f8922]77 <varlistentry>
78 <!-- To editors: remove it when downstreams are properly
79 fixed. -->
80 <term><parameter>--disable-exec-static-tramp</parameter></term>
81 <listitem>
82 <para>Disable static trampoline support. It's a new security
83 feature in libffi, but some BLFS packages (notably
84 <application>GJS</application> and
85 <application>gobject-introspection</application>) have not been
86 adapted for it.</para>
87 </listitem>
88 </varlistentry>
89
[b8b65b7]90 </variablelist>
[b0aabe0]91
92 <para>Compile the package:</para>
93
94<screen><userinput remap="make">make</userinput></screen>
95
96 <para>To test the results, issue:</para>
97
98<screen><userinput remap="test">make check</userinput></screen>
99
100 <para>Install the package:</para>
101
102<screen><userinput remap="install">make install</userinput></screen>
103
104 </sect2>
105
106 <sect2 id="contents-libffi" role="content">
[e03d5e49]107 <title>Contents of Libffi</title>
[b0aabe0]108
109 <segmentedlist>
110 <segtitle>Installed library</segtitle>
111
112 <seglistitem>
113 <seg>libffi.so</seg>
114 </seglistitem>
115 </segmentedlist>
116
117 <variablelist>
118 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
119 <?dbfo list-presentation="list"?>
120 <?dbhtml list-presentation="table"?>
121
122 <varlistentry id="libffi">
123 <term><filename class="libraryfile">libffi</filename></term>
124 <listitem>
[8d35535]125 <para>contains the foreign function interface API functions</para>
[b0aabe0]126 <indexterm zone="ch-system-libffi">
127 <primary sortas="c-libffi">libffi</primary>
128 </indexterm>
129 </listitem>
130 </varlistentry>
131 </variablelist>
132
133 </sect2>
134
135</sect1>
136
Note: See TracBrowser for help on using the repository browser.