[devel] --as-needed: libtinfo, libncurses
Dmitry V. Levin
ldv на altlinux.org
Пн Июн 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
----------- следущая часть -----------
Было удалено вложение не в текстовом формате...
Имя : отсутствует
Тип : application/pgp-signature
Размер : 189 байтов
Описание: отсутствует
Url : http://lists.altlinux.org/pipermail/devel/attachments/20060626/4bf3159b/attachment.bin
Подробная информация о списке рассылки Devel