libm, libm_p

libm – математическая библиотека.

libmcheck

libmcheck – содержит код, выполняемый при загрузке.

libmemusage

libmemusage – используется memusage для сбора информации о памяти, используемой программой.

libnsl, libnsl_p

libnsl – библиотека сетевых сервисов.

libnss_compat, libnss_dns, libnss_files, libnss_hesiod, libnss_nis, libnss_nisplus

Основная идея – поместить реализацию различных сервисов доступа к базам данных в отдельные модули. Преимущества:

поставщики могут добавлять новые сервисы, не включая их в C библиотеку GNU,

модули могут быть независимо обновлены,

Библиотека C имеет меньший размер.

libpcprofile

Код, используемый ядром для отслеживания времени, затрачиваемого процессором на исполнение функций, отдельных строк кода и инструкций.

libpthread, libpthread_p

POSIX библиотека потоков.

libresolv, libresolv_p

Библиотека позволяет DNS-серверам создавать, посылать и интерпретировать пакеты.

librpcsvc, librpcsvc_p

Библиотека предоставляет различные сервисы RPC.

librt, librt_p

Библиотека предоставляет большинство интерфейсов, описанных POSIX.1b Realtime Extension.

libthread_db

Библиотека полезна для создания отладчиков для многопотоковых приложений.

libutil, libutil_p

Содержит код «стандартных» функций, используемых многими утилитами Unix.

Зависимости Glibc

Последняя проверка: версия 2.2.5.

Bash: sh Binutils: ar, as, ld, ranlib, readelf Diffutils: cmp Fileutils: chmod, cp, install, ln, mknod, mv, mkdir, rm, touch Gcc: cc, cc1, collect2, cpp, gcc Grep: egrep, grep Gzip: gzip Make: make Gawk: gawk Sed: sed Sh-utils: date, expr, hostname, pwd, uname Texinfo: install-info, makeinfo Textutils: cat, cut, sort, tr

Установка GCC-3.2

Приблизительное время компиляции: 13.26 SBU Необходимое дисковое пространство: 221 MB

Инсталляция GCC

Перед установкой пакета примените патч. Удостоверьтесь, что патч и пакет распакованы перед инсталляцией.

Этот пакет известен своим нестабильным поведением при компиляции с измененными опциями оптимизации (включая опции -march и -mcpu). GCC рекомендуется компилировать с настройками по умолчанию. Следовательно, если вы задали переменные такие как CFLAGS или CXXFLAGS, изменяющие уровень оптимизации по умолчанию, рекомендуется убрать их при сборке пакета GCC. Изменяя оптимизации для GCC, вы действуете на свой страх и риск.

Для инсталляции GCC выполните приведенные ниже команды, собирающие компиляторы языка Си и С++. Также можно установить компиляторы других языков программирования из пакета GCC. В случае, если вы хотите инсталлировать все компиляторы из пакета GCC, уберите опцию –enable-languages=c,c++ из команды configure. Для получения информации о доступных компиляторах, см документацию пакета GCC.

Примечание: инсталляция других компиляторов не тестировалась разработчиками проекта LFS.

patch -Np1 -i ../gcc-3.2.patch && mkdir ../gcc-build && cd ../gcc-build && ../gcc-3.2/configure –prefix=/usr –enable-shared –enable-languages=c,c++ –enable-threads=posix –with-slibdir=/lib –enable-__cxa_atexit –enable-clocale=gnu && make bootstrap && make install && ln -s ../usr/bin/cpp /lib && ln -s ../bin/cpp /usr/lib && ln -s gcc /usr/bin/cc

Пояснение команд

–enable-threads=posix: Эта опция включает обработку исключений в многопоточном коде на С++.

–enable-__cxa_atexit: Эта опция позволит использовать shared-библиотеки C++ и программы, написанные на C++, с другими дистрибутивами Linux.

–enable-clocale=gnu: Существует опасность, что у некоторых пользователей будут компилироваться ABI-несовместимые библиотеки С++, если glibc localedata не установлен полностью. Использование опции –enable-clocale=gnu гарантирует корректную компиляцию во всех случаях. Если вы не хотите использовать эту опцию, удостоверьтесь, что по крайней мере, устанавливается локаль de_DE. Когда GCC находит эту конкретную локаль, выполняется верный режим локали (gnu).

Содержимое 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>.

Вы читаете Linux From Scratch
Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату