ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] Обновление glib2: первая кровь
@ 2008-03-05 16:19 Yury Aliaev
  2008-03-05 17:21 ` Yury Aliaev
  0 siblings, 1 reply; 5+ messages in thread
From: Yury Aliaev @ 2008-03-05 16:19 UTC (permalink / raw)
  To: ALT Linux Team development discussions

Всем доброго времени суток!

После обновления я словил ошибку, заключающуюся в том, что gnucash 
перестал пересобираться. Линкер вылетал с руганью на неопределённую 
ссылку. Интрига состояла в том, что файл, в котором находилась нужная 
функция (которую не мог найти линкер) оказалась в исходнике, входящем в 
состав библиотеки, в котором линкер не мог найти ссылку. После 
креативного вкуривания исходников я обнаружил следующую конструкцию:

G_INLINE_FUNC void mark_split (Split *s);

Это и была та самая функция, которая приводила к неразрешённой ссылке. Я 
убрал G_INLINE_FUNC, и -- о чудо! -- всё прекрасно стало собираться.

Честно говоря, я не стал копаться дальше и поэтому не уверен в 
правильности своих действий. Если кто-нибудь разбирается в вопросе лучше 
меня -- прошу покритиковать.

С уважением,
Юрий.


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

* Re: [devel] Обновление glib2: первая кровь
  2008-03-05 16:19 [devel] Обновление glib2: первая кровь Yury Aliaev
@ 2008-03-05 17:21 ` Yury Aliaev
  2008-03-05 19:16   ` Dmitry V. Levin
  2008-03-06  7:55   ` Alexey Rusakov
  0 siblings, 2 replies; 5+ messages in thread
From: Yury Aliaev @ 2008-03-05 17:21 UTC (permalink / raw)
  To: ALT Linux Team development discussions

Yury Aliaev пишет:
> Всем доброго времени суток!
> 
> После обновления я словил ошибку, заключающуюся в том, что gnucash 
> перестал пересобираться. Линкер вылетал с руганью на неопределённую 
> ссылку. Интрига состояла в том, что файл, в котором находилась нужная 
> функция (которую не мог найти линкер) оказалась в исходнике, входящем в 
> состав библиотеки, в котором линкер не мог найти ссылку. После 
> креативного вкуривания исходников я обнаружил следующую конструкцию:
> 
> G_INLINE_FUNC void mark_split (Split *s);
> 
> Это и была та самая функция, которая приводила к неразрешённой ссылке. Я 
> убрал G_INLINE_FUNC, и -- о чудо! -- всё прекрасно стало собираться.

Некоторые подробности вдогонку:

Упомянутая таким образом функция так была объявлена в заголовочном (*.h) 
файле. В самом же исходнике она была описана как

void mark_split (Split *s)

Также вдогонку пришла мысль, что нарушение сборки вызвано изменением не 
в glib2, а в gcc или ld.


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

* Re: [devel] Обновление glib2: первая кровь
  2008-03-05 17:21 ` Yury Aliaev
@ 2008-03-05 19:16   ` Dmitry V. Levin
  2008-03-06  9:50     ` Yury Aliaev
  2008-03-06  7:55   ` Alexey Rusakov
  1 sibling, 1 reply; 5+ messages in thread
From: Dmitry V. Levin @ 2008-03-05 19:16 UTC (permalink / raw)
  To: ALT Linux Team development discussions

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

On Wed, Mar 05, 2008 at 08:21:50PM +0300, Yury Aliaev wrote:
> Yury Aliaev пишет:
> >Всем доброго времени суток!
> >
> >После обновления я словил ошибку, заключающуюся в том, что gnucash 
> >перестал пересобираться. Линкер вылетал с руганью на неопределённую 
> >ссылку. Интрига состояла в том, что файл, в котором находилась нужная 
> >функция (которую не мог найти линкер) оказалась в исходнике, входящем в 
> >состав библиотеки, в котором линкер не мог найти ссылку. После 
> >креативного вкуривания исходников я обнаружил следующую конструкцию:
> >
> >G_INLINE_FUNC void mark_split (Split *s);
> >
> >Это и была та самая функция, которая приводила к неразрешённой ссылке. Я 
> >убрал G_INLINE_FUNC, и -- о чудо! -- всё прекрасно стало собираться.

