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