ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [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