Bug 9713 - link_all_deplibs && as-needed
: link_all_deplibs && as-needed
Status: NEW
: Sisyphus
(All bugs in Sisyphus/libtool_2.2)
: unstable
: all Linux
: P2 normal
Assigned To:
:
:
:
:
:
  Show dependency tree
 
Reported: 2006-06-20 13:53 by
Modified: 2009-04-23 10:09 (History)


Attachments


Note

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


Description From 2006-06-20 13:53:33
Предлагается оторвать включение link_all_deplibs=no в libtool по умолчанию, ибо
иначе некоторые пакеты не собираются.

Нарвался на это на dbus:
Линковка выполняется такой командой:
/bin/sh ../../libtool --tag=CXX --mode=link x86_64-alt-linux-g++  -pipe -Wall
-O2   -o complexpong  complexpong.o ../src/libdbus-qt4-1.la -lnsl 

В случае с undefine __libtoolize приложение собирается:
x86_64-alt-linux-g++ -pipe -Wall -O2 -o .libs/complexpong complexpong.o 
../src/.libs/libdbus-qt4-1.so -L/usr/lib64/qt4/lib -L/usr/X11R6/lib64 -lQtXml
-lQtCore -lz -lpthread -ldl -lnsl

С libtool из Sisyphus не собирается:
x86_64-alt-linux-g++ -pipe -Wall -O2 -o .libs/complexpong complexpong.o 
../src/.libs/libdbus-qt4-1.so -lnsl

т.к. у нас всё-равно сейчас as-needed по умолчанию, то IMHO можно в libtool
включить линковку со всеми перечисленными библиотеками.
------- Comment #1 From 2006-06-20 13:57:58 -------
в KDE это тоже воспроизводится.
------- Comment #2 From 2006-06-20 15:03:56 -------
Если включить link_all_deplibs, то сломается много чего другого.
Мне даже пришлось сделать такое:
$ rpm --eval %configure |fgrep deplibs
  export lt_cv_deplibs_check_method=pass_all ; 
Иначе некоторые пакеты, где libtoolize недоступен, не собираются правильно.

Когда у вас эта ерунда появилась?
------- Comment #3 From 2006-06-20 15:14:40 -------
Я на это нарвался в dbus-0.62 (отправлен в Sisyphus только что с undefine
__libtoolize)

Зерг уже давным давно говорит так пакеты собирает.
------- Comment #4 From 2008-01-13 20:45:57 -------
Это ещё актуально?
------- Comment #5 From 2008-01-14 00:03:00 -------
Это надо проверить.

у dbus новый мантейнер.
------- Comment #6 From 2008-01-14 18:21:43 -------
(In reply to comment #4)
> Это ещё актуально?
C kde-3.5 еще актуально
------- Comment #7 From 2009-04-22 04:04:53 -------
Для libtool_1.5 не актуально, его менять уже поздно.
Для libtool_2.2 у планирую портировать из Debian включение link_all_deplibs=no
в GNU/Linux по умолчанию.
------- Comment #8 From 2009-04-23 01:02:17 -------
(In reply to comment #0)
> Предлагается оторвать включение link_all_deplibs=no в libtool по умолчанию, ибо
> иначе некоторые пакеты не собираются.
> 
> Нарвался на это на dbus:
> Линковка выполняется такой командой:
> /bin/sh ../../libtool --tag=CXX --mode=link x86_64-alt-linux-g++  -pipe -Wall
> -O2   -o complexpong  complexpong.o ../src/libdbus-qt4-1.la -lnsl 
> 
> В случае с undefine __libtoolize приложение собирается:
> x86_64-alt-linux-g++ -pipe -Wall -O2 -o .libs/complexpong complexpong.o 
> ../src/.libs/libdbus-qt4-1.so -L/usr/lib64/qt4/lib -L/usr/X11R6/lib64 -lQtXml
> -lQtCore -lz -lpthread -ldl -lnsl
> 
> С libtool из Sisyphus не собирается:
> x86_64-alt-linux-g++ -pipe -Wall -O2 -o .libs/complexpong complexpong.o 
> ../src/.libs/libdbus-qt4-1.so -lnsl

Это значит, что в каком-то Makefile.am в соответствущих переменных *_LDADD
перечислены не все необходимые библиотеки.

> т.к. у нас всё-равно сейчас as-needed по умолчанию, то IMHO можно в libtool
> включить линковку со всеми перечисленными библиотеками.

Да, но избыточная линковка в случае с kde, где до сих пор пакуются и
используются файлы вида %_libdir/lib*.la, приводит к избыточным сборочным
зависимостям.
------- Comment #9 From 2009-04-23 08:17:04 -------
А так ли страшны избыточные сборочные зависимости ?
------- Comment #10 From 2009-04-23 10:09:34 -------
Не страшны, но и не нужны.