[devel] PIE Executables

Kirill A. Shutemov =?iso-8859-1?q?kirill_=CE=C1_shutemov=2Ename?=
Чт Май 22 11:14:05 MSD 2008


On Thu, May 22, 2008 at 09:50:27AM +0300, Led wrote:
> Thursday, 22 May 2008 08:02:03 Kirill A. Shutemov написав:
> > On Thu, May 22, 2008 at 03:04:58AM +0300, Led wrote:
> > > Thursday, 22 May 2008 02:41:59 Dmitry V. Levin написав:
> > > > On Thu, May 22, 2008 at 01:06:54AM +0300, Led wrote:
> > > > > Thursday, 22 May 2008 00:49:17 Dmitry V. Levin написав:
> > > > > > On Wed, May 21, 2008 at 11:44:39PM +0300, Led wrote:
> > > > > > > Wednesday, 21 May 2008 22:21:33 Kirill A. Shutemov написав:
> > > > > > > > On Wed, May 21, 2008 at 09:02:42PM +0300, Led wrote:
> > > > > > > > > Забавный случай:
> > > > > > > > >
> > > > > > > > > $ file ~/tmp/autofs-buildroot/usr/sbin/automount
> > > > > > > > > automount: ELF 64-bit LSB shared object, x86-64, version 1
> > > > > > > > > (SYSV), for GNU/Linux 2.6.9, stripped
> > > > > > > > >
> > > > > > > > > ?
> > > > > > > > > Естественно, rpmbuild (fixup-libraries) делает ему "chmod
> > > > > > > > > 644" :(
> > > > > > > >
> > > > > > > > Нет, это не естественно.
> > > > > > > > shared object -- это и shared library и position independed
> > > > > > > > executable. В fixup-libraries есть эвристика для отделения мух
> > > > > > > > от котлет. chmod, по идее, должен делаться только для shared
> > > > > > > > library.
> > > > > > >
> > > > > > > Нет там такой эвристики.
> > > > > >
> > > > > > Я эту эвристику туда поместил.  Если её оттуда не убрали, то она
> > > > > > там есть. Если бы её не было, то ничего бы не работало.
> > > > > >
> > > > > > Маловероятно, но, возможно, эвристика дала сбой?
> > > > >
> > > > > Я ведь не придумал. Я поставил "затычки" перед fixup-libraries и
> > > > > после него. До fixup-libraries - 755, после 644. Да и на консоль
> > > > > выводит, что /usr/sbin/automount "чмодит" в 644. Могу полный лог
> > > > > сборки прикрепить,
> > > >
> > > > В этом нет смысла.
> > > >
> > > > > если в рассылку пропустят. Или возьмите autofs-5.0.3 и соберите.
> > > >
> > > > Где можно взять?
> > >
> > > autofs-5.0.3-alt0.1.src.rpm в /i/D
> > > Для проявления эффекта заменить в спеке:
> > > -%make_build DAEMON_CFLAGS= DAEMON_LDFLAGS=
> > > +%make_build
> >
> > Эвристику ломает преждеверменный strip. Опция -s при линковке удаляет
> > символ __preinit_array_end по которому shared library отделяется от
> > position independed executable.
> 
> Точно! Спасибо!
> Надо бы это где-то задокументировать. Потому как ИМХО неочевидно, что strip 
> при сборке у нас, получается, недопустим :(

Я считаю, что это слабость эвристики. Нужно что-то делать.

-- 
Regards,  Kirill A. Shutemov
 + Belarus, Minsk
 + ALT Linux Team, http://www.altlinux.com/
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 197 байтов
Описание: Digital signature
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20080522/d3709682/attachment-0002.bin>


Подробная информация о списке рассылки Devel