ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] libglade
@ 2004-01-04  0:09 Peter V. Saveliev
  2004-01-04 12:43 ` Peter V. Saveliev
  2004-01-04 13:10 ` Peter V. Saveliev
  0 siblings, 2 replies; 7+ messages in thread
From: Peter V. Saveliev @ 2004-01-04  0:09 UTC (permalink / raw)
  To: devel

...

В общем, решил задать вопрос сюда.

Есть libglade, есть программа, использующая её. Описание UI цепляется из
xml через glade_xml_new(). И вот, если в *.glade-файле используются
отсылки к кустарным callback'ам, то получаю что-то вроде:

libglade-WARNING **: could not find signal handler 'some_signal_handler_func'.

Обкурившись гуглем, нашёл, что использование -export-dynamic то ли не
помогает, то ли я его не там использую; впрочем, он и так присутствует при
сборке, бо проект создан by anjuta как "LibGlade 2.0 project".

Вопросы же вот в чём:

1) есть ли здесь ещё люди, которые занимаются libglade? как у них?

2) не могу чётко сформулировать эту проблему, опыта катастрофически не
хватает. Может ли кто из опытных девелоперов помочь? Кажется, что пёс
зарыт в этом: "Note that the function can not be static, since we require
it to apear in the symbol table." (из док по libglade) Не про меня ли это?
Есть ли где доходчивая дока по этим самым статическим и нестатическим
функциям и особенностям их использования с gcc?

3) нет ли какой alt-specific гайки, которая может влиять в данном случае?


-- 
Sincerely, Peter V. Saveliev

E-mail: peet@altlinux.ru
Jabber: peet@jabber.ru


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [devel] libglade
  2004-01-04  0:09 [devel] libglade Peter V. Saveliev
@ 2004-01-04 12:43 ` Peter V. Saveliev
  2004-01-04 13:10 ` Peter V. Saveliev
  1 sibling, 0 replies; 7+ messages in thread
From: Peter V. Saveliev @ 2004-01-04 12:43 UTC (permalink / raw)
  To: ALT Devel discussion list

On Sun, 4 Jan 2004 03:09:24 +0300
"Peter V. Saveliev" <peet@altlinux.ru> wrote:

<skip /> 
> 3) нет ли какой alt-specific гайки, которая может влиять в данном случае?
<skip /> 

Попробовал на RHEL, та же петрушка. То есть, это предположение неверно,
что не может не радовать. Копаю дальше...

-- 
Sincerely, Peter V. Saveliev

E-mail: peet@altlinux.ru
Jabber: peet@jabber.ru


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [devel] libglade
  2004-01-04  0:09 [devel] libglade Peter V. Saveliev
  2004-01-04 12:43 ` Peter V. Saveliev
@ 2004-01-04 13:10 ` Peter V. Saveliev
  2004-01-04 14:17   ` Dmitry V. Levin
  1 sibling, 1 reply; 7+ messages in thread
From: Peter V. Saveliev @ 2004-01-04 13:10 UTC (permalink / raw)
  To: ALT Devel discussion list

...

Нарыл. Если использовать g++, то происходят описанные события. Если же cc -
то всё работает номально. Без изменения кода.

Может кто-либо прокомментировать это явление, кроме как "c++ сосёт"?

-- 
Sincerely, Peter V. Saveliev

E-mail: peet@altlinux.ru
Jabber: peet@jabber.ru


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [devel] libglade
  2004-01-04 13:10 ` Peter V. Saveliev
@ 2004-01-04 14:17   ` Dmitry V. Levin
  2004-01-04 15:01     ` Sergey Vlasov
  0 siblings, 1 reply; 7+ messages in thread
From: Dmitry V. Levin @ 2004-01-04 14:17 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 482 bytes --]

On Sun, Jan 04, 2004 at 04:10:51PM +0300, Peter V. Saveliev wrote:
> Нарыл. Если использовать g++, то происходят описанные события. Если же cc -
> то всё работает номально. Без изменения кода.
> 
> Может кто-либо прокомментировать это явление, кроме как "c++ сосёт"?

Разве что "libglade сосёт".

Попробуйте сделать ваш custom callback C-функцией, т.е. extern "C".
Если после этого с использованием g++ заработает, то libglade надо править
на тему поддержки demangling'а.


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [devel] libglade
  2004-01-04 14:17   ` Dmitry V. Levin
@ 2004-01-04 15:01     ` Sergey Vlasov
  2004-01-04 16:44       ` Dmitry V. Levin
  2004-01-04 19:41       ` Peter V. Saveliev
  0 siblings, 2 replies; 7+ messages in thread
From: Sergey Vlasov @ 2004-01-04 15:01 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 1039 bytes --]

On Sun, Jan 04, 2004 at 05:17:44PM +0300, Dmitry V. Levin wrote:
> On Sun, Jan 04, 2004 at 04:10:51PM +0300, Peter V. Saveliev wrote:
> > Нарыл. Если использовать g++, то происходят описанные события. Если же cc -
> > то всё работает номально. Без изменения кода.
> > 
> > Может кто-либо прокомментировать это явление, кроме как "c++ сосёт"?

