Bug 11011 - Patch libtool-1.5.18-alt-link_all_deplibs-runtime.patch seems to be obsolete/broken
Summary: Patch libtool-1.5.18-alt-link_all_deplibs-runtime.patch seems to be obsolete...
Status: NEW
Alias: None
Product: Sisyphus
Classification: Development
Component: libtool_2.2 (show other bugs)
Version: unstable
Hardware: all Linux
: P2 normal
Assignee: Dmitry V. Levin
QA Contact: qa-sisyphus
URL:
Keywords:
: 11012 (view as bug list)
Depends on:
Blocks:
 
Reported: 2007-03-05 10:21 MSK by Alexey Morozov
Modified: 2009-04-23 03:51 MSD (History)
4 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Alexey Morozov 2007-03-05 10:21:54 MSK
Кажется, данный патч должен быть либо удален, либо скорректирован.

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

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

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

Если потребуется, я могу привести сравнительно простой пример, иллюстрирующий 
данную проблему.
Comment 1 Alexey Morozov 2007-03-05 10:52:52 MSK
*** Bug 11012 has been marked as a duplicate of this bug. ***
Comment 2 Dmitry V. Levin 2008-01-13 21:09:54 MSK
(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 Dmitry V. Levin 2008-02-23 20:14:24 MSK
(In reply to comment #0)
> Кажется, данный патч должен быть либо удален, либо скорректирован.
> 
> В этом патче эксплуатируется такое свойство ELF линкера, как 
> автоматическая "раскрутка" полного списка библиотек, в т.ч., используемых 
> неявно. Это позволяет не указывать при линковке неявно используемые библиотеки.
> 
> К сожалению, ситуация меняется при использовании ключа линкера --no-undefined 
> (-Wl,--no-undefined при использовании в качестве линкера gcc). При таком 
> использовании требуется указывать полный список библиотек; не помогает даже 
> использование ключа --allow-shlib-undefined, т.к. неотрезолвленными часто 
> оказываться ссылки, неявно включенные в объектные файлы.

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