* [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