Кажется, данный патч должен быть либо удален, либо скорректирован. В этом патче эксплуатируется такое свойство ELF линкера, как автоматическая "раскрутка" полного списка библиотек, в т.ч., используемых неявно. Это позволяет не указывать при линковке неявно используемые библиотеки. К сожалению, ситуация меняется при использовании ключа линкера --no-undefined (-Wl,--no-undefined при использовании в качестве линкера gcc). При таком использовании требуется указывать полный список библиотек; не помогает даже использование ключа --allow-shlib-undefined, т.к. неотрезолвленными часто оказываться ссылки, неявно включенные в объектные файлы. Например, при включении заголовочного файла kdebug.h в объектный файл в любом случае попадают ссылки на некоторые методы QString, несмотря даже на то, что QString не используется. Если потребуется, я могу привести сравнительно простой пример, иллюстрирующий данную проблему.
*** Bug 11012 has been marked as a duplicate of this bug. ***
(In reply to comment #0) > Кажется, данный патч должен быть либо удален, либо скорректирован. http://git.altlinux.org/people/ldv/packages/?p=libtool.git;a=blob_plain;f=libtool-1.5.18-alt-deb-link_all_deplibs.patch > > В этом патче эксплуатируется такое свойство ELF линкера, как > автоматическая "раскрутка" полного списка библиотек, в т.ч., используемых > неявно. Это позволяет не указывать при линковке неявно используемые библиотеки. > > К сожалению, ситуация меняется при использовании ключа линкера --no-undefined > (-Wl,--no-undefined при использовании в качестве линкера gcc). При таком > использовании требуется указывать полный список библиотек; не помогает даже > использование ключа --allow-shlib-undefined, т.к. неотрезолвленными часто > оказываться ссылки, неявно включенные в объектные файлы. > > Например, при включении заголовочного файла kdebug.h в объектный файл в любом > случае попадают ссылки на некоторые методы QString, несмотря даже на то, что > QString не используется. > > Если потребуется, я могу привести сравнительно простой пример, иллюстрирующий > данную проблему. Сравнительно простой пример, конечно, не помешает.
(In reply to comment #0) > Кажется, данный патч должен быть либо удален, либо скорректирован. > > В этом патче эксплуатируется такое свойство ELF линкера, как > автоматическая "раскрутка" полного списка библиотек, в т.ч., используемых > неявно. Это позволяет не указывать при линковке неявно используемые библиотеки. > > К сожалению, ситуация меняется при использовании ключа линкера --no-undefined > (-Wl,--no-undefined при использовании в качестве линкера gcc). При таком > использовании требуется указывать полный список библиотек; не помогает даже > использование ключа --allow-shlib-undefined, т.к. неотрезолвленными часто > оказываться ссылки, неявно включенные в объектные файлы. Вообще-то указывать полный список _используемых_ библиотек - это правило хорошего тона. Выключение link_all_deplibs в сочетании с --no-undefined просто превращает пожелание в требование.
Надо ещё раз подумать над этим применительно к libtoll_2.2