[devel] I: ld --no-copy-dt-needed-entries by default

led на altlinux.ru led на altlinux.ru
Пн Май 21 05:28:40 MSK 2012



On Monday 21 May 2012 00:58:30 Dmitry V. Levin wrote:
> On Sun, May 20, 2012 at 11:10:08PM +0300, Led wrote:
> > On Sunday 20 May 2012 23:00:30 Dmitry V. Levin wrote:
> > > On Mon, Jan 31, 2011 at 09:00:06PM +0300, Dmitry V. Levin wrote:
> > > > On Tue, Jan 25, 2011 at 06:37:18AM +0200, Kirill A. Shutemov wrote:
> > > > > С начала этого в Fedora 15/Rawhide GNU gold используется
> > > > > по-умолчанию на %ix86 и x86-64.
> > > > >
> > > > > Помимо всего прочего, это означает --no-copy-dt-needed-entries
> > > > > по-умолчанию.
> > > >
> > > > Это означает --no-copy-dt-needed-entries по любому при использовании
> > > > GNU gold.
> > > >
> > > > > Кто-нибудь из возражавших введению
> > > > > --no-copy-dt-needed-entries в начале прошлого года хочет
> > > > > реализовать --copy-dt-needed-entries в GNU gold?
> > > >
> > > > Ссылка на прошлогоднее обсуждение:
> > > > http://lists.altlinux.org/pipermail/devel/2010-March/181189.html
> > > >
> > > > Я сомневаюсь в том, что кто-либо реализует --copy-dt-needed-entries
> > > > для GNU gold.  Я думаю, что мы можем еще немного повременить с
> > > > переходом на GNU gold, скажем, до весны, но потом этот переход станет
> > > > неизбежным, и вместе с ним всплывут все проблемы линковки, которые
> > > > нам сейчас так удобно маскирует --copy-dt-needed-entries,
> > > > реализованная по умолчанию в GNU ld.
> > > >
> > > > Я полагаю, что большая часть этих проблем линковки уже исправлена
> > > > либо разными апстримами, либо мейнтейнерами пакетов в Федоре, и,
> > > > соответственно, реализовать эти исправления у нас будет несложно.
> > >
> > > binutils/ld/NEWS:
> > > Changes in 2.22:
> > > * --copy-dt-needed-entries is no longer enabled by default.  Instead
> > >   --no-copy-dt-needed-entries is the default.
> > >
> > > Вместе с обновлением пакета binutils в Сизифе изменилось поведение по
> > > умолчанию.  Тестовая пересборка выявила 354 пакета, в логах которых
> > > присутствует характерная диагностика вида
> > > /usr/bin/ld: note: 'log@@GLIBC_2.2.5' is defined in DSO
> > > /lib64/libm.so.6 so try adding it to the linker command line
> > >
> > > Понятно, что исправление в каждом конкретном случае, скорее всего,
> > > тривиальное, но общее число затронутых пакетов удручает.  Видимо,
> > > придется применить ресурс @qa для ускоренного исправления сборки
> > > пакетов.
> >
> > Или вернуть как было. Потому как будет как с as-needed: "исправление" от
> > @qa выльется во втыкание --copy-dt-needed-entries в %optflags
>
> Зачем?  Надо просто добавить недостающие -lNAME и все.
>
> > Там не только это. Там есть ещё одно "изменение", из-за которого, в
> > частности, не соберётся glibc.
>
> Да, glibc-2.12-238-g4a531bb.

Или
Building binutils with --disable-initfini-array "fixes" it
http://sourceware.org/bugzilla/show_bug.cgi?id=12343

> Приятно осознавать, что за изменениями в binutils следит кто-то еще. :)

Просто уже прошёлся по этим граблям и решения понаходил. Но для себя решил 2.22 ради 2.22 - смысла мало, если всё 
патчить придётся, лучше использовать binutils >= 2.22 на системе с уже адаптированным в апстриме glibc, а с glibc-2.11 
и binutils-2.21.x особо "не жмёт".

-- 
Led


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