On Mon, Sep 01, 2008 at 08:31:36PM +0400, Alexey Gladkov wrote: > Andrey Rahmatullin wrote: > >On Mon, Sep 01, 2008 at 06:10:24PM +0400, Alexey Gladkov wrote: > >>470-#ifdef _GNU_SOURCE > >А определяется он где? > > До include и ifdef _GNU_SOURCE. > > Проверим: > > $ cat z.sh > #!/bin/sh > cd /usr/src/RPM/BUILD/php5-source > cpp \ > -Iext/posix/ -I$PWD/ext/posix/ -DPHP_ATOM_INC \ > -I$PWD/include -I$PWD/main -I$PWD -I/usr/include/libxml2 \ > -I$PWD/ext/date/lib -I$PWD/TSRM -I$PWD/Zend -I/usr/include \ > ext/posix/posix.c > > $ ./z.sh >/dev/null > ext/posix/posix.c:40:2: error: #error Aaaaaa!!!! > > $ grep -n -B1 -A2 '^#error' ext/posix/posix.c > 39-#ifdef _GNU_SOURCE > 40:#error Aaaaaa!!!! > 41-#include > 42-#endif > > Вывод: _GNU_SOURCE явно не достаточно. > Или я что-то упустил ? В файле ext/posix/posix.c тот заголовочный файл, который (в конечном итоге) включает php_config.h (который определяет _GNU_SOURCE), включается слишком поздно: к этому времени features.h уже обработан. Можно в этом ext/posix/posix.c заменить проверку _GNU_SOURCE на проверку __USE_GNU, но, возможно, из-за неправильного включения заголовочных файлов могут случиться и другие неприятности. -- ldv