首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ntp 4.2.8p10 -从配置脚本禁用信号I/O

ntp 4.2.8p10 -从配置脚本禁用信号I/O
EN

Stack Overflow用户
提问于 2017-10-23 17:47:00
回答 1查看 66关注 0票数 0

我在为QNX交叉编译NTP时遇到了一个问题。我把它追溯到僵局。从本质上讲,所发生的是:

代码语言:javascript
复制
t0 - clock_select() calls realloc()
t1 - realloc() locks the heap
t2 - signal handler is called
t3 - inside sig handler recvmsg() is called
t4 - recvmsg() calls malloc()
t5 - malloc() tries to lock the heap
DEADLOCK

我想知道为什么Linux没有遇到这种死锁,结果是recvmsg()被认为是信号处理程序安全,而在QNX中,recvmsg()被显式地列为非信号处理程序安全

我的问题:是否可以将选项传递给配置脚本,以便在构建NTP时手动禁用已发出信号的I/O?我真的不想手动编辑源代码,以便更容易地升级到NTP的未来版本。如果没有其他方法,那么在生成的config.h脚本中,应该禁用哪个#定义不使用带有信号的I/O?

我希望找到一种方式,为NTP回购增加对QNX的支持,但就目前而言,这些家伙是很难得到的。

谢谢大家的帮助和支持!

EN

回答 1

Stack Overflow用户

发布于 2017-10-25 14:34:44

我们通过将以下config.cache值输入到配置脚本来关闭ntpd中的信号i/o,从而解决了这个问题。

代码语言:javascript
复制
ntp_cv_hdr_def_sigio=${ntp_cv_hdr_def_sigio=no} 
ntp_cv_hdr_def_sigpoll=${ntp_cv_hdr_def_sigpoll=no}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46895490

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档