Вы пытаетесь компилировать исходник на C компилятором C++?
Бесполезное занятие, надо использовать соответствующий компилятор и
правильно расставлять extern "C" для связи кусков на C и C++.

> Разве что "libglade сосёт".
> 
> Попробуйте сделать ваш custom callback C-функцией, т.е. extern "C".
> Если после этого с использованием g++ заработает, то libglade надо править
> на тему поддержки demangling'а.

А надо ли?  Вроде бы в общем случае extern "C" может менять даже
calling convention, поэтому с точки зрения стандарта C++ отсутствие
extern "C" там, где надо - ошибка.

Кроме того, тут как раз не demangling, а поиск по имени, причём с
неизвестной сигнатурой - т.е. вообще нерешаемая задача.

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [devel] libglade
  2004-01-04 15:01     ` Sergey Vlasov
@ 2004-01-04 16:44       ` Dmitry V. Levin
  2004-01-04 19:41       ` Peter V. Saveliev
  1 sibling, 0 replies; 7+ messages in thread
From: Dmitry V. Levin @ 2004-01-04 16:44 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 1293 bytes --]

On Sun, Jan 04, 2004 at 06:01:51PM +0300, Sergey Vlasov wrote:
> On Sun, Jan 04, 2004 at 05:17:44PM +0300, Dmitry V. Levin wrote:
> > On Sun, Jan 04, 2004 at 04:10:51PM +0300, Peter V. Saveliev wrote:
> > > Нарыл. Если использовать g++, то происходят описанные события. Если же cc -
> > > то всё работает номально. Без изменения кода.
> > > 
> > > Может кто-либо прокомментировать это явление, кроме как "c++ сосёт"?
> 
> Вы пытаетесь компилировать исходник на C компилятором C++?
> Бесполезное занятие, надо использовать соответствующий компилятор и
> правильно расставлять extern "C" для связи кусков на C и C++.
> 
> > Разве что "libglade сосёт".
> > 
> > Попробуйте сделать ваш custom callback C-функцией, т.е. extern "C".
> > Если после этого с использованием g++ заработает, то libglade надо править
> > на тему поддержки demangling'а.
> 
> А надо ли?  Вроде бы в общем случае extern "C" может менять даже
> calling convention, поэтому с точки зрения стандарта C++ отсутствие
> extern "C" там, где надо - ошибка.
> 
> Кроме того, тут как раз не demangling, а поиск по имени, причём с
> неизвестной сигнатурой - т.е. вообще нерешаемая задача.

По имени можно вычислить сигнатуру.
Только, действительно, надо ли?
Если по дизайну libglade'а не положено, то, наверное, нет смысла.


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [devel] libglade
  2004-01-04 15:01     ` Sergey Vlasov
  2004-01-04 16:44       ` Dmitry V. Levin
@ 2004-01-04 19:41       ` Peter V. Saveliev
  1 sibling, 0 replies; 7+ messages in thread
From: Peter V. Saveliev @ 2004-01-04 19:41 UTC (permalink / raw)
  To: ALT Devel discussion list

On Sun, 4 Jan 2004 18:01:51 +0300
Sergey Vlasov <vsu@altlinux.ru> wrote:

<skip /> 
> Вы пытаетесь компилировать исходник на C компилятором C++?
> Бесполезное занятие, надо использовать соответствующий компилятор и
> правильно расставлять extern "C" для связи кусков на C и C++.

Тот кусок, который собираю, можно назвать С, но я точно знаю, что С++ там
появится через неделю. Поэтому изначально собирал g++, чтобы потом ничего
не менять. Идея попробовать cc пришла инсайтом.

> 
> > Разве что "libglade сосёт".
> > 
> > Попробуйте сделать ваш custom callback C-функцией, т.е. extern "C".
> > Если после этого с использованием g++ заработает, то libglade надо править
> > на тему поддержки demangling'а.
> 
> А надо ли?  Вроде бы в общем случае extern "C" может менять даже
> calling convention, поэтому с точки зрения стандарта C++ отсутствие
> extern "C" там, где надо - ошибка.
> 
> Кроме того, тут как раз не demangling, а поиск по имени, причём с
> неизвестной сигнатурой - т.е. вообще нерешаемая задача.
> 

Огромное спасибо, читаю info:/gccint. Директива extern "C" {} помогла, всё
собирается и работает нормально.

-- 
Sincerely, Peter V. Saveliev

E-mail: peet@altlinux.ru
Jabber: peet@jabber.ru


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2004-01-04 19:41 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-01-04  0:09 [devel] libglade Peter V. Saveliev
2004-01-04 12:43 ` Peter V. Saveliev
2004-01-04 13:10 ` Peter V. Saveliev
2004-01-04 14:17   ` Dmitry V. Levin
2004-01-04 15:01     ` Sergey Vlasov
2004-01-04 16:44       ` Dmitry V. Levin
2004-01-04 19:41       ` Peter V. Saveliev

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