[devel] Q: размер off_t в библиотеках и в приложении
Dmitry Lebkov
=?iso-8859-1?q?dima_=CE=C1_sakhalin=2Eru?=
Чт Авг 26 07:08:22 MSD 2004
Доброго времени суток,
Наступил на неприятные грабли и не знаю, как их правильно
обойти. Пакет maildrop-1.7.0. В source tree входят несколько
библиотек и, собственно, сам maildrop. Каждый компонент
имеет собственный configure-скрипты. Проблема в следующем:
при сборке бинарника maildrop с поддержкой MySQL, для
инициализации переменной CPPFLAGS, используются
'mysql_config --cflags'.
$ mysql_config --cflags
-I/usr/include/mysql -pipe -march=i586 -mcpu=i686 \
-fomit-frame-pointer \
-D_FILE_OFFSET_BITS=64 \
-DHAVE_ERRNO_AS_DEFINE \
-DONE_THREAD
При сборке сопутствующих библиотек эти флаги игнорируются.
В итоге, из за '-D_FILE_OFFSET_BITS=64' получаем различный
размер типа off_t в самом приложении (8 байт) и в библиотеках
(4 байта). При вызове функций, использующих параметры типа
off_t получаем полный $%&#@*.
Вопрос: как _идеологически_верно_ обойти подобные грабли?
В случае с maildrop я просто убрал вызов 'mysql_config --cflags'
из configure, но меня терзают смутные сомнения ... %)
--
WBR, Dmitry Lebkov
PS. Отдельное спасибо Alexey Morozov <morozov на altlinux.org> за
помощь в "разборках" с этими граблями ...
Подробная информация о списке рассылки Devel