[devel] --as-needed: libtinfo, libncurses

Dmitry V. Levin =?iso-8859-1?q?ldv_=CE=C1_altlinux=2Eorg?=
Пн Июн 26 18:50:51 MSD 2006


On Mon, Mar 06, 2006 at 09:25:13PM +0300, Dmitry V. Levin wrote:
> On Mon, Mar 06, 2006 at 11:05:06PM +0500, Andrey Rahmatullin wrote:
> > On Mon, Mar 06, 2006 at 03:08:44PM +0300, Dmitry V. Levin wrote:
> > > > > - Pass --as-needed option to GNU ld by default.
> > > > И никто не сломался? ;)
> > > Это мы сейчас изучаем...
> > Для этого надо попробовать запустить всё, что должно запускаться?
> 
> Для начала достаточно попробовать всё пересобрать и погрепать логи на тему
> "undefined reference" и "undefined symbol".
> 
> Но есть и менее очевидные случаи.  Например, история с libtinfo.
> Мы давно (3.5 года назад) распилили ncurses, выделив библиотеку libtinfo,
> обеспечивающуюсовместимость с terminfo, в отдельную библиотеку (за основу
> был взят распил, выполненный upstream).  Однако многие мантейнеры этот
> факт игнорируют.  Теперь часть этих пакетов перестала собираться, поскольку
> в ncurses нет символов, которые им нужны.  Другая часть этих пакетов стала
> собираться без поддержки terminfo.
> 
> На примере пакета screen:
> configure: checking for tgetent...
> configure: checking libcurses...
> configure: checking libtermcap...
> configure: checking libtermlib...
> configure: checking libncurses...
> configure: error: !!! no tgetent - no screen

Я думаю, что раз уж мы включили --as-needed по умолчанию, то можно
облегчить себе жизнь, превратив libncurses.so в linker script.
Например, для elf32-i386 это может выглядеть так:

$ cat /usr/lib/libncurses.so
OUTPUT_FORMAT(elf32-i386)
GROUP(/usr/lib/libtinfo.so /usr/lib/libncurses.so.5)


-- 
ldv
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20060626/4bf3159b/attachment-0001.bin>


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