[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