[devel] Обновление glib2: первая кровь

Alexey Rusakov =?iso-8859-1?q?ktirf_=CE=C1_altlinux=2Eru?=
Чт Мар 6 10:55:07 MSK 2008


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.



Подробная информация о списке рассылки Devel