Bug 11011 - Patch libtool-1.5.18-alt-link_all_deplibs-runtime.patch seems to be obsolete/broken
: Patch libtool-1.5.18-alt-link_all_deplibs-runtime.patch seems to be obsolete...
Status: NEW
: Sisyphus
(All bugs in Sisyphus/libtool_2.2)
: unstable
: all Linux
: P2 normal
Assigned To:
:
:
:
:
:
  Show dependency tree
 
Reported: 2007-03-05 10:21 by
Modified: 2009-04-23 03:51 (History)


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2007-03-05 10:21:54
Кажется, данный патч должен быть либо удален, либо скорректирован.

В этом патче эксплуатируется такое свойство ELF линкера, как 
автоматическая "раскрутка" полного списка библиотек, в т.ч., используемых 
неявно. Это позволяет не указывать при линковке неявно используемые библиотеки.

К сожалению, ситуация меняется при использовании ключа линкера --no-undefined 
(-Wl,--no-undefined при использовании в качестве линкера gcc). При таком 
использовании требуется указывать полный список библиотек; не помогает даже 
использование ключа --allow-shlib-undefined, т.к. неотрезолвленными часто 
оказываться ссылки, неявно включенные в объектные файлы.

Например, при включении заголовочного файла kdebug.h в объектный файл в любом 
случае попадают ссылки на некоторые методы QString, несмотря даже на то, что 
QString не используется.

Если потребуется, я могу привести сравнительно простой пример, иллюстрирующий 
данную проблему.
------- Comment #1 From 2007-03-05 10:52:52 -------
*** Bug 11012 has been marked as a duplicate of this bug. ***
------- Comment #2 From 2008-01-13 21:09:54 -------
(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 не используется.
> 
> Если потребуется, я могу привести сравнительно простой пример, иллюстрирующий 
> данную проблему.

Сравнительно простой пример, конечно, не помешает.
------- Comment #3 From 2008-02-23 20:14:24 -------
(In reply to comment #0)
> Кажется, данный патч должен быть либо удален, либо скорректирован.
> 
> В этом патче эксплуатируется такое свойство ELF линкера, как 
> автоматическая "раскрутка" полного списка библиотек, в т.ч., используемых 
> неявно. Это позволяет не указывать при линковке неявно используемые библиотеки.
> 
> К сожалению, ситуация меняется при использовании ключа линкера --no-undefined 
> (-Wl,--no-undefined при использовании в качестве линкера gcc). При таком 
> использовании требуется указывать полный список библиотек; не помогает даже 
> использование ключа --allow-shlib-undefined, т.к. неотрезолвленными часто 
> оказываться ссылки, неявно включенные в объектные файлы.

Вообще-то указывать полный список _используемых_ библиотек - это правило
хорошего тона.
Выключение link_all_deplibs в сочетании с --no-undefined просто превращает
пожелание в требование.
------- Comment #4 From 2009-04-22 04:09:25 -------
Надо ещё раз подумать над этим применительно к libtoll_2.2