2016-11-25 13 views
1

Есть ли способ для Autotools протестировать заданную функцию, устаревшую в GNU libc?autoconf: обнаружение устаревших функций (в Glibc)

Я использовал AC_CHECK_FUNCS (readdir_r), чтобы проверить, имеет ли система readdir_r() или нет. Но теперь, поскольку GNU Libc 2.24, readdir_r() устарел, я бы хотел использовать readdir() в этой системе.

Есть ли у autoconf макрос для проверки функции дачи устарел или нет? Если нет, каков наилучший способ справиться с этим?

Я знаю, что новый GCC с -Wdeprecated-declarations печатает предупреждение. Но я ищу, чтобы найти устаревшую функцию во время настройки, чтобы вместо этого использовать рекомендуемую функцию.

ответ

1

Не легко, потому что AC_CHECK_FUNCS проверяет, доступна ли функция во время соединения. Вы могли бы использовать attribute.m4 (как поставляется, скажем, systemd), используйте CC_CHECK_WERROR, CC_CHECK_FLAGS_APPEND с -Wdeprecated-declarations, а затем используйте AC_COMPILE_IFELSE, чтобы выяснить, скомпилировано ли все это.