diff options
Diffstat (limited to 'chapter06/binutils.xml')
-rw-r--r-- | chapter06/binutils.xml | 436 |
1 files changed, 0 insertions, 436 deletions
diff --git a/chapter06/binutils.xml b/chapter06/binutils.xml deleted file mode 100644 index 04dbd199c..000000000 --- a/chapter06/binutils.xml +++ /dev/null @@ -1,436 +0,0 @@ -<?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-binutils" role="wrap"> - <?dbhtml filename="binutils.html"?> - - <sect1info condition="script"> - <productname>binutils</productname> - <productnumber>&binutils-version;</productnumber> - <address>&binutils-url;</address> - </sect1info> - - <title>Binutils-&binutils-version;</title> - - <indexterm zone="ch-system-binutils"> - <primary sortas="a-Binutils">Binutils</primary> - </indexterm> - - <sect2 role="package"> - <title/> - - <para>The Binutils package contains a linker, an assembler, and other - tools for handling object files.</para> - - <segmentedlist> - <segtitle>&buildtime;</segtitle> - <segtitle>&diskspace;</segtitle> - - <seglistitem> - <seg>&binutils-ch6-sbu;</seg> - <seg>&binutils-ch6-du;</seg> - </seglistitem> - </segmentedlist> - - </sect2> - - <sect2 role="installation"> - <title>Installation of Binutils</title> - - <para>Verify that the PTYs are working properly inside the chroot - environment by performing a simple test:</para> - -<screen><userinput remap="test">expect -c "spawn ls"</userinput></screen> - - <para>This command should output the following:</para> - -<screen><computeroutput>spawn ls</computeroutput></screen> - - <para>If, instead, the output includes the message below, then the environment - is not set up for proper PTY operation. This issue needs to be resolved before - running the test suites for Binutils and GCC:</para> - -<screen><computeroutput>The system has no more ptys. -Ask your system administrator to create more.</computeroutput></screen> - - <para>Now remove one test that prevents the tests from running - to completion, and fix other tests in the gold test suite, which - need to be adjusted for GCC 10:</para> - -<screen><userinput remap="pre">sed -i '/@\tincremental_copy/d' gold/testsuite/Makefile.in -patch -Np1 -i ../binutils-&binutils-version;-gcc10_gold_test_fix-1.patch</userinput></screen> - - <para>The Binutils documentation recommends building Binutils - in a dedicated build directory:</para> - -<screen><userinput remap="pre">mkdir -v build -cd build</userinput></screen> - - <para>Prepare Binutils for compilation:</para> - -<screen><userinput remap="configure">../configure --prefix=/usr \ - --enable-gold \ - --enable-ld=default \ - --enable-plugins \ - --enable-shared \ - --disable-werror \ - --enable-64-bit-bfd \ - --with-system-zlib</userinput></screen> - <variablelist> - <title>The meaning of the configure parameters:</title> - - <varlistentry> - <term><parameter>--enable-gold</parameter></term> - <listitem> - <para>Build the gold linker and install it as ld.gold (along side the - default linker).</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><parameter>--enable-ld=default</parameter></term> - <listitem> - <para>Build the original bfd linker and install it as both ld (the - default linker) and ld.bfd.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><parameter>--enable-plugins</parameter></term> - <listitem> - <para>Enables plugin support for the linker.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><parameter>--enable-64-bit-bfd</parameter></term> - <listitem> - <para>Enables 64-bit support (on hosts with narrower word sizes). - May not be needed on 64-bit systems, but does no harm.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><parameter>--with-system-zlib</parameter></term> - <listitem> - <para>Use the installed zlib library rather than building the - included version.</para> - </listitem> - </varlistentry> - - </variablelist> - - <para>Compile the package:</para> - -<screen><userinput remap="make">make tooldir=/usr</userinput></screen> - - <variablelist> - <title>The meaning of the make parameter:</title> - - <varlistentry> - <term><parameter>tooldir=/usr</parameter></term> - <listitem> - <para>Normally, the tooldir (the directory where the executables will - ultimately be located) is set to <filename - class="directory">$(exec_prefix)/$(target_alias)</filename>. For - example, x86_64 machines would expand that to <filename - class="directory">/usr/x86_64-unknown-linux-gnu</filename>. Because this is - a custom system, this target-specific directory in <filename - class="directory">/usr</filename> is not required. <filename - class="directory">$(exec_prefix)/$(target_alias)</filename> would be - used if the system was used to cross-compile (for example, compiling a - package on an Intel machine that generates code that can be executed - on PowerPC machines).</para> - </listitem> - </varlistentry> - - </variablelist> - - <important> - <para>The test suite for Binutils in this section is considered critical. - Do not skip it under any circumstances.</para> - </important> - - <para>Test the results:</para> - -<screen><userinput remap="test">make -k check</userinput></screen> - -<!-- <para>The ver_test_pr16504.sh test is known to fail.</para>--> - - <para>Install the package:</para> - -<screen><userinput remap="install">make tooldir=/usr install</userinput></screen> - - </sect2> - - <sect2 id="contents-binutils" role="content"> - <title>Contents of Binutils</title> - - <segmentedlist> - <segtitle>Installed programs</segtitle> - <segtitle>Installed libraries</segtitle> - <segtitle>Installed directory</segtitle> - - <seglistitem> - <seg>addr2line, ar, as, c++filt, dwp, elfedit, gprof, ld, ld.bfd, ld.gold, nm, - objcopy, objdump, ranlib, readelf, size, strings, and strip</seg> - <seg>libbfd.{a,so} and libopcodes.{a,so}</seg> - <seg>/usr/lib/ldscripts</seg> - </seglistitem> - </segmentedlist> - - <variablelist> - <bridgehead renderas="sect3">Short Descriptions</bridgehead> - <?dbfo list-presentation="list"?> - <?dbhtml list-presentation="table"?> - - <varlistentry id="addr2line"> - <term><command>addr2line</command></term> - <listitem> - <para>Translates program addresses to file names and line numbers; - given an address and the name of an executable, it uses the debugging - information in the executable to determine which source file and line - number are associated with the address</para> - <indexterm zone="ch-system-binutils addr2line"> - <primary sortas="b-addr2line">addr2line</primary> - </indexterm> - </listitem> - </varlistentry> - - <varlistentry id="ar"> - <term><command>ar</command></term> - <listitem> - <para>Creates, modifies, and extracts from archives</para> - <indexterm zone="ch-system-binutils ar"> - <primary sortas="b-ar">ar</primary> - </indexterm> - </listitem> - </varlistentry> - - <varlistentry id="as"> - <term><command>as</command></term> - <listitem> - <para>An assembler that assembles the output of <command>gcc</command> - into object files</para> - <indexterm zone="ch-system-binutils as"> - <primary sortas="b-as">as</primary> - </indexterm> - </listitem> - </varlistentry> - - <varlistentry id="c-filt"> - <term><command>c++filt</command></term> - <listitem> - <para>Used by the linker to de-mangle C++ and Java symbols and to keep - overloaded functions from clashing</para> - <indexterm zone="ch-system-binutils c-filt"> - <primary sortas="b-c++filt">c++filt</primary> - </indexterm> - </listitem> - </varlistentry> - - <varlistentry id="dwp"> - <term><command>dwp</command></term> - <listitem> - <para>The DWARF packaging utility</para> - <indexterm zone="ch-system-binutils dwp"> - <primary sortas="dwp">dwp</primary> - </indexterm> - </listitem> - </varlistentry> - - <varlistentry id="elfedit"> - <term><command>elfedit</command></term> - <listitem> - <para>Updates the ELF header of ELF files</para> - <indexterm zone="ch-system-binutils elfedit"> - <primary sortas="b-elfedit">elfedit</primary> - </indexterm> - </listitem> - </varlistentry> - - <varlistentry id="gprof"> - <term><command>gprof</command></term> - <listitem> - <para>Displays call graph profile data</para> - <indexterm zone="ch-system-binutils gprof"> - <primary sortas="b-gprof">gprof</primary> - </indexterm> - </listitem> - </varlistentry> - - <varlistentry id="ld"> - <term><command>ld</command></term> - <listitem> - <para>A linker that combines a number of object and archive files - into a single file, relocating their data and tying up symbol - references</para> - <indexterm zone="ch-system-binutils ld"> - <primary sortas="b-ld">ld</primary> - </indexterm> - </listitem> - </varlistentry> - - <varlistentry id="ld.gold"> - <term><command>ld.gold</command></term> - <listitem> - <para>A cut down version of ld that only supports the - elf object file format</para> - <indexterm zone="ch-system-binutils ld.gold"> - <primary sortas="b-ld.gold">ld.gold</primary> - </indexterm> - </listitem> - </varlistentry> - - <varlistentry id="ld.bfd"> - <term><command>ld.bfd</command></term> - <listitem> - <para>Hard link to <command>ld</command></para> - <indexterm zone="ch-system-binutils ld.bfd"> - <primary sortas="b-ld.bfd">ld.bfd</primary> - </indexterm> - </listitem> - </varlistentry> - - <varlistentry id="nm"> - <term><command>nm</command></term> - <listitem> - <para>Lists the symbols occurring in a given object file</para> - <indexterm zone="ch-system-binutils nm"> - <primary sortas="b-nm">nm</primary> - </indexterm> - </listitem> - </varlistentry> - - <varlistentry id="objcopy"> - <term><command>objcopy</command></term> - <listitem> - <para>Translates one type of object file into another</para> - <indexterm zone="ch-system-binutils objcopy"> - <primary sortas="b-objcopy">objcopy</primary> - </indexterm> - </listitem> - </varlistentry> - - <varlistentry id="objdump"> - <term><command>objdump</command></term> - <listitem> - <para>Displays information about the given object file, with options - controlling the particular information to display; the information - shown is useful to programmers who are working on the compilation - tools</para> - <indexterm zone="ch-system-binutils objdump"> - <primary sortas="b-objdump">objdump</primary> - </indexterm> - </listitem> - </varlistentry> - - <varlistentry id="ranlib"> - <term><command>ranlib</command></term> - <listitem> - <para>Generates an index of the contents of an archive and stores it - in the archive; the index lists all of the symbols defined by archive - members that are relocatable object files</para> - <indexterm zone="ch-system-binutils ranlib"> - <primary sortas="b-ranlib">ranlib</primary> - </indexterm> - </listitem> - </varlistentry> - - <varlistentry id="readelf"> - <term><command>readelf</command></term> - <listitem> - <para>Displays information about ELF type binaries</para> - <indexterm zone="ch-system-binutils readelf"> - <primary sortas="b-readelf">readelf</primary> - </indexterm> - </listitem> - </varlistentry> - - <varlistentry id="size"> - <term><command>size</command></term> - <listitem> - <para>Lists the section sizes and the total size for the given - object files</para> - <indexterm zone="ch-system-binutils size"> - <primary sortas="b-size">size</primary> - </indexterm> - </listitem> - </varlistentry> - - <varlistentry id="strings"> - <term><command>strings</command></term> - <listitem> - <para>Outputs, for each given file, the sequences of printable - characters that are of at least the specified length (defaulting to - four); for object files, it prints, by default, only the strings from - the initializing and loading sections while for other types of files, it - scans the entire file</para> - <indexterm zone="ch-system-binutils strings"> - <primary sortas="b-strings">strings</primary> - </indexterm> - </listitem> - </varlistentry> - - <varlistentry id="strip"> - <term><command>strip</command></term> - <listitem> - <para>Discards symbols from object files</para> - <indexterm zone="ch-system-binutils strip"> - <primary sortas="b-strip">strip</primary> - </indexterm> - </listitem> - </varlistentry> - - <varlistentry id="libbfd"> - <term><filename class="libraryfile">libbfd</filename></term> - <listitem> - <para>The Binary File Descriptor library</para> - <indexterm zone="ch-system-binutils libbfd"> - <primary sortas="c-libbfd">libbfd</primary> - </indexterm> - </listitem> - </varlistentry> - - <varlistentry id="libctf"> - <term><filename class="libraryfile">libctf</filename></term> - <listitem> - <para>The Compat ANSI-C Type Format debugging support library</para> - <indexterm zone="ch-system-binutils libctf"> - <primary sortas="c-libctf">libctf</primary> - </indexterm> - </listitem> - </varlistentry> - - <varlistentry id="libctf-nobfd"> - <term><filename class="libraryfile">libctf-nobfd</filename></term> - <listitem> - <para>A libctf variant which does not use libbfd functionality</para> - <indexterm zone="ch-system-binutils libctf-nobfd"> - <primary sortas="c-libctf-nobfd">libctf-nobfd</primary> - </indexterm> - </listitem> - </varlistentry> - - <varlistentry id="libopcodes"> - <term><filename class="libraryfile">libopcodes</filename></term> - <listitem> - <para>A library for dealing with opcodes—the <quote>readable - text</quote> versions of instructions for the processor; - it is used for building utilities like - <command>objdump</command></para> - <indexterm zone="ch-system-binutils libopcodes"> - <primary sortas="c-libopcodes">libopcodes</primary> - </indexterm> - </listitem> - </varlistentry> - - </variablelist> - - </sect2> - -</sect1> |