QNX 용 NTP를 크로스 컴파일 할 때 문제가 발생했습니다. 나는 그것을 교착 상태로 추적했다. 리눅스는이 교착 상태로 실행되지 않는 이유ntp 4.2.8p10 - configure 스크립트에서 신호 입출력을 비활성화하십시오.
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
내가 궁금해하며() QNX의 recvmsg()에서 명시 적으로 not signal handler safe로 표시되는 동안 signal handler safe 간주되는 recvmsg을 밝혀 : 기본적으로 무슨 일입니다.
내 질문 : NTP를 구축 할 때 신호가있는 I/O를 수동으로 비활성화하는 옵션을 구성 스크립트에 전달할 수 있습니까? 나는 NTP의 미래 버전으로 쉽게 업그레이드 할 수 있도록 소스 코드를 수동으로 편집하고 싶지 않습니다. 다른 방법이 없다면 #define은 결과로 나오는 config.h 스크립트에서 신호 처리 된 I/O를 사용하지 않도록 설정해야합니까?
QNX에 대한 지원을 추가하기 위해 NTP Repo에 기여할 방법을 찾고 싶지만, 현재이 사람들은 파악하기가 어렵습니다.
귀하의 도움과 지원에 감사드립니다.