我正在尝试从 i686-pc-linux-gnu 为 armv7-unknown-nto-qnx 交叉编译 NTP。
到目前为止,我已经建立了以下命令:
CC=/opt/qnx660/host/linux/x86/usr/bin/qcc LD=/opt/qnx660/host/linux/x86/usr/bin/ntoarmv7-ld CFLAGS="-static -Vgcc_ntoarmv7le" ../configure --host=armv7-unknown-nto-qnx --build=i686-pc-linux-gnu --prefix=$(pwd)/output --with-yielding-select=yes
这似乎让我大部分时间都在那里。但是,编译器最终会抛出../../../sntp/libevent/signal.c:255:17: error: 'SA_RESTART' undeclared (first use in this function)
. 在这个和所有其他 SA_RESTART 实例中,配置定义的常量 HAVE_SIGACTION ifdef 会排除问题代码。查看 config.log,我发现了这个:
configure:24569: checking for sigaction
17307configure:24569: /opt/qnx660/host/linux/x86/usr/bin/qcc -std=gnu99 -std=gnu99 -o conftest -static -Vgcc_ntoarmv7le conftest.c -lsocket >&5
17308configure:24569: $? = 0
17309configure:24569: result: yes
我认为这是一个误报。
我正在寻找一种通过进一步指定我的环境来纠正 ./configure 测试的方法,或者一种指定测试结果的方法。
我知道我可以在自动测试后修改 config.h,但这不是我的应用程序的有效解决方案。