ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] Q: размер off_t в библиотеках и в приложении
@ 2004-08-26  3:08 Dmitry Lebkov
  2004-08-26  8:55 ` Dmitry V. Levin
  0 siblings, 1 reply; 2+ messages in thread
From: Dmitry Lebkov @ 2004-08-26  3:08 UTC (permalink / raw)
  To: devel

Доброго времени суток,

Наступил на неприятные грабли и не знаю, как их правильно
обойти. Пакет 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> за
    помощь в "разборках" с этими граблями ...


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

* Re: [devel] Q: размер off_t в библиотеках и в приложении
  2004-08-26  3:08 [devel] Q: размер off_t в библиотеках и в приложении Dmitry Lebkov
@ 2004-08-26  8:55 ` Dmitry V. Levin
  0 siblings, 0 replies; 2+ messages in thread
From: Dmitry V. Levin @ 2004-08-26  8:55 UTC (permalink / raw)
  To: ALT Devel discussion list

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

Hi,

On Thu, Aug 26, 2004 at 02:08:22PM +1100, Dmitry Lebkov wrote:
> Наступил на неприятные грабли и не знаю, как их правильно
> обойти. Пакет 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 получаем полный $%&#@*.

Разумеется.

> Вопрос: как _идеологически_верно_ обойти подобные грабли?

Либо использовать -D_FILE_OFFSET_BITS для компиляции всего, что общается с
файловой системой, либо не использовать.  Выборочное использование
чревато крупными неприятностями.

> В случае с maildrop я просто убрал вызов 'mysql_config --cflags'
> из configure, но меня терзают смутные сомнения ... %)

Тем самым вы как минимум убрали поддержку работы с >2G на 32-битных
платформах.

Рекомендую добавить в configure.ac всех библиотек AC_SYS_LARGEFILE.


-- 
ldv

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

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

end of thread, other threads:[~2004-08-26  8:55 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-08-26  3:08 [devel] Q: размер off_t в библиотеках и в приложении Dmitry Lebkov
2004-08-26  8:55 ` Dmitry V. Levin

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