diff options
Diffstat (limited to 'lfs-12.1-sysv/chapter08/gcc.html')
-rw-r--r-- | lfs-12.1-sysv/chapter08/gcc.html | 908 |
1 files changed, 0 insertions, 908 deletions
diff --git a/lfs-12.1-sysv/chapter08/gcc.html b/lfs-12.1-sysv/chapter08/gcc.html deleted file mode 100644 index 3f0f703..0000000 --- a/lfs-12.1-sysv/chapter08/gcc.html +++ /dev/null @@ -1,908 +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.28. GCC-13.2.0 - </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="shadow.html" title="Shadow-4.14.5">Пред.</a> - <p> - Shadow-4.14.5 - </p> - </li> - <li class="next"> - <a accesskey="n" href="ncurses.html" title= - "Ncurses-6.4-20230520">След.</a> - <p> - Ncurses-6.4-20230520 - </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-gcc" name="ch-system-gcc"></a>8.28. GCC-13.2.0 - </h1> - <div class="wrap" lang="ru" xml:lang="ru"> - <div class="package" lang="ru" xml:lang="ru"> - <p> - Пакет GCC содержит коллекцию компиляторов GNU, которая включает - компиляторы C и C++. - </p> - <div class="segmentedlist"> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Приблизительное время сборки:</strong> - <span class="segbody">42 SBU (с тестами)</span> - </div> - <div class="seg"> - <strong class="segtitle">Требуемое дисковое - пространство:</strong> <span class="segbody">5.5 GB</span> - </div> - </div> - </div> - </div> - <div class="installation" lang="ru" xml:lang="ru"> - <h2 class="sect2"> - 8.28.1. Установка пакета GCC - </h2> - <p> - При сборке на x86_64 измените имя каталога по умолчанию для - 64-битных библиотек на <span class="quote">«<span class= - "quote">lib</span>»</span>: - </p> - <pre class="userinput"><kbd class="command">case $(uname -m) in - x86_64) - sed -e '/m64=/s/lib64/lib/' \ - -i.orig gcc/config/i386/t-linux64 - ;; -esac</kbd></pre> - <p> - Документация GCC рекомендует собирать GCC в отдельном каталоге: - </p> - <pre class="userinput"><kbd class="command">mkdir -v build -cd build</kbd></pre> - <p> - Подготовьте GCC к компиляции: - </p> - <pre class="userinput"><kbd class= - "command">../configure --prefix=/usr \ - LD=ld \ - --enable-languages=c,c++ \ - --enable-default-pie \ - --enable-default-ssp \ - --disable-multilib \ - --disable-bootstrap \ - --disable-fixincludes \ - --with-system-zlib</kbd></pre> - <p> - GCC поддерживает семь различных языков программирования, но - предварительные условия для большинства из них еще не выполнены. - См. страницу <a class="ulink" href= - "https://mirror.linuxfromscratch.ru/blfs/view/12.1/general/gcc.html"> - BLFS Book GCC</a> для получения инструкций о том, как собрать все - языки, поддерживаемые GCC - </p> - <div class="variablelist"> - <p class="title"> - <strong>Значение новых параметров настройки:</strong> - </p> - <dl class="variablelist"> - <dt> - <span class="term"><em class= - "parameter"><code>LD=ld</code></em></span> - </dt> - <dd> - <p> - Этот параметр указывает скрипту configure использовать ld, - установленный программой Binutils, собранной ранее в этой - главе, а не кросс версию, которая использовалась бы в - противном случае. - </p> - </dd> - <dt> - <span class="term"><em class= - "parameter"><code>--disable-fixincludes</code></em></span> - </dt> - <dd> - <p> - По умолчанию во время установки GCC некоторые системные - заголовки будут <span class="quote">«<span class= - "quote">исправлены</span>»</span> для использования с GCC. - Это не обязательно для современной системы Linux и - потенциально опасно, если пакет будет переустановлен после - установки GCC. Этот параметр не позволяет GCC <span class= - "quote">«<span class="quote">исправлять</span>»</span> - заголовки. - </p> - </dd> - <dt> - <span class="term"><em class= - "parameter"><code>--with-system-zlib</code></em></span> - </dt> - <dd> - <p> - Этот параметр указывает GCC ссылаться на установленную в - системе копию библиотеки Zlib, а не на собственную внутреннюю - копию. - </p> - </dd> - </dl> - </div> - <div class="admon note"> - <img alt="[Примечание]" src="../images/note.png" /> - <h3> - Примечание - </h3><a id="pie-ssp-info" name="pie-ssp-info"></a> - <p> - PIE (позиционно-независимые исполняемые файлы) — это двоичные - программы, которые можно загружать в любое место памяти. Без PIE - функция безопасности под названием ASLR (рандомизация размещения - адресного пространства) может применяться к общим библиотекам, но - не к самим исполняемым файлам. Включение PIE позволяет - использовать ASLR для исполняемых файлов в дополнение к общим - библиотекам и смягчает некоторые атаки, основанные на - фиксированных адресах конфиденциального кода или данных в - исполняемых файлах. - </p> - <p> - SSP (Stack Smashing Protection - защита от разрушения стека) — - это метод, гарантирующий, что стек параметров не будет поврежден. - Повреждение стека может, например, изменить адрес возврата - подпрограммы, тем самым передав управление какому-то опасному - коду (существующему в программе или общих библиотеках или - каким-то образом внедренному злоумышленником). - </p> - </div> - <p> - Скомпилируйте пакет: - </p> - <pre class="userinput"><kbd class="command">make</kbd></pre> - <div class="admon important"> - <img alt="[Важно]" src="../images/important.png" /> - <h3> - Важно - </h3> - <p> - В этом разделе набор тестов для GCC считается важным, но занимает - много времени. Начинающим сборщикам не рекомендуется пропускать - его. Время выполнения тестов можно значительно сократить, добавив - -jx в приведенную ниже команду <span class="command"><strong>make - -k check</strong></span>, где x - количество ядер процессора в - вашей системе. - </p> - </div> - <p> - Известно, что один набор тестов GCC переполняет стек по умолчанию, - поэтому увеличьте размер стека перед запуском тестов: - </p> - <pre class="userinput"><kbd class= - "command">ulimit -s 32768</kbd></pre> - <p> - Выполните тестирование под непривилегированным пользователем, но не - останавливайтесь на ошибках: - </p> - <pre class="userinput"><kbd class="command">chown -R tester . -su tester -c "PATH=$PATH make -k check"</kbd></pre> - <p> - Чтобы получить сводку результатов набора тестов, выполните: - </p> - <pre class="userinput"><kbd class= - "command">../contrib/test_summary</kbd></pre> - <p> - Чтобы отфильтровать только итоговую сводку, передайте вывод через - pipe <strong class="userinput"><code>grep -A7 Summ</code></strong>. - </p> - <p> - Результаты можно сравнить с результатами, размещенными на <a class= - "ulink" href= - "https://mirror.linuxfromscratch.ru/lfs/build-logs/12.1/">https://mirror.linuxfromscratch.ru/lfs/build-logs/12.1/</a> - и <a class="ulink" href= - "https://gcc.gnu.org/ml/gcc-testresults/">https://gcc.gnu.org/ml/gcc-testresults/</a>. - </p> - <p> - Известно, что восемь тестов gcc (из более чем 185 000): - <code class="filename">pr56837.c</code> и семь тестов из каталога - <code class="filename">analyzer</code> завершились неудачно. Также - провалился один тест libstdc++ (из более чем 15 000) — это - <code class="filename">copy.cc</code>. Известно, что для g++ 21 - тест (из примерно 250 000), 14 тестов <span class= - "quote">«<span class="quote">AddressSanitizer*</span>»</span> и 7 - тестов <code class="filename">interception-malloc-test-1.C</code> - завершились неудачно. Кроме того, несколько тестов из каталога - <code class="filename">vect</code> завершаются неудачно, если - оборудование не поддерживает AVX. - </p> - <p> - Не всегда удается избежать неожиданных сбоев. Разработчики GCC - обычно знают об этих проблемах, но еще не решили их. Если - результаты теста не сильно отличаются от результатов по указанному - выше URL-адресу, можно продолжать. - </p> - <p> - Установите пакет: - </p> - <pre class="userinput"><kbd class="command">make install</kbd></pre> - <p> - Каталог сборки GCC теперь принадлежит пользователю <code class= - "systemitem">tester</code>, и владелец каталога заголовочных файлов - (и его содержимого) указан неверно. Измените владельца на - пользователя и группу <code class="systemitem">root</code>: - </p> - <pre class="userinput"><kbd class="command">chown -v -R root:root \ - /usr/lib/gcc/$(gcc -dumpmachine)/13.2.0/include{,-fixed}</kbd></pre> - <p> - Создайте символическую ссылку, требуемую <a class="ulink" href= - "https://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch03s09.html">FHS</a> - по "историческим" причинам. - </p> - <pre class="userinput"><kbd class= - "command">ln -svr /usr/bin/cpp /usr/lib</kbd></pre> - <p> - Многие пакеты используют имя <span class= - "command"><strong>cc</strong></span> для вызова компилятора языка - Си. Мы уже создали <span class="command"><strong>cc</strong></span> - как символическую ссылку в <a class="xref" href= - "../chapter06/gcc-pass2.html" title= - "6.18. GCC-13.2.0 - Проход 2">GCC-Проход 2</a>, теперь создайте - символическую ссылку на его справочную страницу: - </p> - <pre class="userinput"><kbd class= - "command">ln -sv gcc.1 /usr/share/man/man1/cc.1</kbd></pre> - <p> - Добавьте символическую ссылку совместимости, чтобы включить сборку - программ с оптимизацией времени компоновки (LTO): - </p> - <pre class="userinput"><kbd class= - "command">ln -sfv ../../libexec/gcc/$(gcc -dumpmachine)/13.2.0/liblto_plugin.so \ - /usr/lib/bfd-plugins/</kbd></pre> - <p> - Теперь, когда наш окончательный набор инструментов готов, важно еще - раз убедиться, что компиляция и компоновка будут работать так, как - ожидалось. Мы сделаем это, выполнив проверку работоспособности: - </p> - <pre class="userinput"><kbd class= - "command">echo 'int main(){}' > dummy.c -cc dummy.c -v -Wl,--verbose &> dummy.log -readelf -l a.out | grep ': /lib'</kbd></pre> - <p> - Ошибок быть не должно, и вывод последней команды будет (с учетом - платформо-зависимых различий в имени динамического компоновщика): - </p> - <pre class="screen"><code class= - "computeroutput">[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]</code></pre> - <p> - Теперь убедитесь, что мы настроили использование правильных - стартовых файлов: - </p> - <pre class="userinput"><kbd class= - "command">grep -E -o '/usr/lib.*/S?crt[1in].*succeeded' dummy.log</kbd></pre> - <p> - Вывод последней команды должен быть: - </p> - <pre class="screen"><code class= - "computeroutput">/usr/lib/gcc/x86_64-pc-linux-gnu/13.2.0/../../../../lib/Scrt1.o succeeded -/usr/lib/gcc/x86_64-pc-linux-gnu/13.2.0/../../../../lib/crti.o succeeded -/usr/lib/gcc/x86_64-pc-linux-gnu/13.2.0/../../../../lib/crtn.o succeeded</code></pre> - <p> - В зависимости от архитектуры вашего компьютера вышеуказанные - параметры могут незначительно отличаться. Разница будет заключаться - в имени каталога после <code class="filename">/usr/lib/gcc</code>. - Здесь важно обратить внимание на то, что <span class= - "command"><strong>gcc</strong></span> нашел все три файла - <code class="filename">crt*.o</code> в каталоге <code class= - "filename">/usr/lib</code>. - </p> - <p> - Убедитесь, что компилятор ищет правильные заголовочные файлы: - </p> - <pre class="userinput"><kbd class= - "command">grep -B4 '^ /usr/include' dummy.log</kbd></pre> - <p> - Эта команда должна вернуть следующий вывод: - </p> - <pre class="screen"><code class= - "computeroutput">#include <...> search starts here: - /usr/lib/gcc/x86_64-pc-linux-gnu/13.2.0/include - /usr/local/include - /usr/lib/gcc/x86_64-pc-linux-gnu/13.2.0/include-fixed - /usr/include</code></pre> - <p> - Опять же, имя каталога может отличаться от указанного выше, в - зависимости от архитектуры вашей системы. - </p> - <p> - Затем убедитесь, что новый компоновщик использует правильные пути - поиска: - </p> - <pre class="userinput"><kbd class= - "command">grep 'SEARCH.*/usr/lib' dummy.log |sed 's|; |\n|g'</kbd></pre> - <p> - Ссылки на пути, содержащие компоненты с '-linux-gnu', следует - игнорировать, но в противном случае вывод последней команды должен - быть таким: - </p> - <pre class="screen"><code class= - "computeroutput">SEARCH_DIR("/usr/x86_64-pc-linux-gnu/lib64") -SEARCH_DIR("/usr/local/lib64") -SEARCH_DIR("/lib64") -SEARCH_DIR("/usr/lib64") -SEARCH_DIR("/usr/x86_64-pc-linux-gnu/lib") -SEARCH_DIR("/usr/local/lib") -SEARCH_DIR("/lib") -SEARCH_DIR("/usr/lib");</code></pre> - <p> - 32-разрядная система может использовать несколько других каталогов. - Например, вот вывод с компьютера i686: - </p> - <pre class="screen"><code class= - "computeroutput">SEARCH_DIR("/usr/i686-pc-linux-gnu/lib32") -SEARCH_DIR("/usr/local/lib32") -SEARCH_DIR("/lib32") -SEARCH_DIR("/usr/lib32") -SEARCH_DIR("/usr/i686-pc-linux-gnu/lib") -SEARCH_DIR("/usr/local/lib") -SEARCH_DIR("/lib") -SEARCH_DIR("/usr/lib");</code></pre> - <p> - Затем убедитесь, что мы используем правильную libc: - </p> - <pre class="userinput"><kbd class= - "command">grep "/lib.*/libc.so.6 " dummy.log</kbd></pre> - <p> - Вывод последней команды должен быть: - </p> - <pre class="screen"><code class= - "computeroutput">attempt to open /usr/lib/libc.so.6 succeeded</code></pre> - <p> - Убедитесь, что GCC использует правильный динамический компоновщик: - </p> - <pre class="userinput"><kbd class= - "command">grep found dummy.log</kbd></pre> - <p> - Вывод последней команды должен быть (с учетом различий в имени - динамического компоновщика, зависящих от платформы): - </p> - <pre class="screen"><code class= - "computeroutput">found ld-linux-x86-64.so.2 at /usr/lib/ld-linux-x86-64.so.2</code></pre> - <p> - Если вывод выглядит не так, как показано выше, или вообще не - получен, значит, где-то серьезная ошибка. Изучите и повторите шаги, - чтобы выяснить, в чем проблема, и исправьте ее. Любые проблемы - должны быть решены, прежде чем вы продолжите процесс. - </p> - <p> - Как только все заработает правильно, удалите тестовые файлы: - </p> - <pre class="userinput"><kbd class= - "command">rm -v dummy.c a.out dummy.log</kbd></pre> - <p> - Наконец, переместите файл: - </p> - <pre class="userinput"><kbd class= - "command">mkdir -pv /usr/share/gdb/auto-load/usr/lib -mv -v /usr/lib/*gdb.py /usr/share/gdb/auto-load/usr/lib</kbd></pre> - </div> - <div class="content" lang="ru" xml:lang="ru"> - <h2 class="sect2"> - <a id="contents-gcc" name="contents-gcc"></a>8.28.2. Содержимое - пакета GCC - </h2> - <div class="segmentedlist"> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Установленные программы:</strong> - <span class="segbody">c++, cc (link to gcc), cpp, g++, gcc, - gcc-ar, gcc-nm, gcc-ranlib, gcov, gcov-dump, gcov-tool, и - lto-dump</span> - </div> - <div class="seg"> - <strong class="segtitle">Установленные библиотеки:</strong> - <span class="segbody">libasan.{a,so}, libatomic.{a,so}, - libcc1.so, libgcc.a, libgcc_eh.a, libgcc_s.so, libgcov.a, - libgomp.{a,so}, libhwasan.{a,so}, libitm.{a,so}, - liblsan.{a,so}, liblto_plugin.so, libquadmath.{a,so}, - libssp.{a,so}, libssp_nonshared.a, libstdc++.{a,so}, - libstdc++exp.a, libstdc++fs.a, libsupc++.a, libtsan.{a,so} и - libubsan.{a,so}</span> - </div> - <div class="seg"> - <strong class="segtitle">Созданные каталоги:</strong> - <span class="segbody">/usr/include/c++, /usr/lib/gcc, - /usr/libexec/gcc и /usr/share/gcc-13.2.0</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="c" name="c"></a><span class="term"><span class= - "command"><strong>c++</strong></span></span> - </p> - </td> - <td> - <p> - Компилятор С++ - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="cc" name="cc"></a><span class="term"><span class= - "command"><strong>cc</strong></span></span> - </p> - </td> - <td> - <p> - Компилятор C - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="cpp" name="cpp"></a><span class= - "term"><span class="command"><strong>cpp</strong></span></span> - </p> - </td> - <td> - <p> - Препроцессор C; он используется компилятором для - расширения инструкций #include, #define и подобные - директивы в исходных файлах - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="g" name="g"></a><span class="term"><span class= - "command"><strong>g++</strong></span></span> - </p> - </td> - <td> - <p> - Компилятор C++ - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="gcc" name="gcc"></a><span class= - "term"><span class="command"><strong>gcc</strong></span></span> - </p> - </td> - <td> - <p> - Компилятор C - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="gcc-ar" name="gcc-ar"></a><span class= - "term"><span class= - "command"><strong>gcc-ar</strong></span></span> - </p> - </td> - <td> - <p> - Обертка над <span class= - "command"><strong>ar</strong></span>, добавляющая плагин - в командную строку. Эта программа используется только для - добавления "оптимизации времени компоновки" и бесполезна - с параметрами сборки по умолчанию. - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="gcc-nm" name="gcc-nm"></a><span class= - "term"><span class= - "command"><strong>gcc-nm</strong></span></span> - </p> - </td> - <td> - <p> - Обертка над <span class= - "command"><strong>nm</strong></span>, добавляющая плагин - в командную строку. Эта программа используется только для - добавления "оптимизации времени компоновки" и бесполезна - с параметрами сборки по умолчанию. - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="gcc-ranlib" name="gcc-ranlib"></a><span class= - "term"><span class= - "command"><strong>gcc-ranlib</strong></span></span> - </p> - </td> - <td> - <p> - Обертка над <span class= - "command"><strong>ranlib</strong></span>, добавляющая - плагин в командную строку. Эта программа используется - только для добавления "оптимизации времени компоновки" и - бесполезна с параметрами сборки по умолчанию. - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="gcov" name="gcov"></a><span class= - "term"><span class= - "command"><strong>gcov</strong></span></span> - </p> - </td> - <td> - <p> - Инструмент тестирования; он используется для анализа - программ, чтобы определить, где оптимизация будет иметь - наибольший эффект. - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="gcov-dump" name="gcov-dump"></a><span class= - "term"><span class= - "command"><strong>gcov-dump</strong></span></span> - </p> - </td> - <td> - <p> - Автономный инструмент для дампа профилей gcda and gcno - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="gcov-tool" name="gcov-tool"></a><span class= - "term"><span class= - "command"><strong>gcov-tool</strong></span></span> - </p> - </td> - <td> - <p> - Автономный инструмент обработки профиля gcda - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="lto-dump" name="lto-dump"></a><span class= - "term"><span class= - "command"><strong>lto-dump</strong></span></span> - </p> - </td> - <td> - <p> - Инструмент для создания дампа объектных файлов, созданных - GCC с включенным LTO. - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="libasan" name="libasan"></a><span class= - "term"><code class="filename">libasan</code></span> - </p> - </td> - <td> - <p> - Библиотека времени выполнения Address Sanitizer - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="libatomic" name="libatomic"></a><span class= - "term"><code class="filename">libatomic</code></span> - </p> - </td> - <td> - <p> - Встроенная библиотека времени выполнения GCC atomic - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="libcc1" name="libcc1"></a><span class= - "term"><code class="filename">libcc1</code></span> - </p> - </td> - <td> - <p> - Библиотека, которая позволяет GDB использовать GCC - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="libgcc" name="libgcc"></a><span class= - "term"><code class="filename">libgcc</code></span> - </p> - </td> - <td> - <p> - Содержит средства поддержки времени исполнения для - <span class="command"><strong>gcc</strong></span> - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="libgcov" name="libgcov"></a><span class= - "term"><code class="filename">libgcov</code></span> - </p> - </td> - <td> - <p> - Эта библиотека компонуется с программой, когда в GCC - включено профилирование - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="libgomp" name="libgomp"></a><span class= - "term"><code class="filename">libgomp</code></span> - </p> - </td> - <td> - <p> - GNU реализация интерфейса OpenMP API мультиплатформенного - параллельного программирования для языков C/C++ и Fortran - с общим доступом к памяти - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="libhwasan" name="libhwasan"></a><span class= - "term"><code class="filename">libhwasan</code></span> - </p> - </td> - <td> - <p> - Библиотека времени выполнения Hardware-Assisted Address - Sanitizer (аппаратной очистки адресов) - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="libitm" name="libitm"></a><span class= - "term"><code class="filename">libitm</code></span> - </p> - </td> - <td> - <p> - Библиотека транзакционной памяти GNU - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="liblsan" name="liblsan"></a><span class= - "term"><code class="filename">liblsan</code></span> - </p> - </td> - <td> - <p> - Библиотека времени выполнения Leak Sanitizer (средств - защиты от утечек) - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="liblto_plugin" name= - "liblto_plugin"></a><span class="term"><code class= - "filename">liblto_plugin</code></span> - </p> - </td> - <td> - <p> - Плагин GCC LTO позволяет Binutils обрабатывать объектные - файлы, созданные GCC с включенным LTO. - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="libquadmath" name="libquadmath"></a><span class= - "term"><code class="filename">libquadmath</code></span> - </p> - </td> - <td> - <p> - API математической библиотеки GCC Quad Precision - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="libssp" name="libssp"></a><span class= - "term"><code class="filename">libssp</code></span> - </p> - </td> - <td> - <p> - Содержит подпрограммы, поддерживающие функциональность - защиты стека GCC. Обычно они не используются, потому что - Glibc также предоставляет эти подпрограммы. - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="libstdc" name="libstdc"></a><span class= - "term"><code class="filename">libstdc++</code></span> - </p> - </td> - <td> - <p> - Стандартная библиотека C++ - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="libstdcexp" name="libstdcexp"></a><span class= - "term"><code class="filename">libstdc++exp</code></span> - </p> - </td> - <td> - <p> - Экспериментальная библиотека контрактов C++ - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="libstdcfs" name="libstdcfs"></a><span class= - "term"><code class="filename">libstdc++fs</code></span> - </p> - </td> - <td> - <p> - Библиотека файловой системы ISO/IEC TS 18822:2015 - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="libsupc" name="libsupc"></a><span class= - "term"><code class="filename">libsupc++</code></span> - </p> - </td> - <td> - <p> - Предоставляет вспомогательные процедуры для языка - программирования C++ - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="libtsan" name="libtsan"></a><span class= - "term"><code class="filename">libtsan</code></span> - </p> - </td> - <td> - <p> - Библиотека времени выполнения Thread Sanitizer (средств - очистки потоков) - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="libubsan" name="libubsan"></a><span class= - "term"><code class="filename">libubsan</code></span> - </p> - </td> - <td> - <p> - Библиотека времени выполнения Undefined Behavior - Sanitizer (средств очистки неопределенного поведения) - </p> - </td> - </tr> - </tbody> - </table> - </div> - </div> - </div> - <div class="navfooter"> - <ul> - <li class="prev"> - <a accesskey="p" href="shadow.html" title="Shadow-4.14.5">Пред.</a> - <p> - Shadow-4.14.5 - </p> - </li> - <li class="next"> - <a accesskey="n" href="ncurses.html" title= - "Ncurses-6.4-20230520">След.</a> - <p> - Ncurses-6.4-20230520 - </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> |