Перемещение со старого сервера CentOS на более новый с той же версией GCC приводит к ошибке компиляции кода C, которого не было на старом сервере:
interp.c: In function `update_userec':
interp.c:1100: warning: implicit declaration of function `timerisset'
interp.c:1101: warning: implicit declaration of function `timercmp'
interp.c:1101: error: syntax error before '<' token
Код:
if ( !timerisset(&userec->min_time)
|| timercmp(time_used, &userec->min_time, <) )
{
Этот файл действительно имеет вверху файла:
#include <time.h>
gcc версия:
Reading specs from /usr/lib/gcc/x86_64-redhat-linux/3.4.6/specs
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-languages=c,c++,f77 --disable-libgcj --host=x86_64-redhat-linux
Thread model: posix
gcc version 3.4.6 20060404 (Red Hat 3.4.6-19.el6)
На справочной странице упоминается:
Требования к макрокоманде Feature Test для glibc (см. Feature_test_macros (7)):
All functions shown above:
Since glibc 2.19:
_DEFAULT_SOURCE
Glibc 2.19 and earlier:
_BSD_SOURCE
Но определение _DEFAULT_SOURCE
или _BSD_SOURCE
над строкой include
ничего не решает.