Значит, определение G_INLINE_FUNC в пакете glib2-devel изменилось.

> Некоторые подробности вдогонку:
> 
> Упомянутая таким образом функция так была объявлена в заголовочном (*.h) 
> файле. В самом же исходнике она была описана как
> 
> void mark_split (Split *s)
> 
> Также вдогонку пришла мысль, что нарушение сборки вызвано изменением не 
> в glib2, а в gcc или ld.

Не надо начинать поиск причины ошибок с gcc или ld.  Даже если вы можете
их идентифицировать, подозревать gcc или ld имеет смысл далеко не в
первую очередь.


-- 
ldv

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

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

* Re: [devel] Обновление glib2: первая кровь
  2008-03-05 17:21 ` Yury Aliaev
  2008-03-05 19:16   ` Dmitry V. Levin
@ 2008-03-06  7:55   ` Alexey Rusakov
  1 sibling, 0 replies; 5+ messages in thread
From: Alexey Rusakov @ 2008-03-06  7:55 UTC (permalink / raw)
  To: devel

On Wed, 05 Mar 2008 20:21:50 +0300
Yury Aliaev wrote:

> Yury Aliaev пишет:
> > Всем доброго времени суток!
> > 
> > После обновления я словил ошибку, заключающуюся в том, что gnucash 
> > перестал пересобираться. Линкер вылетал с руганью на неопределённую 
> > ссылку. Интрига состояла в том, что файл, в котором находилась нужная 
> > функция (которую не мог найти линкер) оказалась в исходнике, входящем
> > в состав библиотеки, в котором линкер не мог найти ссылку. После 
> > креативного вкуривания исходников я обнаружил следующую конструкцию:
> > 
> > G_INLINE_FUNC void mark_split (Split *s);
> > 
> > Это и была та самая функция, которая приводила к неразрешённой ссылке.
> > Я убрал G_INLINE_FUNC, и -- о чудо! -- всё прекрасно стало собираться.
> 
> Некоторые подробности вдогонку:
> 
> Упомянутая таким образом функция так была объявлена в заголовочном (*.h) 
> файле. В самом же исходнике она была описана как
> 
> void mark_split (Split *s)
После предыдущего обновления glib2 вылезла аналогичная безалаберность в
рубиновых привязках. Если только иначе не сказано в документации,
сигнатуры функций должны совпадать с точностью до использования макросов.
Иначе при изменении определения макросов могут быть неприятности.

-- 
  Alexey "Ktirf" Rusakov
  Head of System development dept.
  ALT Linux Ltd.


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

* Re: [devel] Обновление glib2: первая кровь
  2008-03-05 19:16   ` Dmitry V. Levin
@ 2008-03-06  9:50     ` Yury Aliaev
  0 siblings, 0 replies; 5+ messages in thread
From: Yury Aliaev @ 2008-03-06  9:50 UTC (permalink / raw)
  To: ALT Linux Team development discussions

Dmitry V. Levin пишет:

>>
>> Также вдогонку пришла мысль, что нарушение сборки вызвано изменением не 
>> в glib2, а в gcc или ld.
> 
> Не надо начинать поиск причины ошибок с gcc или ld.  Даже если вы можете
> их идентифицировать, подозревать gcc или ld имеет смысл далеко не в
> первую очередь.

Я не говорю, что в gcc или ld появились ошибки. Не секрет, что от версии 
к версии они становятся всё более щепетильными к корректности кода (и 
обнаруживают большее количество потенциальных ошибок), и думал, что мой 
случай может явиться следствием подобных вещей.


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

end of thread, other threads:[~2008-03-06  9:50 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-03-05 16:19 [devel] Обновление glib2: первая кровь Yury Aliaev
2008-03-05 17:21 ` Yury Aliaev
2008-03-05 19:16   ` Dmitry V. Levin
2008-03-06  9:50     ` Yury Aliaev
2008-03-06  7:55   ` Alexey Rusakov

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