diff options
author | Bruce Dubbs <bdubbs@linuxfromscratch.org> | 2020-06-07 20:16:00 +0000 |
---|---|---|
committer | Bruce Dubbs <bdubbs@linuxfromscratch.org> | 2020-06-07 20:16:00 +0000 |
commit | fcc027677da55c41dcaea045f5b9ff8b088e6495 (patch) | |
tree | 42500a7858959695b971e7f28f1d0bf33185db2e /chapter08/libffi.xml | |
parent | d53fefab5a6772fef606392a61608fc290e6a7ae (diff) |
Initial commit of alternative cross LFS
git-svn-id: http://svn.linuxfromscratch.org/LFS/branches/cross2@11897 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
Diffstat (limited to 'chapter08/libffi.xml')
-rw-r--r-- | chapter08/libffi.xml | 133 |
1 files changed, 133 insertions, 0 deletions
diff --git a/chapter08/libffi.xml b/chapter08/libffi.xml new file mode 100644 index 000000000..6a6f8a458 --- /dev/null +++ b/chapter08/libffi.xml @@ -0,0 +1,133 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" + "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [ + <!ENTITY % general-entities SYSTEM "../general.ent"> + %general-entities; +]> + +<sect1 id="ch-system-libffi" role="wrap"> + <?dbhtml filename="libffi.html"?> + + <sect1info condition="script"> + <productname>libffi</productname> + <productnumber>&libffi-version;</productnumber> + <address>&libffi-url;</address> + </sect1info> + + <title>Libffi-&libffi-version;</title> + + <indexterm zone="ch-system-libffi"> + <primary sortas="a-libffi">libffi</primary> + </indexterm> + + <sect2 role="package"> + <title/> + + <para>The Libffi library provides a portable, high level programming + interface to various calling conventions. This allows a programmer to call + any function specified by a call interface description at run time.</para> + + <segmentedlist> + <segtitle>&buildtime;</segtitle> + <segtitle>&diskspace;</segtitle> + + <seglistitem> + <seg>&libffi-ch6-sbu;</seg> + <seg>&libffi-ch6-du;</seg> + </seglistitem> + </segmentedlist> + + </sect2> + + <sect2 role="installation"> + <title>Installation of Libffi</title> + + <note> + <para>Similar to GMP, libffi builds with optimizations specific + to the proccesor in use. If building for another system, export + CFLAGS and CXXFLAGS to specify a generic build for your architecture. + If this is not done, all applications that link to libffi will trigger + Illegal Operation Errors.</para> + </note> +<!-- + <para>Modify the Makefile to install headers into the standard + <filename class="directory">/usr/include</filename> directory instead of + <filename class="directory">/usr/lib/libffi-&libffi-version;/include</filename>.</para> + +<screen><userinput remap="pre">sed -e '/^includesdir/ s/$(libdir).*$/$(includedir)/' \ + -i include/Makefile.in + +sed -e '/^includedir/ s/=.*$/=@includedir@/' \ + -e 's/^Cflags: -I${includedir}/Cflags:/' \ + -i libffi.pc.in</userinput></screen> +--> + <para>Prepare libffi for compilation:</para> + +<screen><userinput remap="configure">./configure --prefix=/usr --disable-static --with-gcc-arch=native</userinput></screen> + + <variablelist> + <title>The meaning of the configure option:</title> + + <varlistentry> + <term><parameter>--with-gcc-arch=native</parameter></term> + <listitem> + <para>Ensure gcc optimizes for the current system. If this + is not specified, the system is guessed and the code generated + may not be correct for some systems. If the generated code + will be copied from the native system to a less capable + system, use the less capable system as a parameter. For details + about alternative system types, see <ulink + url='https://gcc.gnu.org/onlinedocs/gcc-&gcc-version;/gcc/x86-Options.html'> + the x86 options in the gcc manual</ulink>.</para> + </listitem> + </varlistentry> + + </variablelist> + + <para>Compile the package:</para> + +<screen><userinput remap="make">make</userinput></screen> + + <para>To test the results, issue:</para> + +<screen><userinput remap="test">make check</userinput></screen> + + <para>Six tests, all related to test-callback.c, are known to fail.</para> + + <para>Install the package:</para> + +<screen><userinput remap="install">make install</userinput></screen> + + </sect2> + + <sect2 id="contents-libffi" role="content"> + <title>Contents of Libffi</title> + + <segmentedlist> + <segtitle>Installed library</segtitle> + + <seglistitem> + <seg>libffi.so</seg> + </seglistitem> + </segmentedlist> + + <variablelist> + <bridgehead renderas="sect3">Short Descriptions</bridgehead> + <?dbfo list-presentation="list"?> + <?dbhtml list-presentation="table"?> + + <varlistentry id="libffi"> + <term><filename class="libraryfile">libffi</filename></term> + <listitem> + <para>contains the libffi API functions.</para> + <indexterm zone="ch-system-libffi"> + <primary sortas="c-libffi">libffi</primary> + </indexterm> + </listitem> + </varlistentry> + </variablelist> + + </sect2> + +</sect1> + |