在GNU libc中是否有一种方法可以让Autotools测试给定的函数?
我一直在使用AC_CHECK_FUNCS(readdir_r)来测试系统是否有readdir_r()
。但是现在,由于GNU Libc 2.24,readdir_r()
已被弃用,我想在这些系统上使用readdir()
。
autoconf是否有用于测试给定函数的宏是否已弃用?如果没有,处理这个问题的最佳方法是什么?
我知道有-Wdeprecated-declarations
的新GCC会打印警告。但我正在寻找的是在配置时找到弃用的功能,以便我可以使用推荐的功能。
答案 0 :(得分:1)
不容易,因为AC_CHECK_FUNCS
检查该功能在链接时是否可用。你可以做的是使用attribute.m4
(比如systemd一起提供),使用CC_CHECK_WERROR
,CC_CHECK_FLAGS_APPEND
和-Wdeprecated-declarations
,然后使用AC_COMPILE_IFELSE
来弄清楚整件事是否汇编。