summaryrefslogtreecommitdiff
path: root/lfs-12.1-sysv/chapter08/binutils.html
diff options
context:
space:
mode:
authorSn4il <sn4il@thedroth.rocks>2024-09-02 15:54:35 +0300
committerSn4il <sn4il@thedroth.rocks>2024-09-02 15:54:35 +0300
commit2203e654b389586650d553251b04544a34f189bf (patch)
tree0125b69fc70a2506c53158ba2020993a5b8985b7 /lfs-12.1-sysv/chapter08/binutils.html
parent200d528e55ca954d37769f4d143f10c9519b00e7 (diff)
downloadsn4il-site-2203e654b389586650d553251b04544a34f189bf.tar.gz
sn4il-site-2203e654b389586650d553251b04544a34f189bf.zip
LFS 12.2
Diffstat (limited to 'lfs-12.1-sysv/chapter08/binutils.html')
-rw-r--r--lfs-12.1-sysv/chapter08/binutils.html642
1 files changed, 0 insertions, 642 deletions
diff --git a/lfs-12.1-sysv/chapter08/binutils.html b/lfs-12.1-sysv/chapter08/binutils.html
deleted file mode 100644
index e122a4f..0000000
--- a/lfs-12.1-sysv/chapter08/binutils.html
+++ /dev/null
@@ -1,642 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
- <title>
- 8.19. Binutils-2.42
- </title>
- <link rel="stylesheet" type="text/css" href="../stylesheets/lfs.css" />
- <meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" />
- <link rel="stylesheet" href="../stylesheets/lfs-print.css" type=
- "text/css" media="print" />
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
- </head>
- <body class="lfs" id="lfs-12.1">
- <div class="navheader">
- <h4>
- Линукс с нуля - Версия 12.1
- </h4>
- <h3>
- Глава 8. Установка базового системного программного обеспечения
- </h3>
- <ul>
- <li class="prev">
- <a accesskey="p" href="pkgconf.html" title=
- "Pkgconf-2.1.1">Пред.</a>
- <p>
- Pkgconf-2.1.1
- </p>
- </li>
- <li class="next">
- <a accesskey="n" href="gmp.html" title="GMP-6.3.0">След.</a>
- <p>
- GMP-6.3.0
- </p>
- </li>
- <li class="up">
- <a accesskey="u" href="chapter08.html" title=
- "Глава 8. Установка базового системного программного обеспечения">Наверх</a>
- </li>
- <li class="home">
- <a accesskey="h" href="../index.html" title=
- "Линукс с нуля - Версия 12.1">Начало</a>
- </li>
- </ul>
- </div>
- <h1 class="sect1">
- <a id="ch-system-binutils" name="ch-system-binutils"></a>8.19.
- Binutils-2.42
- </h1>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Binutils содержит компоновщик, ассемблер и другие инструменты
- для работы с объектными файлами.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время сборки:</strong>
- <span class="segbody">2.2 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">2.7 GB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h2 class="sect2">
- 8.19.1. Установка пакета Binutils
- </h2>
- <p>
- Документация Binutils рекомендует выполнять компиляцию в отдельном
- каталоге:
- </p>
- <pre class="userinput"><kbd class="command">mkdir -v build
-cd build</kbd></pre>
- <p>
- Подготовьте Binutils к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">../configure --prefix=/usr \
- --sysconfdir=/etc \
- --enable-gold \
- --enable-ld=default \
- --enable-plugins \
- --enable-shared \
- --disable-werror \
- --enable-64-bit-bfd \
- --with-system-zlib \
- --enable-default-hash-style=gnu</kbd></pre>
- <div class="variablelist">
- <p class="title">
- <strong>Значение новых параметров настройки:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><em class=
- "parameter"><code>--enable-gold</code></em></span>
- </dt>
- <dd>
- <p>
- Собирает компоновщик gold и устанавливает его как ld.gold
- (вместе с компоновщиком по умолчанию).
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--enable-ld=default</code></em></span>
- </dt>
- <dd>
- <p>
- Собирает оригинальный компоновщик bfd и устанавливает его как
- ld (компоновщик по умолчанию) и как ld.bfd
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--enable-plugins</code></em></span>
- </dt>
- <dd>
- <p>
- Включает поддержку плагинов для компоновщика.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--with-system-zlib</code></em></span>
- </dt>
- <dd>
- <p>
- Указывает, что необходимо использовать установленную
- библиотеку zlib вместо сборки собственной.
- </p>
- </dd>
- </dl>
- </div>
- <p>
- Скомпилируйте пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make tooldir=/usr</kbd></pre>
- <div class="variablelist">
- <p class="title">
- <strong>Значение параметра make:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><em class=
- "parameter"><code>tooldir=/usr</code></em></span>
- </dt>
- <dd>
- <p>
- Обычно для tooldir (каталога, в котором будут расположены
- исполняемые файлы) установлено значение <code class=
- "filename">$(exec_prefix)/$(target_alias)</code>. Например,
- машины x86_64 преобразуют это значение в <code class=
- "filename">/usr/x86_64-unknown-linux-gnu</code>. Поскольку
- это пользовательская система, то целевой каталог в
- <code class="filename">/usr</code> не требуется. Параметр
- <code class="filename">$(exec_prefix)/$(target_alias)</code>
- использовался, если бы система применялась для
- кросс-компиляции (например, при компиляции пакета на
- компьютере Intel, который генерирует код, который может быть
- выполнен на компьютерах PowerPC).
- </p>
- </dd>
- </dl>
- </div>
- <div class="admon important">
- <img alt="[Важно]" src="../images/important.png" />
- <h3>
- Важно
- </h3>
- <p>
- Набор тестов для Binutils в этом разделе считается критически
- важным. Ни в коем случае не пропускайте его.
- </p>
- </div>
- <p>
- Выполните тестирование:
- </p>
- <pre class="userinput"><kbd class="command">make -k check</kbd></pre>
- <p>
- Чтобы получить список неудачных тестов, запустите:
- </p>
- <pre class="userinput"><kbd class=
- "command">grep '^FAIL:' $(find -name '*.log')</kbd></pre>
- <p>
- Двенадцать тестов завершаются неудачно в наборе тестов gold, когда
- GCC собирается с параметрами <code class=
- "option">--enable-default-pie</code> и <code class=
- "option">--enable-default-ssp</code>.
- </p>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make tooldir=/usr install</kbd></pre>
- <p>
- Удалите бесполезные статические библиотеки:
- </p>
- <pre class="userinput"><kbd class=
- "command">rm -fv /usr/lib/lib{bfd,ctf,ctf-nobfd,gprofng,opcodes,sframe}.a</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h2 class="sect2">
- <a id="contents-binutils" name="contents-binutils"></a>8.19.2.
- Содержимое пакета Binutils
- </h2>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные программы:</strong>
- <span class="segbody">addr2line, ar, as, c++filt, dwp, elfedit,
- gprof, gprofng, ld, ld.bfd, ld.gold, nm, objcopy, objdump,
- ranlib, readelf, size, strings и strip</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Установленные библиотеки:</strong>
- <span class="segbody">libbfd.so, libctf.so, libctf-nobfd.so,
- libgprofng.so, libopcodes.so и libsframe.so</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Созданные каталоги:</strong>
- <span class="segbody">/usr/lib/ldscripts</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h3>
- Краткое описание
- </h3>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="addr2line" name="addr2line"></a><span class=
- "term"><span class=
- "command"><strong>addr2line</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Переводит адреса программ в имена файлов и номера строк;
- учитывая адрес и имя исполняемого файла, использует
- отладочную информацию в исполняемом файле, для
- определения файла исходного кода и номера строки,
- ассоциированной с адресом
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="ar" name="ar"></a><span class="term"><span class=
- "command"><strong>ar</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Создаёт, изменяет и распаковывает архивы
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="as" name="as"></a><span class="term"><span class=
- "command"><strong>as</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Ассемблер, который собирает результат работы <span class=
- "command"><strong>gcc</strong></span> в объектные файлы
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="c-filt" name="c-filt"></a><span class=
- "term"><span class=
- "command"><strong>c++filt</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Используется компоновщиком для исправления символов C++ и
- Java и предотвращения конфликтов перегруженных функций.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="dwp" name="dwp"></a><span class=
- "term"><span class="command"><strong>dwp</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Утилита для упаковки DWARF
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="elfedit" name="elfedit"></a><span class=
- "term"><span class=
- "command"><strong>elfedit</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Обновляет ELF заголовки в ELF файлах
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="gprof" name="gprof"></a><span class=
- "term"><span class=
- "command"><strong>gprof</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Отображает в графическом виде информацию о профилировании
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="gprofng" name="gprofng"></a><span class=
- "term"><span class=
- "command"><strong>gprofng</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Собирает и анализирует данные о производительности
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="ld" name="ld"></a><span class="term"><span class=
- "command"><strong>ld</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Компоновщик, который объединяет несколько объектных и
- архивных файлов в один файл, перемещая их данные и
- связывая символическими ссылками
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="ld.gold" name="ld.gold"></a><span class=
- "term"><span class=
- "command"><strong>ld.gold</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Урезанная версия ld, которая поддерживает только формат
- объектных файлов elf
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="ld.bfd" name="ld.bfd"></a><span class=
- "term"><span class=
- "command"><strong>ld.bfd</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Жесткая ссылка на <span class=
- "command"><strong>ld</strong></span>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="nm" name="nm"></a><span class="term"><span class=
- "command"><strong>nm</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выводит список символов, используемых в данном объектном
- файле
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="objcopy" name="objcopy"></a><span class=
- "term"><span class=
- "command"><strong>objcopy</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Преобразует один тип объектного файла в другой
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="objdump" name="objdump"></a><span class=
- "term"><span class=
- "command"><strong>objdump</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Отображает информацию о данном объектном файле; можно
- указать параметры, определяющие, какая конкретно
- информация будет отображаться. Отображаемая информация
- полезна для программистов, которые работают над
- инструментами, используемыми при компиляции
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="ranlib" name="ranlib"></a><span class=
- "term"><span class=
- "command"><strong>ranlib</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Создает индекс содержимого архива и сохраняет его в
- архиве; в индексе перечислены все символы, определенные в
- перемещаемых объектных файлах, содержащихся в архиве
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="readelf" name="readelf"></a><span class=
- "term"><span class=
- "command"><strong>readelf</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Отображает информацию о двоичных файлах типа ELF
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="size" name="size"></a><span class=
- "term"><span class=
- "command"><strong>size</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Отображает размеры секций и общий размер указанных
- объектных файлов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="strings" name="strings"></a><span class=
- "term"><span class=
- "command"><strong>strings</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выводит для каждого указанного файла последовательности
- печатаемых символов, которые имеют по крайней мере
- указанную длину (по умолчанию четыре); для объектных
- файлов по умолчанию печатаются только строки из секций
- инициализации и загрузки, в то время как для других
- файлов он сканирует весь файл.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="strip" name="strip"></a><span class=
- "term"><span class=
- "command"><strong>strip</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Удаляет символы из объектных файлов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libbfd" name="libbfd"></a><span class=
- "term"><code class="filename">libbfd</code></span>
- </p>
- </td>
- <td>
- <p>
- Библиотека дескрипторов двоичных файлов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libctf" name="libctf"></a><span class=
- "term"><code class="filename">libctf</code></span>
- </p>
- </td>
- <td>
- <p>
- Библиотека отладки формата Compat ANSI-C Type
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libctf-nobfd" name="libctf-nobfd"></a><span class=
- "term"><code class="filename">libctf-nobfd</code></span>
- </p>
- </td>
- <td>
- <p>
- Вариант libctf, не использующий функциональность libbfd.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libgprofng" name="libgprofng"></a><span class=
- "term"><code class="filename">libgprofng</code></span>
- </p>
- </td>
- <td>
- <p>
- Библиотека, содержащая большинство подпрограмм,
- используемых <span class=
- "command"><strong>gprofng</strong></span>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libopcodes" name="libopcodes"></a><span class=
- "term"><code class="filename">libopcodes</code></span>
- </p>
- </td>
- <td>
- <p>
- Библиотека для работы с опкодами—<span class=
- "quote">«<span class="quote">читаемыми</span>»</span>
- версиями инструкций для процессора. Используется для
- сборки таких утилит как <span class=
- "command"><strong>objdump</strong></span>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libsframe" name="libsframe"></a><span class=
- "term"><code class="filename">libsframe</code></span>
- </p>
- </td>
- <td>
- <p>
- Библиотека для поддержки обратной онлайн-трассировки с
- использованием простого декодера разделов .sframe.
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="navfooter">
- <ul>
- <li class="prev">
- <a accesskey="p" href="pkgconf.html" title=
- "Pkgconf-2.1.1">Пред.</a>
- <p>
- Pkgconf-2.1.1
- </p>
- </li>
- <li class="next">
- <a accesskey="n" href="gmp.html" title="GMP-6.3.0">След.</a>
- <p>
- GMP-6.3.0
- </p>
- </li>
- <li class="up">
- <a accesskey="u" href="chapter08.html" title=
- "Глава 8. Установка базового системного программного обеспечения">Наверх</a>
- </li>
- <li class="home">
- <a accesskey="h" href="../index.html" title=
- "Линукс с нуля - Версия 12.1">Начало</a>
- </li>
- </ul>
- </div>
- </body>
-</html>