diff options
author | Sn4il <sn4il@thedroth.rocks> | 2024-09-02 15:54:35 +0300 |
---|---|---|
committer | Sn4il <sn4il@thedroth.rocks> | 2024-09-02 15:54:35 +0300 |
commit | 2203e654b389586650d553251b04544a34f189bf (patch) | |
tree | 0125b69fc70a2506c53158ba2020993a5b8985b7 /lfs-12.1-sysv/chapter05 | |
parent | 200d528e55ca954d37769f4d143f10c9519b00e7 (diff) | |
download | sn4il-site-2203e654b389586650d553251b04544a34f189bf.tar.gz sn4il-site-2203e654b389586650d553251b04544a34f189bf.zip |
LFS 12.2
Diffstat (limited to 'lfs-12.1-sysv/chapter05')
-rw-r--r-- | lfs-12.1-sysv/chapter05/binutils-pass1.html | 265 | ||||
-rw-r--r-- | lfs-12.1-sysv/chapter05/chapter05.html | 110 | ||||
-rw-r--r-- | lfs-12.1-sysv/chapter05/gcc-libstdc++.html | 214 | ||||
-rw-r--r-- | lfs-12.1-sysv/chapter05/gcc-pass1.html | 332 | ||||
-rw-r--r-- | lfs-12.1-sysv/chapter05/glibc.html | 374 | ||||
-rw-r--r-- | lfs-12.1-sysv/chapter05/introduction.html | 94 | ||||
-rw-r--r-- | lfs-12.1-sysv/chapter05/linux-headers.html | 315 |
7 files changed, 0 insertions, 1704 deletions
diff --git a/lfs-12.1-sysv/chapter05/binutils-pass1.html b/lfs-12.1-sysv/chapter05/binutils-pass1.html deleted file mode 100644 index 95194a3..0000000 --- a/lfs-12.1-sysv/chapter05/binutils-pass1.html +++ /dev/null @@ -1,265 +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> - 5.2. Binutils-2.42 - Проход 1 - </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> - Глава 5. Сборка кросс-тулчейна - </h3> - <ul> - <li class="prev"> - <a accesskey="p" href="introduction.html" title= - "Введение">Пред.</a> - <p> - Введение - </p> - </li> - <li class="next"> - <a accesskey="n" href="gcc-pass1.html" title= - "GCC-13.2.0 - Проход 1">След.</a> - <p> - GCC-13.2.0 - Проход 1 - </p> - </li> - <li class="up"> - <a accesskey="u" href="chapter05.html" title= - "Глава 5. Сборка кросс-тулчейна">Наверх</a> - </li> - <li class="home"> - <a accesskey="h" href="../index.html" title= - "Линукс с нуля - Версия 12.1">Начало</a> - </li> - </ul> - </div> - <h1 class="sect1"> - <a id="ch-tools-binutils-pass1" name="ch-tools-binutils-pass1"></a>5.2. - Binutils-2.42 - Проход 1 - </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">1 SBU</span> - </div> - <div class="seg"> - <strong class="segtitle">Требуемое дисковое - пространство:</strong> <span class="segbody">663 MB</span> - </div> - </div> - </div> - </div> - <div class="installation" lang="ru" xml:lang="ru"> - <h2 class="sect2"> - 5.2.1. Установка кросс-пакета Binutils - </h2> - <div class="admon note"> - <img alt="[Примечание]" src="../images/note.png" /> - <h3> - Примечание - </h3> - <p> - Вернитесь назад и перечитайте примечания в разделе <a class= - "xref" href="../partintro/generalinstructions.html" title= - "Общие инструкции по компиляции">Общие инструкции по - компиляции</a>. Понимание информации, помеченной как важная, - может впоследствии избавить вас от многих проблем. - </p> - </div> - <p> - Очень важно, чтобы Binutils был скомпилированным первым, потому что - и Glibc, и GCC выполняют различные тесты на доступных компоновщике - и ассемблере, чтобы определить, какие из их функций следует - включить. - </p> - <p> - В документации пакета Binutils рекомендуется выполнять сборку в - отдельном каталоге, создадим его: - </p> - <pre class="userinput"><kbd class="command">mkdir -v build -cd build</kbd></pre> - <div class="admon note"> - <img alt="[Примечание]" src="../images/note.png" /> - <h3> - Примечание - </h3> - <p> - Для того, чтобы значения SBU, перечисленные в остальной части - книги, были вам полезны, измерьте время, необходимое для сборки - этого пакета, начиная с настройки и заканчивая установкой. Чтобы - добиться этого, оберните команды сборки командой <span class= - "command"><strong>time</strong></span>: <strong class= - "userinput"><code>time { ../configure ... && make - && make install; }</code></strong>. - </p> - </div> - <p> - Теперь подготовьте Binutils к компиляции: - </p> - <pre class="userinput"><kbd class= - "command">../configure --prefix=$LFS/tools \ - --with-sysroot=$LFS \ - --target=$LFS_TGT \ - --disable-nls \ - --enable-gprofng=no \ - --disable-werror \ - --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>--prefix=$LFS/tools</code></em></span> - </dt> - <dd> - <p> - Указывает сценарию configure подготовить к установке пакет - Binutils в каталог <code class="filename">$LFS/tools</code>. - </p> - </dd> - <dt> - <span class="term"><em class= - "parameter"><code>--with-sysroot=$LFS</code></em></span> - </dt> - <dd> - <p> - Для кросс-компляции указывает системе сборки искать в $LFS - библиотеки целевой системы, если необходимо. - </p> - </dd> - <dt> - <span class="term"><code class= - "envar">--target=$LFS_TGT</code></span> - </dt> - <dd> - <p> - Поскольку название машины в значении переменной <code class= - "envar">LFS_TGT</code> может отличаться от значения, которое - возвращает сценарий <span class= - "command"><strong>config.guess</strong></span>, этот аргумент - укажет сценарию <span class= - "command"><strong>configure</strong></span> как настроить - систему сборки пакета Binutils для создания - кросс-компоновщика. - </p> - </dd> - <dt> - <span class="term"><em class= - "parameter"><code>--disable-nls</code></em></span> - </dt> - <dd> - <p> - Этот параметр отключает интернационализацию, так как i18n не - требуется для временных инструментов. - </p> - </dd> - <dt> - <span class="term"><em class= - "parameter"><code>--enable-gprofng=no</code></em></span> - </dt> - <dd> - <p> - Этот параметр отключает сборку gprofng, который не нужен для - временного инструментария. - </p> - </dd> - <dt> - <span class="term"><em class= - "parameter"><code>--disable-werror</code></em></span> - </dt> - <dd> - <p> - Этот параметр предотвращает остановку сборки в случае - появления предупреждений от компилятора хоста. - </p> - </dd> - <dt> - <span class="term"><em class= - "parameter"><code>--enable-default-hash-style=gnu</code></em></span> - </dt> - <dd> - <p> - По умолчанию компоновщик генерирует как хеш-таблицу в стиле - GNU, так и классическую хеш-таблицу ELF для общих библиотек и - динамически связанных исполняемых файлов. Хеш-таблицы - необходимы только для динамического компоновщика, - выполняющего поиск символов. В LFS динамический компоновщик - (предоставляемый пакетом Glibc) всегда будет использовать - хеш-таблицу в стиле GNU, к которой запросы выполняются - быстрее. Так что классическая хеш-таблица ELF совершенно - бесполезна. Этот параметр указывает компоновщику по умолчанию - генерировать только хеш-таблицу в стиле GNU, поэтому мы можем - избежать траты времени на создание классической хеш-таблицы - ELF при сборке пакетов или не тратить дисковое пространство - для ее хранения. - </p> - </dd> - </dl> - </div> - <p> - Скомпилируйте пакет: - </p> - <pre class="userinput"><kbd class="command">make</kbd></pre> - <p> - Установите пакет: - </p> - <pre class="userinput"><kbd class="command">make install</kbd></pre> - </div> - <div class="content" lang="ru" xml:lang="ru"> - <p> - Подробная информация об этом пакете находится в <a class="xref" - href="../chapter08/binutils.html#contents-binutils" title= - "8.19.2. Содержимое пакета Binutils">Раздел 8.19.2, - «Содержимое пакета Binutils.»</a> - </p> - </div> - </div> - <div class="navfooter"> - <ul> - <li class="prev"> - <a accesskey="p" href="introduction.html" title= - "Введение">Пред.</a> - <p> - Введение - </p> - </li> - <li class="next"> - <a accesskey="n" href="gcc-pass1.html" title= - "GCC-13.2.0 - Проход 1">След.</a> - <p> - GCC-13.2.0 - Проход 1 - </p> - </li> - <li class="up"> - <a accesskey="u" href="chapter05.html" title= - "Глава 5. Сборка кросс-тулчейна">Наверх</a> - </li> - <li class="home"> - <a accesskey="h" href="../index.html" title= - "Линукс с нуля - Версия 12.1">Начало</a> - </li> - </ul> - </div> - </body> -</html> diff --git a/lfs-12.1-sysv/chapter05/chapter05.html b/lfs-12.1-sysv/chapter05/chapter05.html deleted file mode 100644 index 9c06653..0000000 --- a/lfs-12.1-sysv/chapter05/chapter05.html +++ /dev/null @@ -1,110 +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> - Глава 5. Сборка кросс-тулчейна - </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> - Часть III. Сборка кросс-компилятора и набора временных - инструментов - </h3> - <ul> - <li class="prev"> - <a accesskey="p" href="../partintro/generalinstructions.html" - title="Общие инструкции по компиляции">Пред.</a> - <p> - Общие инструкции по компиляции - </p> - </li> - <li class="next"> - <a accesskey="n" href="introduction.html" title= - "Введение">След.</a> - <p> - Введение - </p> - </li> - <li class="up"> - <a accesskey="u" href="../part3.html" title= - "Часть III. Сборка кросс-компилятора и набора временных инструментов"> - Наверх</a> - </li> - <li class="home"> - <a accesskey="h" href="../index.html" title= - "Линукс с нуля - Версия 12.1">Начало</a> - </li> - </ul> - </div> - <h1 class="chapter"> - <a id="chapter-cross-tools" name="chapter-cross-tools"></a>5. Сборка - кросс-тулчейна - </h1> - <div class="chapter" lang="ru" xml:lang="ru"> - <div class="toc"> - <h3> - Содержание - </h3> - <ul> - <li class="sect1"> - <a href="introduction.html">Введение</a> - </li> - <li class="sect1"> - <a href="binutils-pass1.html">Binutils-2.42 - Проход 1</a> - </li> - <li class="sect1"> - <a href="gcc-pass1.html">GCC-13.2.0 - Проход 1</a> - </li> - <li class="sect1"> - <a href="linux-headers.html">Заголовочные файлы Linux-6.7.4 - API</a> - </li> - <li class="sect1"> - <a href="glibc.html">Glibc-2.39</a> - </li> - <li class="sect1"> - <a href="gcc-libstdc++.html">Libstdc++ из GCC-13.2.0</a> - </li> - </ul> - </div> - </div> - <div class="navfooter"> - <ul> - <li class="prev"> - <a accesskey="p" href="../partintro/generalinstructions.html" - title="Общие инструкции по компиляции">Пред.</a> - <p> - Общие инструкции по компиляции - </p> - </li> - <li class="next"> - <a accesskey="n" href="introduction.html" title= - "Введение">След.</a> - <p> - Введение - </p> - </li> - <li class="up"> - <a accesskey="u" href="../part3.html" title= - "Часть III. Сборка кросс-компилятора и набора временных инструментов"> - Наверх</a> - </li> - <li class="home"> - <a accesskey="h" href="../index.html" title= - "Линукс с нуля - Версия 12.1">Начало</a> - </li> - </ul> - </div> - </body> -</html> diff --git a/lfs-12.1-sysv/chapter05/gcc-libstdc++.html b/lfs-12.1-sysv/chapter05/gcc-libstdc++.html deleted file mode 100644 index a9eb128..0000000 --- a/lfs-12.1-sysv/chapter05/gcc-libstdc++.html +++ /dev/null @@ -1,214 +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> - 5.6. Libstdc++ из 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> - Глава 5. Сборка кросс-тулчейна - </h3> - <ul> - <li class="prev"> - <a accesskey="p" href="glibc.html" title="Glibc-2.39">Пред.</a> - <p> - Glibc-2.39 - </p> - </li> - <li class="next"> - <a accesskey="n" href="../chapter06/chapter06.html" title= - "Кросс-Компиляция временных инструментов">След.</a> - <p> - Кросс-Компиляция временных инструментов - </p> - </li> - <li class="up"> - <a accesskey="u" href="chapter05.html" title= - "Глава 5. Сборка кросс-тулчейна">Наверх</a> - </li> - <li class="home"> - <a accesskey="h" href="../index.html" title= - "Линукс с нуля - Версия 12.1">Начало</a> - </li> - </ul> - </div> - <h1 class="sect1"> - <a id="ch-tools-libstdcpp" name="ch-tools-libstdcpp"></a>5.6. Libstdc++ - из GCC-13.2.0 - </h1> - <div class="wrap" lang="ru" xml:lang="ru"> - <div class="package" lang="ru" xml:lang="ru"> - <p> - Libstdc++ — это стандартная библиотека C++. Она нужна для - компиляции кода C++ (часть GCC написана на C++), когда мы собирали - <a class="xref" href="gcc-pass1.html" title= - "5.3. GCC-13.2.0 - Проход 1">GCC-Проход 1</a>, нам пришлось - отложить её установку, потому что она зависит от библиотеки Glibc, - которой еще не было в целевом каталоге. - </p> - <div class="segmentedlist"> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Приблизительное время сборки:</strong> - <span class="segbody">0.2 SBU</span> - </div> - <div class="seg"> - <strong class="segtitle">Требуемое дисковое - пространство:</strong> <span class="segbody">1.1 GB</span> - </div> - </div> - </div> - </div> - <div class="installation" lang="ru" xml:lang="ru"> - <h2 class="sect2"> - 5.6.1. Установка библиотеки Libstdc++ - </h2> - <div class="admon note"> - <img alt="[Примечание]" src="../images/note.png" /> - <h3> - Примечание - </h3> - <p> - <span class="application">Libstdc++</span> является частью - исходников GCC. Сначала вы должны распаковать архив GCC и перейти - в каталог <code class="filename">gcc-13.2.0</code>. - </p> - </div> - <p> - Создайте отдельный каталог сборки для libstdc++ и перейдите в него: - </p> - <pre class="userinput"><kbd class="command">mkdir -v build -cd build</kbd></pre> - <p> - Подготовьте libstdc++ к компиляции: - </p> - <pre class="userinput"><kbd class= - "command">../libstdc++-v3/configure \ - --host=$LFS_TGT \ - --build=$(../config.guess) \ - --prefix=/usr \ - --disable-multilib \ - --disable-nls \ - --disable-libstdcxx-pch \ - --with-gxx-include-dir=/tools/$LFS_TGT/include/c++/13.2.0</kbd></pre> - <div class="variablelist"> - <p class="title"> - <strong>Значение параметров настройки:</strong> - </p> - <dl class="variablelist"> - <dt> - <span class="term"><em class= - "parameter"><code>--host=...</code></em></span> - </dt> - <dd> - <p> - Указывает, что должен использоваться кросс-компилятор, - который мы только что собрали, вместо того, который находится - в <code class="filename">/usr/bin</code>. - </p> - </dd> - <dt> - <span class="term"><em class= - "parameter"><code>--disable-libstdcxx-pch</code></em></span> - </dt> - <dd> - <p> - Этот аргумент предотвращает установку предварительно - скомпилированных include-файлов, которые на данном этапе не - нужны. - </p> - </dd> - <dt> - <span class="term"><em class= - "parameter"><code>--with-gxx-include-dir=/tools/$LFS_TGT/include/c++/13.2.0</code></em></span> - </dt> - <dd> - <p> - Указывает каталог установки для include-файлов. Поскольку - libstdc++ является стандартной библиотекой C++ для LFS, этот - каталог должен соответствовать местоположению, в котором - компилятор C++ (<span class= - "command"><strong>$LFS_TGT-g++</strong></span>) будет искать - стандартные включаемые файлы C++. При обычной сборке эта - информация автоматически передается в Libstdc++ при - выполнении <span class= - "command"><strong>configure</strong></span> из каталога - верхнего уровня. В нашем случае эта информация должна быть - указана явно. Компилятор C++ добавит путь sysroot - <code class="filename">$LFS</code> (указанный при сборке GCC - Проход 1) к пути поиска include-файлов, поэтому фактически он - будет искать в <code class= - "filename">$LFS/tools/$LFS_TGT/include/c++/13.2.0</code>. - Комбинация переменной <em class= - "parameter"><code>DESTDIR</code></em> (в приведенной ниже - команде <span class="command"><strong>make - install</strong></span>) и этого аргумента обеспечивает - установку заголовочных файлов туда. - </p> - </dd> - </dl> - </div> - <p> - Скомпилируйте Libstdc++, выполнив: - </p> - <pre class="userinput"><kbd class="command">make</kbd></pre> - <p> - Установите библиотеку: - </p> - <pre class="userinput"><kbd class= - "command">make DESTDIR=$LFS install</kbd></pre> - <p> - Удалите архивные файлы libtool, поскольку они потенциально опасны - при кросс-компиляции: - </p> - <pre class="userinput"><kbd class= - "command">rm -v $LFS/usr/lib/lib{stdc++{,exp,fs},supc++}.la</kbd></pre> - </div> - <div class="content" lang="ru" xml:lang="ru"> - <p> - Подробная информация об этом пакете приведена в <a class="xref" - href="../chapter08/gcc.html#contents-gcc" title= - "8.28.2. Содержимое пакета GCC">Раздел 8.28.2, «Содержимое - пакета GCC.»</a> - </p> - </div> - </div> - <div class="navfooter"> - <ul> - <li class="prev"> - <a accesskey="p" href="glibc.html" title="Glibc-2.39">Пред.</a> - <p> - Glibc-2.39 - </p> - </li> - <li class="next"> - <a accesskey="n" href="../chapter06/chapter06.html" title= - "Кросс-Компиляция временных инструментов">След.</a> - <p> - Кросс-Компиляция временных инструментов - </p> - </li> - <li class="up"> - <a accesskey="u" href="chapter05.html" title= - "Глава 5. Сборка кросс-тулчейна">Наверх</a> - </li> - <li class="home"> - <a accesskey="h" href="../index.html" title= - "Линукс с нуля - Версия 12.1">Начало</a> - </li> - </ul> - </div> - </body> -</html> diff --git a/lfs-12.1-sysv/chapter05/gcc-pass1.html b/lfs-12.1-sysv/chapter05/gcc-pass1.html deleted file mode 100644 index ffe0d93..0000000 --- a/lfs-12.1-sysv/chapter05/gcc-pass1.html +++ /dev/null @@ -1,332 +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> - 5.3. GCC-13.2.0 - Проход 1 - </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> - Глава 5. Сборка кросс-тулчейна - </h3> - <ul> - <li class="prev"> - <a accesskey="p" href="binutils-pass1.html" title= - "Binutils-2.42 - Проход 1">Пред.</a> - <p> - Binutils-2.42 - Проход 1 - </p> - </li> - <li class="next"> - <a accesskey="n" href="linux-headers.html" title= - "Заголовочные файлы Linux-6.7.4 API">След.</a> - <p> - Заголовочные файлы Linux-6.7.4 API - </p> - </li> - <li class="up"> - <a accesskey="u" href="chapter05.html" title= - "Глава 5. Сборка кросс-тулчейна">Наверх</a> - </li> - <li class="home"> - <a accesskey="h" href="../index.html" title= - "Линукс с нуля - Версия 12.1">Начало</a> - </li> - </ul> - </div> - <h1 class="sect1"> - <a id="ch-tools-gcc-pass1" name="ch-tools-gcc-pass1"></a>5.3. - GCC-13.2.0 - Проход 1 - </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">3.8 SBU</span> - </div> - <div class="seg"> - <strong class="segtitle">Требуемое дисковое - пространство:</strong> <span class="segbody">4.1 GB</span> - </div> - </div> - </div> - </div> - <div class="installation" lang="ru" xml:lang="ru"> - <h2 class="sect2"> - 5.3.1. Установка кросс-пакета GCC - </h2> - <p> - Для GCC требуются пакеты GMP, MPFR и MPC. Поскольку эти пакеты - могут отсутствовать в дистрибутиве вашего хоста, они будут собраны - с помощью GCC. Распакуйте каждый пакет в исходный каталог GCC и - переименуйте получившиеся каталоги, чтобы процедуры сборки GCC - использовали их автоматически: - </p> - <div class="admon note"> - <img alt="[Примечание]" src="../images/note.png" /> - <h3> - Примечание - </h3> - <p> - В этой главе часто возникают недоразумения, хотя применяются те - же процедуры, что и в любой другой главе, следуйте инструкции - которую получили ранее (<a class="xref" href= - "../partintro/generalinstructions.html#buildinstr">Инструкции по - сборке пакетов</a>). Сначала распакуйте пакет gcc-13.2.0 из - архива, а затем перейдите в созданный каталог. Только после этого - следует приступить к приведенным ниже инструкциям. - </p> - </div> - <pre class="userinput"><kbd class= - "command">tar -xf ../mpfr-4.2.1.tar.xz -mv -v mpfr-4.2.1 mpfr -tar -xf ../gmp-6.3.0.tar.xz -mv -v gmp-6.3.0 gmp -tar -xf ../mpc-1.3.1.tar.gz -mv -v mpc-1.3.1 mpc</kbd></pre> - <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 \ - --target=$LFS_TGT \ - --prefix=$LFS/tools \ - --with-glibc-version=2.39 \ - --with-sysroot=$LFS \ - --with-newlib \ - --without-headers \ - --enable-default-pie \ - --enable-default-ssp \ - --disable-nls \ - --disable-shared \ - --disable-multilib \ - --disable-threads \ - --disable-libatomic \ - --disable-libgomp \ - --disable-libquadmath \ - --disable-libssp \ - --disable-libvtv \ - --disable-libstdcxx \ - --enable-languages=c,c++</kbd></pre> - <div class="variablelist"> - <p class="title"> - <strong>Значение параметров настройки:</strong> - </p> - <dl class="variablelist"> - <dt> - <span class="term"><em class= - "parameter"><code>--with-glibc-version=2.39</code></em></span> - </dt> - <dd> - <p> - Этот параметр указывает версию Glibc, которая будет - использоваться на целевой системе. Он не имеет отношения к - libc хост-дистрибутива, потому что все, скомпилированное в - этом разделе, будет выполняться в среде chroot, которая - изолирована от libc хост-дистрибутива. - </p> - </dd> - <dt> - <span class="term"><em class= - "parameter"><code>--with-newlib</code></em></span> - </dt> - <dd> - <p> - Поскольку работающая библиотека C еще недоступна, это - гарантирует, что константа inhibit_libc будет определена при - сборке libgcc. Это предотвращает компиляцию любого кода, - требующего поддержки libc. - </p> - </dd> - <dt> - <span class="term"><em class= - "parameter"><code>--without-headers</code></em></span> - </dt> - <dd> - <p> - При создании полного кросс-компилятора GCC требует наличия - стандартных заголовков, совместимых с целевой системой. Для - наших целей эти заголовки не понадобятся. Этот параметр - предотвращает их поиск GCC. - </p> - </dd> - <dt> - <span class="term"><em class= - "parameter"><code>--enable-default-pie и - --enable-default-ssp</code></em></span> - </dt> - <dd> - <p> - Эти параметры позволяют GCC по умолчанию компилировать - программы с некоторые функциями усиливающими безопасность - (более подробная информация о них приведена в <a class="xref" - href="../chapter08/gcc.html#pie-ssp-info">примечание о PIE и - SSP</a> в Главе 8). На данном этапе это не является строго - обязательным, поскольку компилятор будет создавать только - временные исполняемые файлы. Но лучше, чтобы временные пакеты - были максимально приближены к тем, что будут в готовой - системе LFS. - </p> - </dd> - <dt> - <span class="term"><em class= - "parameter"><code>--disable-shared</code></em></span> - </dt> - <dd> - <p> - Этот параметр заставляет GCC статически связывать свои - внутренние библиотеки. Он необходим потому что общие - библиотеки требуют Glibc, который еще не установлен в целевой - системе. - </p> - </dd> - <dt> - <span class="term"><em class= - "parameter"><code>--disable-multilib</code></em></span> - </dt> - <dd> - <p> - На x86_64, LFS не поддерживает конфигурацию multilib. Этот - аргумент никак не влияет на работу с архитектурой x86. - </p> - </dd> - <dt> - <span class="term"><em class= - "parameter"><code>--disable-threads, --disable-libatomic, - --disable-libgomp, --disable-libquadmath, --disable-libssp, - --disable-libvtv, --disable-libstdcxx</code></em></span> - </dt> - <dd> - <p> - Эти аргументы отключают поддержку расширений для работы с - многопоточностью, libatomic, libgomp, libquadmath, libssp, - libvtv и стандартной библиотеки C++ соответственно. Эти - функции могут не скомпилироваться при сборке - кросс-компилятора и не нужны для задач кросс-компиляции - временной libc - </p> - </dd> - <dt> - <span class="term"><em class= - "parameter"><code>--enable-languages=c,c++</code></em></span> - </dt> - <dd> - <p> - Этот параметр обеспечивает сборку только компиляторов C и - C++. Это единственные языки, которые нужны сейчас. - </p> - </dd> - </dl> - </div> - <p> - Скомпилируйте GCC, выполнив: - </p> - <pre class="userinput"><kbd class="command">make</kbd></pre> - <p> - Установите пакет: - </p> - <pre class="userinput"><kbd class="command">make install</kbd></pre> - <p> - Во время сборки GCC установил пару внутренних системных - заголовочных файлов. Обычно один из файлов <code class= - "filename">limits.h</code>, включает соответствующие системные - ограничения <code class="filename">limits.h</code>, в данном случае - <code class="filename">$LFS/usr/include/limits.h</code>. Однако во - время сборки GCC <code class= - "filename">$LFS/usr/include/limits.h</code> не существует, поэтому - только что установленный внутренний заголовочный файл является - частичным, автономным файлом и не включает расширенные функции - системного файла. Этого достаточно для сборки Glibc, но полный - внутренний заголовочный файл понадобится позже. Создайте полную - версию внутреннего заголовочного файла с помощью команды, - идентичной той, что система сборки GCC использует обычно: - </p> - <div class="admon note"> - <img alt="[Примечание]" src="../images/note.png" /> - <h3> - Примечание - </h3> - <p> - В приведенной ниже команде показан пример подстановки вложенных - команд, используя два метода: обратные кавычки и конструкцию - <code class="literal">$()</code>. Его можно было бы переписать, - используя один и тот же метод для обеих замен, но сделано так, - чтобы продемонстрировать, как их можно использовать одновременно. - В целом метод <code class="literal">$()</code> предпочтительнее. - </p> - </div> - <pre class="userinput"><kbd class="command">cd .. -cat gcc/limitx.h gcc/glimits.h gcc/limity.h > \ - `dirname $($LFS_TGT-gcc -print-libgcc-file-name)`/include/limits.h</kbd></pre> - </div> - <div class="content" lang="ru" xml:lang="ru"> - <p> - Подробная информация об этом пакете находится в <a class="xref" - href="../chapter08/gcc.html#contents-gcc" title= - "8.28.2. Содержимое пакета GCC">Раздел 8.28.2, «Содержимое - пакета GCC.»</a> - </p> - </div> - </div> - <div class="navfooter"> - <ul> - <li class="prev"> - <a accesskey="p" href="binutils-pass1.html" title= - "Binutils-2.42 - Проход 1">Пред.</a> - <p> - Binutils-2.42 - Проход 1 - </p> - </li> - <li class="next"> - <a accesskey="n" href="linux-headers.html" title= - "Заголовочные файлы Linux-6.7.4 API">След.</a> - <p> - Заголовочные файлы Linux-6.7.4 API - </p> - </li> - <li class="up"> - <a accesskey="u" href="chapter05.html" title= - "Глава 5. Сборка кросс-тулчейна">Наверх</a> - </li> - <li class="home"> - <a accesskey="h" href="../index.html" title= - "Линукс с нуля - Версия 12.1">Начало</a> - </li> - </ul> - </div> - </body> -</html> diff --git a/lfs-12.1-sysv/chapter05/glibc.html b/lfs-12.1-sysv/chapter05/glibc.html deleted file mode 100644 index 4c5d12f..0000000 --- a/lfs-12.1-sysv/chapter05/glibc.html +++ /dev/null @@ -1,374 +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> - 5.5. Glibc-2.39 - </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> - Глава 5. Сборка кросс-тулчейна - </h3> - <ul> - <li class="prev"> - <a accesskey="p" href="linux-headers.html" title= - "Заголовочные файлы Linux-6.7.4 API">Пред.</a> - <p> - Заголовочные файлы Linux-6.7.4 API - </p> - </li> - <li class="next"> - <a accesskey="n" href="gcc-libstdc++.html" title= - "Libstdc++ из GCC-13.2.0">След.</a> - <p> - Libstdc++ из GCC-13.2.0 - </p> - </li> - <li class="up"> - <a accesskey="u" href="chapter05.html" title= - "Глава 5. Сборка кросс-тулчейна">Наверх</a> - </li> - <li class="home"> - <a accesskey="h" href="../index.html" title= - "Линукс с нуля - Версия 12.1">Начало</a> - </li> - </ul> - </div> - <h1 class="sect1"> - <a id="ch-tools-glibc" name="ch-tools-glibc"></a>5.5. Glibc-2.39 - </h1> - <div class="wrap" lang="ru" xml:lang="ru"> - <div class="package" lang="ru" xml:lang="ru"> - <p> - Пакет Glibc содержит основную библиотеку C. Эта библиотека - предоставляет основные процедуры для выделения памяти, поиска в - каталогах, открытия и закрытия файлов, чтения и записи файлов, - обработки строк, сопоставления с образцом, арифметики и так далее - </p> - <div class="segmentedlist"> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Приблизительное время сборки:</strong> - <span class="segbody">1.5 SBU</span> - </div> - <div class="seg"> - <strong class="segtitle">Требуемое дисковое - пространство:</strong> <span class="segbody">846 MB</span> - </div> - </div> - </div> - </div> - <div class="installation" lang="ru" xml:lang="ru"> - <h2 class="sect2"> - 5.5.1. Установка пакета Glibc - </h2> - <p> - Во-первых, создайте символическую ссылку для соответствия - требованиям LSB. Кроме того, для совместимости с x86_64 создайте - символическую ссылку, необходимую для правильной работы загрузчика - динамической библиотеки: - </p> - <pre class="userinput"><kbd class="command">case $(uname -m) in - i?86) ln -sfv ld-linux.so.2 $LFS/lib/ld-lsb.so.3 - ;; - x86_64) ln -sfv ../lib/ld-linux-x86-64.so.2 $LFS/lib64 - ln -sfv ../lib/ld-linux-x86-64.so.2 $LFS/lib64/ld-lsb-x86-64.so.3 - ;; -esac</kbd></pre> - <div class="admon note"> - <img alt="[Примечание]" src="../images/note.png" /> - <h3> - Примечание - </h3> - <p> - Приведенная выше команда верна. Команда <span class= - "command"><strong>ln</strong></span> имеет несколько вариантов - синтаксиса, поэтому обязательно ознакомьтесь с <span class= - "command"><strong>info coreutils ln</strong></span> и <a class= - "ulink" href="https://man.archlinux.org/man/ln.1">ln(1)</a>, - прежде чем сообщать об ошибке. - </p> - </div> - <p> - Некоторые программы, использующие Glibc, применяют несовместимый с - FHS каталог <code class="filename">/var/db</code> для хранения - своих данных времени выполнения. Установите следующий патч, чтобы - такие программы хранили свои данные в местах, совместимых с FHS: - </p> - <pre class="userinput"><kbd class= - "command">patch -Np1 -i ../glibc-2.39-fhs-1.patch</kbd></pre> - <p> - В документации к Glibc рекомендуется собирать Glibc в отдельном - каталоге: - </p> - <pre class="userinput"><kbd class="command">mkdir -v build -cd build</kbd></pre> - <p> - Убедитесь, что утилиты <span class= - "command"><strong>ldconfig</strong></span> and <span class= - "command"><strong>sln</strong></span> установлены в <code class= - "filename">/usr/sbin</code>: - </p> - <pre class="userinput"><kbd class= - "command">echo "rootsbindir=/usr/sbin" > configparms</kbd></pre> - <p> - Затем подготовьте Glibc к компиляции: - </p> - <pre class="userinput"><kbd class= - "command">../configure \ - --prefix=/usr \ - --host=$LFS_TGT \ - --build=$(../scripts/config.guess) \ - --enable-kernel=4.19 \ - --with-headers=$LFS/usr/include \ - --disable-nscd \ - libc_cv_slibdir=/usr/lib</kbd></pre> - <div class="variablelist"> - <p class="title"> - <strong>Значение параметров настройки:</strong> - </p> - <dl class="variablelist"> - <dt> - <span class="term"><em class="parameter"><code>--host=$LFS_TGT, - --build=$(../scripts/config.guess)</code></em></span> - </dt> - <dd> - <p> - Комбинация этих опций указывает на то, что система сборки - Glibc настраивается на кросс-компиляцию с использованием - кросс-компоновщика и кросс-компилятора в <code class= - "filename">$LFS/tools</code>. - </p> - </dd> - <dt> - <span class="term"><em class= - "parameter"><code>--enable-kernel=4.19</code></em></span> - </dt> - <dd> - <p> - Этот параметр позволяет Glibc выполнять компиляцию библиотеки - с поддержкой ядра 4.19 и более поздних версий. Поддержка - более старых ядер не включена. - </p> - </dd> - <dt> - <span class="term"><em class= - "parameter"><code>--with-headers=$LFS/usr/include</code></em></span> - </dt> - <dd> - <p> - Этот аргумент позволяет скомпилировать библиотеку с - заголовочными файлами, недавно установленными в каталоге - $LFS/usr/include, таким образом, пакету будет известно, какие - функции есть у ядра, чтобы оптимизировать себя. - </p> - </dd> - <dt> - <span class="term"><em class= - "parameter"><code>libc_cv_slibdir=/usr/lib</code></em></span> - </dt> - <dd> - <p> - Этот аргумент гарантирует, что библиотека будет установлена в - /usr/lib вместо стандартного /lib64 на 64-битных машинах. - </p> - </dd> - <dt> - <span class="term"><em class= - "parameter"><code>--disable-nscd</code></em></span> - </dt> - <dd> - <p> - Параметр отключает сборку демона кэша службы имен, который - больше не используется. - </p> - </dd> - </dl> - </div> - <p> - На этом этапе может появиться следующее предупреждение: - </p> - <div class="blockquote"> - <blockquote class="blockquote"> - <pre class="screen"><code class= - "computeroutput">configure: WARNING: -*** These auxiliary programs are missing or -*** incompatible versions: msgfmt -*** some features will be disabled. -*** Check the INSTALL file for required versions.</code></pre> - </blockquote> - </div> - <p> - Отсутствующая или несовместимая программа <span class= - "command"><strong>msgfmt</strong></span>, как правило, безвредна. - <span class="command"><strong>msgfmt</strong></span> является - частью пакета Gettext, который должен предоставлять - хост-дистрибутив. - </p> - <div class="admon note"> - <img alt="[Примечание]" src="../images/note.png" /> - <h3> - Примечание - </h3> - <p> - Поступали сообщения о том, что этот пакет может не - компилироваться при <span class="quote">«<span class= - "quote">параллельной сборке</span>»</span>. Если это произойдет, - повторно запустите команду make с параметром <code class= - "option">-j1</code>. - </p> - </div> - <p> - Скомпилируйте пакет: - </p> - <pre class="userinput"><kbd class="command">make</kbd></pre> - <p> - Установите пакет: - </p> - <div class="admon warning"> - <img alt="[Предупреждение]" src="../images/warning.png" /> - <h3> - Предупреждение - </h3> - <p> - Если переменная <code class="envar">LFS</code> настроена - неправильно, и, несмотря на рекомендации, вы выполняете сборку от - имени пользователя <code class="systemitem">root</code>, - следующая команда установит только что собранный Glibc в вашу - хост-систему, что, скорее всего, сделает её непригодной для - использования. Поэтому дважды проверьте, правильность настройки - среды и что вы вошли в систему не под учетной записью - <code class="systemitem">root</code>, прежде чем запускать - следующую команду. - </p> - </div> - <pre class="userinput"><kbd class= - "command">make DESTDIR=$LFS install</kbd></pre> - <div class="variablelist"> - <p class="title"> - <strong>Значение опции <span class="command"><strong>make - install</strong></span>:</strong> - </p> - <dl class="variablelist"> - <dt> - <span class="term"><em class= - "parameter"><code>DESTDIR=$LFS</code></em></span> - </dt> - <dd> - <p> - Переменная make <code class="envar">DESTDIR</code> - используется почти всеми пакетами для определения места - установки пакета. Если она не задана, по умолчанию для - установки используется корневой каталог (<code class= - "filename">/</code>). Здесь мы указываем, что пакет должен - быть установлен в $LFS, который станет корневым каталогом в - <a class="xref" href="../chapter07/chroot.html" title= - "7.4. Вход в окружение Chroot">Раздел 7.4, «Вход в - окружение Chroot»</a>. - </p> - </dd> - </dl> - </div> - <p> - Исправьте жестко запрограммированный путь к исполняемому загрузчику - в <span class="command"><strong>ldd</strong></span>: - </p> - <pre class="userinput"><kbd class= - "command">sed '/RTLDLIST=/s@/usr@@g' -i $LFS/usr/bin/ldd</kbd></pre> - <div class="admon caution"> - <img alt="[Внимание]" src="../images/caution.png" /> - <h3> - Внимание - </h3> - <p> - На этом этапе необходимо остановиться и убедиться, что основные - функции (компиляция и компоновка) нового кросс-тулчейна работают - должным образом. Чтобы выполнить проверку работоспособности, - выполните следующие команды: - </p> - <pre class="userinput"><kbd class= - "command">echo 'int main(){}' | $LFS_TGT-gcc -xc - -readelf -l a.out | grep ld-linux</kbd></pre> - <p> - Если все работает правильно, ошибок быть не должно и вывод - последней команды будет иметь вид: - </p> - <pre class="screen"><code class= - "computeroutput">[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]</code></pre> - <p> - Обратите внимание, что для 32-разрядных машин имя интерпретатора - будет <code class="filename">/lib/ld-linux.so.2</code>. - </p> - <p> - Если выходные данные отображаются не так, как указано выше, или - их вообще нет, значит, что-то сделано неправильно. Разберитесь с - проблемой и повторите шаги выше, чтобы исправить ее. Эта проблема - должна быть решена, прежде чем вы продолжите. - </p> - <p> - Как только все будет хорошо, удалите тестовый файл: - </p> - <pre class="userinput"><kbd class="command">rm -v a.out</kbd></pre> - </div> - <div class="admon note"> - <img alt="[Примечание]" src="../images/note.png" /> - <h3> - Примечание - </h3> - <p> - Сборка пакетов в следующей главе послужит дополнительной - проверкой правильности сборки временного кросс-тулчейна. Если - какой-либо пакет, особенно Binutils или GCC, не удается собрать, - это указывает на то, что что-то пошло не так с установленными - ранее Binutils, GCC, или Glibc. - </p> - </div> - </div> - <div class="content" lang="ru" xml:lang="ru"> - <p> - Подробная информация об этом пакете находится в <a class="xref" - href="../chapter08/glibc.html#contents-glibc" title= - "8.5.3. Содержимое пакета Glibc">Раздел 8.5.3, «Содержимое - пакета Glibc.»</a> - </p> - </div> - </div> - <div class="navfooter"> - <ul> - <li class="prev"> - <a accesskey="p" href="linux-headers.html" title= - "Заголовочные файлы Linux-6.7.4 API">Пред.</a> - <p> - Заголовочные файлы Linux-6.7.4 API - </p> - </li> - <li class="next"> - <a accesskey="n" href="gcc-libstdc++.html" title= - "Libstdc++ из GCC-13.2.0">След.</a> - <p> - Libstdc++ из GCC-13.2.0 - </p> - </li> - <li class="up"> - <a accesskey="u" href="chapter05.html" title= - "Глава 5. Сборка кросс-тулчейна">Наверх</a> - </li> - <li class="home"> - <a accesskey="h" href="../index.html" title= - "Линукс с нуля - Версия 12.1">Начало</a> - </li> - </ul> - </div> - </body> -</html> diff --git a/lfs-12.1-sysv/chapter05/introduction.html b/lfs-12.1-sysv/chapter05/introduction.html deleted file mode 100644 index a95c471..0000000 --- a/lfs-12.1-sysv/chapter05/introduction.html +++ /dev/null @@ -1,94 +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> - 5.1. Введение - </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> - Глава 5. Сборка кросс-тулчейна - </h3> - <ul> - <li class="prev"> - <a accesskey="p" href="chapter05.html" title= - "Сборка кросс-тулчейна">Пред.</a> - <p> - Сборка кросс-тулчейна - </p> - </li> - <li class="next"> - <a accesskey="n" href="binutils-pass1.html" title= - "Binutils-2.42 - Проход 1">След.</a> - <p> - Binutils-2.42 - Проход 1 - </p> - </li> - <li class="up"> - <a accesskey="u" href="chapter05.html" title= - "Глава 5. Сборка кросс-тулчейна">Наверх</a> - </li> - <li class="home"> - <a accesskey="h" href="../index.html" title= - "Линукс с нуля - Версия 12.1">Начало</a> - </li> - </ul> - </div> - <h1 class="sect1"> - <a id="ch-tools-introduction" name="ch-tools-introduction"></a>5.1. - Введение - </h1> - <div class="sect1" lang="ru" xml:lang="ru"> - <p> - В этой главе дано описание, как создать кросс-компилятор и связанные - с ним инструменты. Несмотря на то, что на данном этапе - кросс-компиляция имитируется, принципы его работы те же, что и для - настоящего кросс-тулчейна. - </p> - <p> - Программы, скомпилированные в этой главе, будут установлены в каталог - <code class="filename">$LFS/tools</code>, чтобы они были отделены от - файлов, установленных в следующих главах. Библиотеки, же, - устанавливаются на свое постоянное место, поскольку они относятся к - системе, которую мы хотим создать. - </p> - </div> - <div class="navfooter"> - <ul> - <li class="prev"> - <a accesskey="p" href="chapter05.html" title= - "Сборка кросс-тулчейна">Пред.</a> - <p> - Сборка кросс-тулчейна - </p> - </li> - <li class="next"> - <a accesskey="n" href="binutils-pass1.html" title= - "Binutils-2.42 - Проход 1">След.</a> - <p> - Binutils-2.42 - Проход 1 - </p> - </li> - <li class="up"> - <a accesskey="u" href="chapter05.html" title= - "Глава 5. Сборка кросс-тулчейна">Наверх</a> - </li> - <li class="home"> - <a accesskey="h" href="../index.html" title= - "Линукс с нуля - Версия 12.1">Начало</a> - </li> - </ul> - </div> - </body> -</html> diff --git a/lfs-12.1-sysv/chapter05/linux-headers.html b/lfs-12.1-sysv/chapter05/linux-headers.html deleted file mode 100644 index 089f331..0000000 --- a/lfs-12.1-sysv/chapter05/linux-headers.html +++ /dev/null @@ -1,315 +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> - 5.4. Заголовочные файлы Linux-6.7.4 API - </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> - Глава 5. Сборка кросс-тулчейна - </h3> - <ul> - <li class="prev"> - <a accesskey="p" href="gcc-pass1.html" title= - "GCC-13.2.0 - Проход 1">Пред.</a> - <p> - GCC-13.2.0 - Проход 1 - </p> - </li> - <li class="next"> - <a accesskey="n" href="glibc.html" title="Glibc-2.39">След.</a> - <p> - Glibc-2.39 - </p> - </li> - <li class="up"> - <a accesskey="u" href="chapter05.html" title= - "Глава 5. Сборка кросс-тулчейна">Наверх</a> - </li> - <li class="home"> - <a accesskey="h" href="../index.html" title= - "Линукс с нуля - Версия 12.1">Начало</a> - </li> - </ul> - </div> - <h1 class="sect1"> - <a id="ch-tools-linux-headers" name="ch-tools-linux-headers"></a>5.4. - Заголовочные файлы Linux-6.7.4 API - </h1> - <div class="wrap" lang="ru" xml:lang="ru"> - <div class="package" lang="ru" xml:lang="ru"> - <p> - Заголовочные файлы Linux API (в linux-6.7.4.tar.xz) предоставляют - API ядра для использования Glibc. - </p> - <div class="segmentedlist"> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Приблизительное время сборки:</strong> - <span class="segbody">менее 0.1 SBU</span> - </div> - <div class="seg"> - <strong class="segtitle">Требуемое дисковое - пространство:</strong> <span class="segbody">1.5 GB</span> - </div> - </div> - </div> - </div> - <div class="installation" lang="ru" xml:lang="ru"> - <h2 class="sect2"> - 5.4.1. Установка заголовочных файлов - </h2> - <p> - Ядро Linux должно предоставлять интерфейс прикладного - программирования (API) для использования системной библиотекой C - (Glibc в LFS). Это делается путем установки заголовочных файлов C, - которые поставляются в архиве с исходным кодом ядра Linux. - </p> - <p> - Убедитесь, что в пакете нет устаревших файлов: - </p> - <pre class="userinput"><kbd class="command">make mrproper</kbd></pre> - <p> - Теперь извлеките видимые пользователю заголовочные файлы ядра из - исходного кода. Рекомендуемый способ make <span class= - "quote">«<span class="quote">headers_install</span>»</span> - использовать нельзя, так как для этого требуется <span class= - "application">rsync</span>, который может быть недоступен. - Заголовочные файлы сначала помещаются в <code class= - "filename">/usr</code>, а затем копируются в нужное место. - </p> - <pre class="userinput"><kbd class="command">make headers -find usr/include -type f ! -name '*.h' -delete -</kbd><kbd class="command">cp -rv usr/include $LFS/usr</kbd></pre> - </div> - <div class="content" lang="ru" xml:lang="ru"> - <h2 class="sect2"> - <a id="contents-linux-headers" name= - "contents-linux-headers"></a>5.4.2. Содержимое заголовочных файлов - Linux API - </h2> - <div class="segmentedlist"> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Установленные заголовочные - файлы::</strong> <span class="segbody">/usr/include/asm/*.h, - /usr/include/asm-generic/*.h, /usr/include/drm/*.h, - /usr/include/linux/*.h, /usr/include/misc/*.h, - /usr/include/mtd/*.h, /usr/include/rdma/*.h, - /usr/include/scsi/*.h, /usr/include/sound/*.h, - /usr/include/video/*.h, and /usr/include/xen/*.h</span> - </div> - <div class="seg"> - <strong class="segtitle">Созданные каталоги::</strong> - <span class="segbody">/usr/include/asm, - /usr/include/asm-generic, /usr/include/drm, /usr/include/linux, - /usr/include/misc, /usr/include/mtd, /usr/include/rdma, - /usr/include/scsi, /usr/include/sound, /usr/include/video, and - /usr/include/xen</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="asm" name="asm"></a><span class= - "term"><code class="filename">/usr/include/asm/*.h</code></span> - </p> - </td> - <td> - <p> - Заголовочные файлы Linux API ASM - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="asm-generic" name="asm-generic"></a><span class= - "term"><code class= - "filename">/usr/include/asm-generic/*.h</code></span> - </p> - </td> - <td> - <p> - Заголовочные файлы Linux API ASM Generic - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="drm" name="drm"></a><span class= - "term"><code class="filename">/usr/include/drm/*.h</code></span> - </p> - </td> - <td> - <p> - Заголовочные файлы Linux API DRM - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="linux" name="linux"></a><span class= - "term"><code class= - "filename">/usr/include/linux/*.h</code></span> - </p> - </td> - <td> - <p> - Заголовочные файлы Linux API Linux - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="misc" name="misc"></a><span class= - "term"><code class= - "filename">/usr/include/misc/*.h</code></span> - </p> - </td> - <td> - <p> - Заголовочные файлы Linux API Miscellaneous - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="mtd" name="mtd"></a><span class= - "term"><code class="filename">/usr/include/mtd/*.h</code></span> - </p> - </td> - <td> - <p> - Заголовочные файлы API MTD - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="rdma" name="rdma"></a><span class= - "term"><code class= - "filename">/usr/include/rdma/*.h</code></span> - </p> - </td> - <td> - <p> - Заголовочные файлы Linux API RDMA - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="scsi" name="scsi"></a><span class= - "term"><code class= - "filename">/usr/include/scsi/*.h</code></span> - </p> - </td> - <td> - <p> - Заголовочные файлы Linux API SCSI - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="sound" name="sound"></a><span class= - "term"><code class= - "filename">/usr/include/sound/*.h</code></span> - </p> - </td> - <td> - <p> - Заголовочные файлы Linux API Sound - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="video" name="video"></a><span class= - "term"><code class= - "filename">/usr/include/video/*.h</code></span> - </p> - </td> - <td> - <p> - Заголовочные файлы Linux API Video - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="xen" name="xen"></a><span class= - "term"><code class="filename">/usr/include/xen/*.h</code></span> - </p> - </td> - <td> - <p> - Заголовочные файлы Linux API Xen - </p> - </td> - </tr> - </tbody> - </table> - </div> - </div> - </div> - <div class="navfooter"> - <ul> - <li class="prev"> - <a accesskey="p" href="gcc-pass1.html" title= - "GCC-13.2.0 - Проход 1">Пред.</a> - <p> - GCC-13.2.0 - Проход 1 - </p> - </li> - <li class="next"> - <a accesskey="n" href="glibc.html" title="Glibc-2.39">След.</a> - <p> - Glibc-2.39 - </p> - </li> - <li class="up"> - <a accesskey="u" href="chapter05.html" title= - "Глава 5. Сборка кросс-тулчейна">Наверх</a> - </li> - <li class="home"> - <a accesskey="h" href="../index.html" title= - "Линукс с нуля - Версия 12.1">Начало</a> - </li> - </ul> - </div> - </body> -</html> |