Привет всем!<br><br>Сейчас занимаюсь сборкой Celestia 1.4.1 из различных исходников под текущий Сизиф с (нестандартным для ALT Linux) интерфейсом glut. Во время сборки получаю ошибку примерно следующего содержания:<br><br>
make[3]: Entering directory `/home/eugine/my/celestia/workplace/src/cel3ds'<br>if g++ -DHAVE_CONFIG_H -I. -I. -I../.. -I.. -Wnon-virtual-dtor -Wno-long-long -Wundef -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -Wchar-subscripts -Wall -W -Wpointer-arith -Wwrite-strings -DNDEBUG -DNO_DEBUG -O2 -Wformat-security -Wmissing-format-attribute -fno-exceptions -fno-check-new -fno-common -O2 -Wall -ffast-math -fexpensive-optimizations -fomit-frame-pointer -MT
3dsread.o -MD -MP -MF ".deps/3dsread.Tpo" \<br> -c -o 3dsread.o `test -f '3dsread.cpp' || echo './'`3dsread.cpp; \<br> then mv -f ".deps/3dsread.Tpo" ".deps/3dsread.Po"; \<br> else rm -f ".deps/3dsread.Tpo"; exit 1; \
<br> fi<br>In file included from ../celutil/bytes.h:15,<br> from 3dsread.cpp:15:<br>../../config.h:256: error: declaration of C function `long unsigned int strlcat(char*, const char*, long unsigned int)' conflicts with
<br>/usr/include/string.h:360: error: previous declaration `size_t strlcat(char*, const char*, size_t)' here<br>../../config.h:268: error: declaration of C function `long unsigned int strlcpy(char*, const char*, long unsigned int)' conflicts with
<br>/usr/include/string.h:368: error: previous declaration `size_t strlcpy(char*, const char*, size_t)' here<br><br>Как я понял, суть в конфликте типов при определении прототипов для функций strlcat и strlcpy. Однако, сама проблема не в исходниках celestia, так как эти прототипы определяются в
<a href="http://config.h.in">config.h.in</a>, который генерируется autoheader версии 2.59 из пакета autoconf-common-0.2-alt1.<br><br>То есть, как я понял, проблема решается, если в сгенерированном <a href="http://config.h.in">
config.h.in</a> вручную определить параметры HAVE_STRCAT_PROTO (стока 128) и HAVE_STRLCPY_PROTO (строка 134), тогда, судя по всему, при компиляции берутся системные прототипы. Однако, перезапуск autoheader восстанавливает неправильную ситуацию.
<br><br>Вопрос первый: это баг или фича? И если баг, то чей -- celestia, autoconf или конфигурации системы? Если фича -- то что нужно сделать не так?<br><br>Вопрос второй: почему эта ошибка не проявляется при стандартной сборке с интерфейсом kde?
<br><br>В дополнение:<br><br>1. Ошибка возникает при компиляции свежей версии из CVS, официального выпуска 1.4.1 и альтовского варианта 1.4.1<br><br>2. На Gentoo сборка официального выпуска 1.4.1 проходит успешно (других вариантов не пробовал), что и заставляет подозревать проблемы в дистрибутиве, а не в приложении. К сожалению, не могу сейчас посмотреть версию autoheader и сгенерированный
<a href="http://config.h.in">config.h.in</a> в Gentoo. Попробую это сделать позже, когда доберусь до домашнего компа.<br>