* [devel] Linkinkg problem
@ 2007-03-04 12:31 Evgenii Terechkov
2007-03-04 15:11 ` Damir Shayhutdinov
0 siblings, 1 reply; 10+ messages in thread
From: Evgenii Terechkov @ 2007-03-04 12:31 UTC (permalink / raw)
To: ALT Devel discussion list
Приветствую!
Вот возникла непонятная (для меня) проблема с линковкой:
Собрал audacious-1.3.0 (для чего пришлось собрать и libmcs) и
audacious-plugins-1.3.0 к нему. Всё вроде б/м работает. Но не собирается
то, ради чего всё и затевалось: audacious-imms (imms-3.1.0-rc1, поддержка
audacious экспериментальная). Всё оканчивается на стадий линковки
объектников, таким образом:
ccache gcc -pipe -Wall -O2 -march=pentium3 -mtune=pentium4 `pkg-config audacious --cflags` -I../clients/xmms/ -DAUDACIOUS -O3 -Wall -fPIC -D_REENTRANT -I../ -I../immscore -I../clients -c ../clients/bmp/bmpinterface.c -o audaciousinterface.o
ccache g++ -pipe -Wall -O2 -march=pentium3 -mtune=pentium4 -fno-rtti -O3 -Wall -fPIC -D_REENTRANT -I../ -I../immscore -I../clients -c ../clients/clientstubbase.cc -o clientstubbase.o
ccache g++ audaciousplugin2.o audaciousinterface.o clientstubbase.o libimmscore.a `pkg-config audacious glib --libs` -lglib \
-L. -lXss -lXext -lX11 -lpcre -lsqlite3 -lz -ltag -L/usr/X11R6/lib \
-shared -Wl,-z,defs,-soname,libaudaciousimms2.so -o libaudaciousimms2.so
audaciousinterface.o: In function `about':
bmpinterface.c:(.text+0x74): undefined reference to `xmms_show_message'
collect2: ld returned 1 exit status
make[1]: *** [libaudaciousimms2.so] Error 1
make: *** [all] Error 2
Я в смущений: на случай с --as-needed это вроде не похоже (все объектники
находятся до бибилиотек), нужный инклуд в bmpinterface.c присутствует
(зависит от -DAUDACIOUS), -laudacious тоже в наличий. Практически каждый из
плагинов пакета audacious-plugins успешно использует тот же самый
xmms_show_message (правда, почему-то, ни один не слинкован с
libaudacious.so). В чём фишка?
--
Терешков Евгений, ALT Linux Team.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [devel] Linkinkg problem
2007-03-04 12:31 [devel] Linkinkg problem Evgenii Terechkov
@ 2007-03-04 15:11 ` Damir Shayhutdinov
2007-03-04 15:46 ` Evgenii Terechkov
0 siblings, 1 reply; 10+ messages in thread
From: Damir Shayhutdinov @ 2007-03-04 15:11 UTC (permalink / raw)
To: ALT Devel discussion list
> ccache g++ audaciousplugin2.o audaciousinterface.o clientstubbase.o libimmscore.a `pkg-config audacious glib --libs` -lglib \
> -L. -lXss -lXext -lX11 -lpcre -lsqlite3 -lz -ltag -L/usr/X11R6/lib \
> -shared -Wl,-z,defs,-soname,libaudaciousimms2.so -o libaudaciousimms2.so
> audaciousinterface.o: In function `about':
> bmpinterface.c:(.text+0x74): undefined reference to `xmms_show_message'
> collect2: ld returned 1 exit status
> make[1]: *** [libaudaciousimms2.so] Error 1
> make: *** [all] Error 2
>
> Я в смущений: на случай с --as-needed это вроде не похоже (все объектники
> находятся до бибилиотек), нужный инклуд в bmpinterface.c присутствует
> (зависит от -DAUDACIOUS), -laudacious тоже в наличий. Практически каждый из
> плагинов пакета audacious-plugins успешно использует тот же самый
> xmms_show_message (правда, почему-то, ни один не слинкован с
> libaudacious.so). В чём фишка?
Hint: а в какой библиотеке находится символ xmms_show_message? Вот ее
то и надо добавить в линковку.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [devel] Linkinkg problem
2007-03-04 15:11 ` Damir Shayhutdinov
@ 2007-03-04 15:46 ` Evgenii Terechkov
2007-03-04 15:48 ` Andrey Rahmatullin
2007-03-04 15:51 ` Damir Shayhutdinov
0 siblings, 2 replies; 10+ messages in thread
From: Evgenii Terechkov @ 2007-03-04 15:46 UTC (permalink / raw)
To: ALT Devel discussion list
"Damir Shayhutdinov" пишет:
>> ccache g++ audaciousplugin2.o audaciousinterface.o clientstubbase.o libimmscore.a `pkg-config audacious glib --libs` -lglib \
>> -L. -lXss -lXext -lX11 -lpcre -lsqlite3 -lz -ltag -L/usr/X11R6/lib \
>> -shared -Wl,-z,defs,-soname,libaudaciousimms2.so -o libaudaciousimms2.so
>> audaciousinterface.o: In function `about':
>> bmpinterface.c:(.text+0x74): undefined reference to `xmms_show_message'
>> collect2: ld returned 1 exit status
>> make[1]: *** [libaudaciousimms2.so] Error 1
>> make: *** [all] Error 2
>>
>> Я в смущений: на случай с --as-needed это вроде не похоже (все объектники
>> находятся до бибилиотек), нужный инклуд в bmpinterface.c присутствует
>> (зависит от -DAUDACIOUS), -laudacious тоже в наличий. Практически каждый из
>> плагинов пакета audacious-plugins успешно использует тот же самый
>> xmms_show_message (правда, почему-то, ни один не слинкован с
>> libaudacious.so). В чём фишка?
> Hint: а в какой библиотеке находится символ xmms_show_message? Вот ее
> то и надо добавить в линковку.
Это я как бы в теорий тоже знаю. Но тут и начинается самое забавное:
~$ findsym xmms_show_message
/usr/lib/libxmms.so.1: 00009f39 T xmms_show_message
~$ R -qf /usr/lib/libxmms.so.1
libxmms-1.2.10-alt12
Это не то, что нам нужно.
~$ nm ~/RPM/BUILD/audacious-1.3.0/src/audacious/audacious G xmms_show_mess
0808c3fd T xmms_show_message
~$ strings /usr/bin/audacious G xmms_show_messa
xmms_show_message
~$ R -qa G audacio
libaudacious-devel-1.3.0-alt1
audacious-plugins-1.3.0-alt1
audacious-1.3.0-alt1
libaudacious-1.3.0-alt1
audacious-itouch-0.1.1-alt1
И как же с этим чудом линковать? Или это я так криво собрал это чудо?
Странно, audacious-plugins же собрались и работают.
--
Терешков Евгений, ALT Linux Team.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [devel] Linkinkg problem
2007-03-04 15:46 ` Evgenii Terechkov
@ 2007-03-04 15:48 ` Andrey Rahmatullin
2007-03-04 17:06 ` Evgenii Terechkov
2007-03-04 15:51 ` Damir Shayhutdinov
1 sibling, 1 reply; 10+ messages in thread
From: Andrey Rahmatullin @ 2007-03-04 15:48 UTC (permalink / raw)
To: devel
[-- Attachment #1: Type: text/plain, Size: 462 bytes --]
On Sun, Mar 04, 2007 at 10:46:02PM +0700, Evgenii Terechkov wrote:
> ~$ nm ~/RPM/BUILD/audacious-1.3.0/src/audacious/audacious G xmms_show_mess
> 0808c3fd T xmms_show_message
Там libxmms статически что ли?
--
WBR, wRAR (ALT Linux Team)
Powered by the ALT Linux fortune(8):
> Ну сколько можно?!
> Сизиф последний.
Это и есть ответ на Ваш вопрос. Сизиф в любой момент может стукнуть камнем
по голове. Лучше вешайте баги :)
-- mouse in sisyphus@
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [devel] Linkinkg problem
2007-03-04 15:46 ` Evgenii Terechkov
2007-03-04 15:48 ` Andrey Rahmatullin
@ 2007-03-04 15:51 ` Damir Shayhutdinov
2007-03-04 17:21 ` Evgenii Terechkov
1 sibling, 1 reply; 10+ messages in thread
From: Damir Shayhutdinov @ 2007-03-04 15:51 UTC (permalink / raw)
To: ALT Devel discussion list
> Это я как бы в теорий тоже знаю. Но тут и начинается самое забавное:
>
> ~$ findsym xmms_show_message
> /usr/lib/libxmms.so.1: 00009f39 T xmms_show_message
> ~$ R -qf /usr/lib/libxmms.so.1
> libxmms-1.2.10-alt12
>
> Это не то, что нам нужно.
>
> ~$ nm ~/RPM/BUILD/audacious-1.3.0/src/audacious/audacious G xmms_show_mess
> 0808c3fd T xmms_show_message
> ~$ strings /usr/bin/audacious G xmms_show_messa
> xmms_show_message
> ~$ R -qa G audacio
> libaudacious-devel-1.3.0-alt1
> audacious-plugins-1.3.0-alt1
> audacious-1.3.0-alt1
> libaudacious-1.3.0-alt1
> audacious-itouch-0.1.1-alt1
>
> И как же с этим чудом линковать? Или это я так криво собрал это чудо?
> Странно, audacious-plugins же собрались и работают.
Нужные символы находятся в бинарнике (видимо он статически слинкован с
libxmms).
С такой недолинкованной библиотекой в режиме --as-needed нельзя
линковаться. Попробуйте --no-as-needed, или надо audacious собирать с
динамической libxmms.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [devel] Linkinkg problem
2007-03-04 15:48 ` Andrey Rahmatullin
@ 2007-03-04 17:06 ` Evgenii Terechkov
0 siblings, 0 replies; 10+ messages in thread
From: Evgenii Terechkov @ 2007-03-04 17:06 UTC (permalink / raw)
To: ALT Devel discussion list
Andrey Rahmatullin пишет:
>> ~$ nm ~/RPM/BUILD/audacious-1.3.0/src/audacious/audacious G xmms_show_mess
>> 0808c3fd T xmms_show_message
> Там libxmms статически что ли?
Нет, почему же. Xmms у меня есть в системе, но он вообще не при делах. Тут
уместно напомнить, что audacious это форк форка форка и т.д... и там у
истока xmms. Просто символ так называется.
P.S.: см. также соседний ответ Дамиру.
--
Терешков Евгений, ALT Linux Team.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [devel] Linkinkg problem
2007-03-04 15:51 ` Damir Shayhutdinov
@ 2007-03-04 17:21 ` Evgenii Terechkov
2007-03-04 20:59 ` Dmitry V. Levin
0 siblings, 1 reply; 10+ messages in thread
From: Evgenii Terechkov @ 2007-03-04 17:21 UTC (permalink / raw)
To: ALT Devel discussion list
"Damir Shayhutdinov" пишет:
>> ~$ findsym xmms_show_message
>> /usr/lib/libxmms.so.1: 00009f39 T xmms_show_message
>> ~$ R -qf /usr/lib/libxmms.so.1
>> libxmms-1.2.10-alt12
>> Это не то, что нам нужно.
>> ~$ nm ~/RPM/BUILD/audacious-1.3.0/src/audacious/audacious G xmms_show_mess
>> 0808c3fd T xmms_show_message
>> ~$ strings /usr/bin/audacious G xmms_show_messa
>> xmms_show_message
>> ~$ R -qa G audacio
>> libaudacious-devel-1.3.0-alt1
>> audacious-plugins-1.3.0-alt1
>> audacious-1.3.0-alt1
>> libaudacious-1.3.0-alt1
>> audacious-itouch-0.1.1-alt1
>> И как же с этим чудом линковать? Или это я так криво собрал это чудо?
>> Странно, audacious-plugins же собрались и работают.
> Нужные символы находятся в бинарнике (видимо он статически слинкован с
> libxmms).
Видимо да, в бинарнике, или я ничего не понимаю. А вот предположение в
скобках неверно - у меня вообще нет пакета разработчика для xmms. Audacious
хоть и дальний потомок xmms, но проект совершенно независимый (хотя многие
куски кода и сохранились со времён xmms, в частности, вышеупомянутый
символ, xmms_show_message).
> С такой недолинкованной библиотекой в режиме --as-needed нельзя
> линковаться. Попробуйте --no-as-needed, или надо audacious собирать с
> динамической libxmms.
И вот тут я окончательно запутываюсь. Первое я попробовать могу. Но это
ведь не может дать никакого эффекта - как можно линковаться с бинарником?
Второе, в силу вышеизложенных причин, просто невозможно.
P.S.: я наверно совсем плохо вначале разьястнил, поэтому вкратце опишу: я
собираю пакет audacious-imms, который пытается собраться либо с
libxmms-devel, либо с libbmp-devel, либо с libaudacious-devel. Ни первого,
ни второго у меня нет. Спеки audacious, audacious-plugings, audacious-imms
получены из сизифных путём тривиальных (?) правок.
--
Терешков Евгений, ALT Linux Team.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [devel] Linkinkg problem
2007-03-04 17:21 ` Evgenii Terechkov
@ 2007-03-04 20:59 ` Dmitry V. Levin
2007-03-05 3:06 ` Evgenii Terechkov
0 siblings, 1 reply; 10+ messages in thread
From: Dmitry V. Levin @ 2007-03-04 20:59 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 1648 bytes --]
On Mon, Mar 05, 2007 at 12:21:52AM +0700, Evgenii Terechkov wrote:
> "Damir Shayhutdinov" пишет:
>
> >> ~$ findsym xmms_show_message
> >> /usr/lib/libxmms.so.1: 00009f39 T xmms_show_message
> >> ~$ R -qf /usr/lib/libxmms.so.1
> >> libxmms-1.2.10-alt12
> >> Это не то, что нам нужно.
> >> ~$ nm ~/RPM/BUILD/audacious-1.3.0/src/audacious/audacious G xmms_show_mess
> >> 0808c3fd T xmms_show_message
> >> ~$ strings /usr/bin/audacious G xmms_show_messa
> >> xmms_show_message
> >> ~$ R -qa G audacio
> >> libaudacious-devel-1.3.0-alt1
> >> audacious-plugins-1.3.0-alt1
> >> audacious-1.3.0-alt1
> >> libaudacious-1.3.0-alt1
> >> audacious-itouch-0.1.1-alt1
> >> И как же с этим чудом линковать? Или это я так криво собрал это чудо?
> >> Странно, audacious-plugins же собрались и работают.
> > Нужные символы находятся в бинарнике (видимо он статически слинкован с
> > libxmms).
>
> Видимо да, в бинарнике, или я ничего не понимаю. А вот предположение в
> скобках неверно - у меня вообще нет пакета разработчика для xmms. Audacious
> хоть и дальний потомок xmms, но проект совершенно независимый (хотя многие
> куски кода и сохранились со времён xmms, в частности, вышеупомянутый
> символ, xmms_show_message).
$ grep -w xmms_show_message def
libaudacious /usr/lib/libaudacious.so.4.0.0 T xmms_show_message
libbeep /usr/lib/libbeep.so.2.0.0 T xmms_show_message
libxmms /usr/lib/libxmms.so.1.3.1 T xmms_show_message
Т.е. символ xmms_show_message -- это функция, которая определена
в библиотеке (даже в нескольких родственных библиотеках).
Пока проблемы не видно.
--
ldv
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [devel] Linkinkg problem
2007-03-04 20:59 ` Dmitry V. Levin
@ 2007-03-05 3:06 ` Evgenii Terechkov
2007-03-05 14:22 ` Dmitry V. Levin
0 siblings, 1 reply; 10+ messages in thread
From: Evgenii Terechkov @ 2007-03-05 3:06 UTC (permalink / raw)
To: ALT Devel discussion list
"Dmitry V. Levin" пишет:
>> Видимо да, в бинарнике, или я ничего не понимаю. А вот предположение в
>> скобках неверно - у меня вообще нет пакета разработчика для xmms. Audacious
>> хоть и дальний потомок xmms, но проект совершенно независимый (хотя многие
>> куски кода и сохранились со времён xmms, в частности, вышеупомянутый
>> символ, xmms_show_message).
>
> $ grep -w xmms_show_message def
> libaudacious /usr/lib/libaudacious.so.4.0.0 T xmms_show_message
> libbeep /usr/lib/libbeep.so.2.0.0 T xmms_show_message
> libxmms /usr/lib/libxmms.so.1.3.1 T xmms_show_message
>
> Т.е. символ xmms_show_message -- это функция, которая определена
> в библиотеке (даже в нескольких родственных библиотеках).
Т.е. я криво собрал, что символ оказался не в бибилиотеке, а в бинарнике?
Буду фиксить, спасибо.
> Пока проблемы не видно.
Полегчало.
P.S.: А что такое за "def" ? Файл со списком символов?
--
Терешков Евгений, ALT Linux Team.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [devel] Linkinkg problem
2007-03-05 3:06 ` Evgenii Terechkov
@ 2007-03-05 14:22 ` Dmitry V. Levin
0 siblings, 0 replies; 10+ messages in thread
From: Dmitry V. Levin @ 2007-03-05 14:22 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 1172 bytes --]
On Mon, Mar 05, 2007 at 10:06:36AM +0700, Evgenii Terechkov wrote:
> "Dmitry V. Levin" пишет:
>
> >> Видимо да, в бинарнике, или я ничего не понимаю. А вот предположение в
> >> скобках неверно - у меня вообще нет пакета разработчика для xmms. Audacious
> >> хоть и дальний потомок xmms, но проект совершенно независимый (хотя многие
> >> куски кода и сохранились со времён xmms, в частности, вышеупомянутый
> >> символ, xmms_show_message).
> >
> > $ grep -w xmms_show_message def
> > libaudacious /usr/lib/libaudacious.so.4.0.0 T xmms_show_message
> > libbeep /usr/lib/libbeep.so.2.0.0 T xmms_show_message
> > libxmms /usr/lib/libxmms.so.1.3.1 T xmms_show_message
> >
> > Т.е. символ xmms_show_message -- это функция, которая определена
> > в библиотеке (даже в нескольких родственных библиотеках).
>
> Т.е. я криво собрал, что символ оказался не в бибилиотеке, а в бинарнике?
> Буду фиксить, спасибо.
>
> > Пока проблемы не видно.
>
> Полегчало.
>
> P.S.: А что такое за "def" ? Файл со списком символов?
Это файл со списком определённых символов, побочный продукт работы
bad_elf_symbols.
--
ldv
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2007-03-05 14:22 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-03-04 12:31 [devel] Linkinkg problem Evgenii Terechkov
2007-03-04 15:11 ` Damir Shayhutdinov
2007-03-04 15:46 ` Evgenii Terechkov
2007-03-04 15:48 ` Andrey Rahmatullin
2007-03-04 17:06 ` Evgenii Terechkov
2007-03-04 15:51 ` Damir Shayhutdinov
2007-03-04 17:21 ` Evgenii Terechkov
2007-03-04 20:59 ` Dmitry V. Levin
2007-03-05 3:06 ` Evgenii Terechkov
2007-03-05 14:22 ` Dmitry V. Levin
ALT Linux Team development discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
public-inbox-index devel
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.devel
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git