diff options
Diffstat (limited to 'chapter06/binutils.xml')
-rw-r--r-- | chapter06/binutils.xml | 122 |
1 files changed, 109 insertions, 13 deletions
diff --git a/chapter06/binutils.xml b/chapter06/binutils.xml index 92c02a803..589f61f29 100644 --- a/chapter06/binutils.xml +++ b/chapter06/binutils.xml @@ -1,17 +1,24 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [ + <!ENTITY % general-entities SYSTEM "../general.ent"> + %general-entities; +]> <sect1 id="ch-system-binutils" xreflabel="Binutils"> -<title>Installing Binutils-&binutils-version;</title> -<?dbhtml filename="binutils.html" dir="chapter06"?> +<title>Binutils-&binutils-version;</title> +<?dbhtml filename="binutils.html"?> + +<indexterm zone="ch-system-binutils"><primary sortas="a-Binutils">Binutils</primary></indexterm> <para>The Binutils package contains a linker, an assembler, and other tools for handling object files.</para> -<screen>&buildtime; &binutils-time; -&diskspace; &binutils-compsize;</screen> +<screen>&buildtime; 1.4 SBU +&diskspace; 167 MB</screen> + +<para>Binutils installation depends on: Bash, Coreutils, Diffutils, GCC, Gettext, +Glibc, Grep, Make, Perl, Sed, Texinfo.</para> -&aa-binutils-down; -&aa-binutils-dep; -<sect2><title> </title><para> </para></sect2> <sect2><title>Installation of Binutils</title> @@ -34,7 +41,7 @@ to fix the problem.</para> <para>This package is known to behave badly when you have changed its default optimization flags (including the -march and -mcpu options). Therefore, if you have defined any environment variables that override -default optimizations, such as CFLAGS and CXXFLAGS, we recommend unsetting +default optimizations, such as CFLAGS and CXXFLAGS, we recommend un-setting or modifying them when building Binutils.</para> <para>The Binutils documentation recommends building Binutils outside of the @@ -45,7 +52,7 @@ cd ../binutils-build</userinput></screen> <para>Now prepare Binutils for compilation:</para> -<screen><userinput>../&binutils-dir;/configure --prefix=/usr --enable-shared</userinput></screen> +<screen><userinput>../binutils-&binutils-version;/configure --prefix=/usr --enable-shared</userinput></screen> <para>Compile the package:</para> @@ -78,12 +85,101 @@ doubts.</para> <para>Install the <emphasis>libiberty</emphasis> header file that is needed by some packages:</para> -<screen><userinput>cp ../&binutils-dir;/include/libiberty.h /usr/include</userinput></screen> +<screen><userinput>cp ../binutils-&binutils-version;/include/libiberty.h /usr/include</userinput></screen> </sect2> -&aa-binutils-shortdesc; -&aa-binutils-desc; -</sect1> +<sect2 id="contents-binutils"><title>Contents of Binutils</title> + +<para><emphasis>Installed programs</emphasis>: addr2line, ar, as, c++filt, +gprof, ld, nm, objcopy, objdump, ranlib, readelf, size, strings and +strip</para> + +<para><emphasis>Installed libraries</emphasis>: libiberty.a, libbfd.[a,so] and +libopcodes.[a,so]</para> + +</sect2> + + +<sect2><title>Short descriptions</title> + +<indexterm zone="ch-system-binutils addr2line"><primary sortas="b-addr2line">addr2line</primary></indexterm> +<para id="addr2line"><command>addr2line</command> 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 figure out which source +file and line number are associated with the address.</para> + +<indexterm zone="ch-system-binutils ar"><primary sortas="b-ar">ar</primary></indexterm> +<para id="ar"><command>ar</command> creates, modifies, and extracts from archives. An archive +is a single file holding a collection of other files in a structure that makes +it possible to retrieve the original individual files (called members of +the archive).</para> + +<indexterm zone="ch-system-binutils as"><primary sortas="b-as">as</primary></indexterm> +<para id="as"><command>as</command> is an assembler. It assembles the output of +gcc into object files.</para> + +<indexterm zone="ch-system-binutils c-filt"><primary sortas="b-c++filt">c++filt</primary></indexterm> +<para id="c-filt"><command>c++filt</command> is used by the linker to de-mangle C++ and +Java symbols, to keep overloaded functions from clashing.</para> + +<indexterm zone="ch-system-binutils gprof"><primary sortas="b-gprof">gprof</primary></indexterm> +<para id="gprof"><command>gprof</command> displays call graph profile data.</para> + +<indexterm zone="ch-system-binutils ld"><primary sortas="b-ld">ld</primary></indexterm> +<para id="ld"><command>ld</command> is a linker. It 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 nm"><primary sortas="b-nm">nm</primary></indexterm> +<para id="nm"><command>nm</command> lists the symbols occurring in a given object file.</para> +<indexterm zone="ch-system-binutils objcopy"><primary sortas="b-objcopy">objcopy</primary></indexterm> +<para id="objcopy"><command>objcopy</command> is used to translate one type of object +file into another.</para> + +<indexterm zone="ch-system-binutils objdump"><primary sortas="b-objdump">objdump</primary></indexterm> +<para id="objdump"><command>objdump</command> displays information about the given +object file, with options controlling what particular information to display. +The information shown is mostly only useful to programmers who are working on +the compilation tools.</para> + +<indexterm zone="ch-system-binutils ranlib"><primary sortas="b-ranlib">ranlib</primary></indexterm> +<para id="ranlib"><command>ranlib</command> generates an index of the contents of an +archive, and stores it in the archive. The index lists all the symbols defined +by archive members that are relocatable object files.</para> + +<indexterm zone="ch-system-binutils readelf"><primary sortas="b-readelf">readelf</primary></indexterm> +<para id="readelf"><command>readelf</command> displays information about elf type binaries.</para> + +<indexterm zone="ch-system-binutils size"><primary sortas="b-size">size</primary></indexterm> +<para id="size"><command>size</command> lists the section sizes -- and the grand +total -- for the given object files.</para> + +<indexterm zone="ch-system-binutils strings"><primary sortas="b-strings">strings</primary></indexterm> +<para id="strings"><command>strings</command> outputs, for each given file, the sequences +of printable characters that are of at least the specified length (defaulting to 4). +For object files it prints, by default, only the strings from the initializing +and loading sections. For other types of files it scans the whole file.</para> + +<indexterm zone="ch-system-binutils strip"><primary sortas="b-strip">strip</primary></indexterm> +<para id="strip"><command>strip</command> discards symbols from object files.</para> + +<indexterm zone="ch-system-binutils libiberty"><primary sortas="c-libiberty">libiberty</primary></indexterm> +<para id="libiberty"><command>libiberty</command> contains routines used by various GNU +programs, including getopt, obstack, strerror, strtol and strtoul.</para> + +<indexterm zone="ch-system-binutils libbfd"><primary sortas="c-libbfd">libbfd</primary></indexterm> +<para id="libbfd"><command>libbfd</command> is the Binary File Descriptor library.</para> + +<indexterm zone="ch-system-binutils libopcodes"><primary sortas="c-libopcodes">libopcodes</primary></indexterm> +<para id="libopcodes"><command>libopcodes</command> is a library for dealing with opcodes. +It is used for building utilities like objdump. Opcodes are the <quote>readable +text</quote> versions of instructions for the processor.</para> + +</sect2> + + + +</sect1> |