Ставим все для сборки:
apt-get install -y dpkg-dev devscripts build-essential fakeroot
cd /usr/src
apt-get build-dep libc6 -y
apt-get source libc6 -y
cd glibc-2.7
Накладываем патчи:
debian/rules patch
После этого в папке ls build-tree/glibc-2.7/ можно видеть все необходимое для сборки, заходим туда и нагло патчим все, что нужно :)
На правах ремарки, код сборки ld-linux.so.2 расположен по пути: build-tree/glibc-2.7/elf/Makefile. Вызов сборки идет из:
build-tree/glibc-2.7/Makefile:
100 # Make sure that the dynamic linker is installed before libc.
101 $(inst_slibdir)/libc-$(version).so: elf/ldso_install
А сам код расположен в build-tree/glibc-2.7/elf.
Собираем libc:
debian/rules build
Собираем бинарный пакет:
fakeroot debian/rules binary
Итого в папке /usr/src появится куча файлов, из которых нам нужны:
libc6-dev-i386_2.7-18lenny2_amd64.deb
libc6-dev_2.7-18lenny2_amd64.deb
libc6-i386_2.7-18lenny2_amd64.deb
libc6_2.7-18lenny2_amd64.deb
Так как в стандартной сборке Дебы:
dpkg -l | grep 'GNU C Library'
ii libc6 2.7-18lenny2 GNU C Library: Shared libraries
ii libc6-dev 2.7-18lenny2 GNU C Library: Development Libraries and Hea
ii libc6-dev-i386 2.7-18lenny2 GNU C Library: 32bit development libraries f
ii libc6-i386 2.7-18lenny2 GNU C Library: 32bit shared libraries for AM
Ставим:
dpkg -i libc6-dev-i386_2.7-18lenny2_amd64.deb libc6-dev_2.7-18lenny2_amd64.deb libc6-i386_2.7-18lenny2_amd64.deb libc6_2.7-18lenny2_amd64.deb
Блокируем пропатченный libc от апдейта:
echo "libc6 hold" | dpkg --set-selections
echo "libc6-i386 hold" | dpkg --set-selections
echo "libc6-i386-dev hold" | dpkg --set-selections
echo "libc6-dev hold" | dpkg --set-selections
Спасибо за помощь: http://www.pubbs.net/200910/ubuntu/23274-re-how-to-apply-a-patch-to-glibc-and-build-it.html и http://www.debian.org/doc/maint-guide/ch-build.en.html
No comments:
Post a Comment
Note: only a member of this blog may post a comment.