libgcc

При компиляции динамических библиотек с помощью GCC требуется, чтобы libgcc могла быть загружена во время выполнения программы. Поэтому нам нужно скопировать библиотеку libgcc, которая ранее была собрана для кросс-компилятора.

  • Версия: 13.2.0
  • Домашняя страница: https://gcc.gnu.org
  • Время сборки: 0.01 ОВС

Подготовка

Объявите переменную окружения LGCC_LIB, которая будет содержать имя директории lib{,64}, где содержится необходимая нам библиотека (в зависимости от архитектуры название этой директории различается):

if [ $LFA_TGT == "aarch64-linux-musleabihf" ]; then
  LGCC_LIB="lib64"
else
  LGCC_LIB="lib"
fi

Значения новых параметров:

if [ $LFA_TGT == "aarch64-linux-musleabihf" ]; then ... — если вы собираете систему для 64-битной архитектуры, то нужная библиотека содержится в каталоге $LFA_CROSS/lib64. А для 32-битных архитектур семейства ARM нужная библиотека содержится в $LFA_CROSS/lib. В зависимости от целевой архитектуры мы вибираем, откуда копировать libgcc_s.so.1 и куда.

Установка

Скопируйте библиотеку в директорию собираемой ОС:

cp -v $LFA_CROSS/$LGCC_LIB/libgcc_s.so.1 $LFA_SYS/$LGCC_LIB

Удалите из установленной библиотеки лишние для вас отладочные символы:

$STRIP $LFA_SYS/$LGCC_LIB/libgcc_s.so.1

Переменная LGCC_LIB нам больше не нужна, удалите её:

unset LGCC_LIB

Содержимое пакета

  • Установленные библиотеки: libgcc_s.so.1

Описание компонентов

  • libgcc_s.so.1 — при компиляции динамически линкуемых программ с помощью GCC требуется, чтобы во время выполнения такой программы была загружена библиотека libgcc_s.so.1 из состава GCC.