День начинался как обычно. Но тут потребовалось отдебажить хип после очередного обновления системы и резко обнаружилось, что опять слетели дебаг-символы у libc. Пока я ее пересобирал я задумался, что процесс, конечно, тривиальный, но если с этим постоянно работать.
Плюс в последних версиях дефолтный /etc/makepkd.conf
тоже подтупливает, поэтому такая заметка будет более чем актуальна и новичкам, и просто людям, кто столкнулся с таким впервые.
Итак, исходные данные:
Для начала, пункт первый: как я уже написал выше, для сборки libc с дебагом конфиг сборки по умолчанию не подойдет. Необходимо поставить пакет devtools
и использовать конфиг оттуда. Таким образм, окончательный список зависимостей будет выглядит примерно так:
git svn gd lib32-gcc-libs patch make bison fakeroot
А дальше сам процесс сборки:
svn checkout --depth=empty svn://svn.archlinux.org/packages && cd pakcages
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
По сути, процесс достаточно прост. Во время написания мне еще пришло в голову, что нужно бы это автоматизировать, поэтому для желающих есть скрипт, который делает все действия, описанные выше: