Bug 9713

Summary: link_all_deplibs && as-needed
Product: Sisyphus Reporter: Anton Farygin <rider>
Component: libtool_2.4Assignee: placeholder <placeholder>
Status: NEW --- QA Contact: qa-sisyphus
Severity: normal    
Priority: P2 CC: avm, evg, glebfm, grenka, ldv, placeholder, rider, sbolshakov, shrek, zerg
Version: unstable   
Hardware: all   
OS: Linux   

Description Anton Farygin 2006-06-20 13:53:33 MSD
Предлагается оторвать включение 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 Anton Farygin 2006-06-20 13:57:58 MSD
в KDE это тоже воспроизводится.
Comment 2 Dmitry V. Levin 2006-06-20 15:03:56 MSD
Если включить link_all_deplibs, то сломается много чего другого.
Мне даже пришлось сделать такое:
$ rpm --eval %configure |fgrep deplibs
  export lt_cv_deplibs_check_method=pass_all ; 
Иначе некоторые пакеты, где libtoolize недоступен, не собираются правильно.

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

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

у dbus новый мантейнер.
Comment 6 Sergey V Turchin 2008-01-14 18:21:43 MSK
(In reply to comment #4)
> Это ещё актуально?
C kde-3.5 еще актуально
Comment 7 Dmitry V. Levin 2009-04-22 04:04:53 MSD
Для libtool_1.5 не актуально, его менять уже поздно.
Для libtool_2.2 у планирую портировать из Debian включение link_all_deplibs=no в GNU/Linux по умолчанию.
Comment 8 Dmitry V. Levin 2009-04-23 01:02:17 MSD
(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 Anton Farygin 2009-04-23 08:17:04 MSD
А так ли страшны избыточные сборочные зависимости ?
Comment 10 Mikhail Gusarov 2009-04-23 10:09:34 MSD
Не страшны, но и не нужны.
Comment 11 Grigory Ustinov 2018-08-03 17:59:36 MSK
Перевешиваю на существующий компонент. libtool_2.2 больше нет.