–prefix=/static: Это НЕ опечатка. При компиляции, GCC жестко прописывает пути, и нам необходимо передать путь /static в качестве префикса к скрипту ./configure. Реальный путь инсталляции мы укажем команде make install.
–enable-languages=c: Указание собрать компилятор Си. Компилятор C++ будет собран позже, в Главе 6, когда мы будем перекомпилировать GCC. Для сборки других компиляторов, опустите параметр –enable-languages.
echo «#define HAVE_GAS_HIDDEN 1»: Определим директиву ассемблера .hidden, для того чтобы впоследствии скомпилировать Glibc правильно.
make BOOT_LDFLAGS=-static: Это эквивалент опции LDFLAGS=-static, который мы задаем для использования статических ссылок при компиляции.
ln -s gcc $LFS/static/bin/cc: Создание символической ссылки $LFS/static/bin/gcc, необходимой для некоторых пакетов.
Содержимое GCC
Последняя проверка: версия 3.1.
Программы
c++, c++filt, cc (link to gcc), cc1, cc1plus, collect2, cpp, cpp0, g++, gcc, gccbug, gcov и tradcpp0
Описания
cc, cc1, cc1plus, gcc
Компилятор C. Компилятор переводит код из текстового формата в формат, понятный компьютеру. После того, как исходный код скомпилирован в объектный файл, линкер создаст исполняемый файл из одного или нескольких объектных.
c++, cc1plus, g++
Компилятор C++, эквивалент cc, gcc etc.
c++filt
Язык C++ позволяет осуществлять перезагрузку функций, делая возможным написание многих функций с одним именем (с разным набором параметром). Все имена функций C++ закодированы в низкоуровневые метки ассемблера (этот процесс известен как mangling). c++filt совершает обратное действие: низкоуровневые имена переводятся (demangling) в имена, понятные пользователю, так что линкер избегает конфликта между перезагруженными функциями.
collect2
collect2 помогает в компиляции конструкторов.
cpp, cpp0
cpp осуществляет препроцессинг исходных файлов, например включает в них содержимое заголовочных файлов. Просто добавьте в ваш исходный файл строку вроде #include <filename>. Препроцессор вставит содержимое заголовочного файла.
gccbug
gccbug – скрипт, облегчающий создание сообщений об ошибках.
gcov
gcov анализирует программы, чтобы помочь в создании более эффективного и быстрого кода путем его оптимизации.
tradcpp0
На данный момент описания нет.
Библиотеки
libgcc.a, libgcc_eh.a, libgcc_s.so, libiberty.a, libstdc++.[a,so], libsupc++.a
Описания
libgcc, libgcc_eh, libgcc_s
Файлы поддержки gcc времени исполнения.
libiberty
libiberty – коллекция подпрограмм, используемых различными программами GNU, включая getopt, obstack, strerror, strtol и strtoul.
libstdc++
libstdc++ – библиотека C++. Она используется программами на C++ и содержит часто используемые функции. Таким образом, программисту не нужно писать стандартные функции (например, вывод строки текста на экран) с нуля при каждом создании программы.
libsupc++
libsupc++ предоставляет поддержку языка программирования C++. Помимо прочего, libsupc++ содержит функции для обработки исключений.
Зависимости GCC
Последняя проверка: версия 2.95.3.
Bash: sh Binutils: ar, as, ld, nm, ranlib Diffutils: cmp Fileutils: chmod, cp, ln, ls, mkdir, mv, rm, touch Find: find Gcc: cc, cc1, collect2, cpp0, gcc Grep: egrep, grep Make: make Patch: patch Sed: sed Sh-utils: basename, dirname, echo, expr, hostname, sleep, true, uname Tar: tar Texinfo: install-info, makeinfo Textutils: cat, tail, tr
Установка Grep-2.5
Estimated build time: 0.26 SBU Estimated required disk space: 5 MB
Установка Grep
Установка Grep осуществляется следующей командой:
LDFLAGS=-static CPPFLAGS=-Dre_max_failures=re_max_failures2 \ ./configure –prefix=$LFS/static –disable-nls \ –disable-perl-regexp && make && make install
Содержимое Grep
Последняя проверка: версия 2.5.
Программы
egrep (ссылка на grep), fgrep (ссылка на grep) и grep
Описания
egrep
egrep выводит строки файлов, совпадающие с образцом, заданном в виде расширенного регулярного выражения.
fgrep
fgrep выводит строки файлов, соответствующие списку заданных строк.
grep
grep выводит строки файлов, соответствующие регулярному выражению.
Зависимости Grep
Последняя проверка: версия 2.4.2.
Autoconf: autoconf, autoheader Automake: aclocal, automake Bash: sh Binutils: as, ld Diffutils: cmp Fileutils: chmod, install, ls, mkdir, mv, rm Gettext: msgfmt, xgettext Gcc: cc, cc1, collect2, cpp0, gcc Glibc: getconf Grep: egrep, fgrep, grep M4: m4 Make: make Gawk: gawk Sed: sed Sh-utils: basename, echo, expr, hostname, sleep, uname Texinfo: install-info, makeinfo Textutils: cat, tr
Установка Gzip-1.2.4a
Приблизительное время компиляции: 0.04 SBU Необходимое дисковое пространство: 2 MB
Инсталляция Gzip
Для инсталляции Gzip выполните:
./configure –prefix=$LFS/static && make LDFLAGS=-static && make install
Содержимое Gzip
Последняя проверка: версия 1.2.4a.
Программы
gunzip (ссылка на gzip), gzexe, gzip, uncompress (ссылка на gunzip), zcat (ссылка на gzip), zcmp, zdiff, zforce, zgrep, zmore и znew
Описание
gunzip, uncompress
gunzip и uncompress распаковывают файлы, сжатые gzip.
gzexe
gzexe позволяет сжать исполняемые файлы и автоматически распаковывать их при запуске (уменьшается производительность ).
gzip
gzip уменьшает размер указанных файлов используя код Lempel-Ziv (LZ77).
zcat
zcat распаковывает и выводит на стандартный вывод либо файлы из заданного списка, либо файл со стандартного ввода.
zcmp
zcmp применяет cmp к сжатым файлам.
zdiff
zdiff применяет diff к сжатым файлам.
zforce
zforce присваивает расширение .gz всем файлам gzip, так что они не будут сжаты дважды. Может быть полезно для файлов, чьи имена были изменены после их передачи.
zgrep
zgrep применяет grep к сжатым файлам.
zmore
zmore – фильтр, позволяющий поэкранный просмотр (не)сжатых текстовых файлов (вроде more).
znew
znew конвертирует файлы формата .Z (compress) в .gz (gzip).
Зависимости Gzip
Последняя проверка: версия 1.2.4a.
Bash: sh Binutils: as, ld, nm Fileutils: chmod, cp, install, ln, mv, rm Gcc: cc1, collect2, cpp, cpp0, gcc Grep: egrep, grep Make: make Sed: sed Sh-utils: hostname Textutils: cat, tr
Установка Make-3.79.1
Приблизительное время компиляции: 0.26 SBU Необходимое место на диске: 8 MB
Инсталляция Make
Для инсталляции Make выполните:
./configure –prefix=$LFS/static –disable-nls && make LDFLAGS=-static && make install
Во время стадии make install на экран будет выведено следующее предупреждение:
chgrp: changing group of `/mnt/lfs/static/bin/make': Operation not permitted /mnt/lfs/static/bin/make needs to be owned by group kmem and setgid; otherwise the `-l' option will probably not work. You may need special privileges to complete the installation of /mnt/lfs/static/bin/make.
Не обращайте на него внимания. Программа make не должна принадлежать группе kmem и setgid для выполнения опции –l . (Данная опция говорит команде make не начинать новых заданий, если загрузка системы достигла определенного уровня.)
Содержимое Make
Последняя проверка: версия 3.79.1.
Программы
make
Описания
make
make автоматически определяет, какие части объемной программы нуждаются в рекомпиляции, и выполняет все необходимые для этого команды.