Установка libc с дебаг-символами в ArchLinux

c config linux

День начинался как обычно. Но тут потребовалось отдебажить хип после очередного обновления системы и резко обнаружилось, что опять слетели дебаг-символы у libc. Пока я ее пересобирал я задумался, что процесс, конечно, тривиальный, но если с этим постоянно работать. Плюс в последних версиях дефолтный /etc/makepkd.conf тоже подтупливает, поэтому такая заметка будет более чем актуальна и новичкам, и просто людям, кто столкнулся с таким впервые.

Итак, исходные данные:

  • arhc-based дистрибутив
  • установленные утилиты для разработки (GCC, pkgbuild, etc)

Для начала, пункт первый: как я уже написал выше, для сборки libc с дебагом конфиг сборки по умолчанию не подойдет. Необходимо поставить пакет devtools и использовать конфиг оттуда. Таким образм, окончательный список зависимостей будет выглядит примерно так:

git svn gd lib32-gcc-libs patch make bison fakeroot

А дальше сам процесс сборки:

  • Вытягиваем из SVN ArchLinux'a нужный нам кусок: svn checkout --depth=empty svn://svn.archlinux.org/packages && cd pakcages
  • Получаем исходники libc: svn update glibc && cd glibc/repos/core-x86_64
  • Проставляем нужные локали в locale.gen.txt в исходниках
  • Настраиваем дебаг-билд в PKGBUILD (это делается заменой strip на debug в переменной options
  • Запускаем сборку: makepkg --skipchecksums --config /usr/share/devtools/makepkg-x86_64.conf
  • ждем завершения
  • Ставим собранную версию: sudo pacman -U *.pkg.tar.xz
  • Заменяем уже в /etc/makepkg.conf !debug на debug и strip на !strip

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

Previous Post Next Post