我正在尝试编译PHP xhprof扩展。在一台服务器上,make
成功,在另一台服务器上失败并且“不支持内联asm()”。
相关代码是
asm volatile("rdtsc" : "=a" (__a), "=d" (__d));
两台服务器都运行具有类似配置的Debian。
问题:我要丢失哪些软件包或哪些软件包版本应该在服务器之间进行比较以启用内联asm?
供参考make输出
/bin/sh /usr/local/src/xhprof/extension/libtool --mode=compile cc -I. -I/usr/local/src/xhprof/extension -DPHP_ATOM_INC -I/usr/local/src/xhprof/extension/include -I/usr/local/src/xhprof/extension/main -I/usr/local/src/xhprof/extension -I/usr/include/php5 -I/usr/include/php5/main -I/usr/include/php5/TSRM -I/usr/include/php5/Zend -I/usr/include/php5/ext -I/usr/include/php5/ext/date/lib -DHAVE_CONFIG_H -g -c /usr/local/src/xhprof/extension/xhprof.c -o xhprof.lo
libtool: compile: cc -I. -I/usr/local/src/xhprof/extension -DPHP_ATOM_INC -I/usr/local/src/xhprof/extension/include -I/usr/local/src/xhprof/extension/main -I/usr/local/src/xhprof/extension -I/usr/include/php5 -I/usr/include/php5/main -I/usr/include/php5/TSRM -I/usr/include/php5/Zend -I/usr/include/php5/ext -I/usr/include/php5/ext/date/lib -DHAVE_CONFIG_H -g -c /usr/local/src/xhprof/extension/xhprof.c -DPIC -o .libs/xhprof.o
/usr/local/src/xhprof/extension/xhprof.c:1224: inline asm() not supported
/usr/local/src/xhprof/extension/libtool: line 1111: 23098 Segmentation fault cc -I. -I/usr/local/src/xhprof/extension -DPHP_ATOM_INC -I/usr/local/src/xhprof/extension/include -I/usr/local/src/xhprof/extension/main -I/usr/local/src/xhprof/extension -I/usr/include/php5 -I/usr/include/php5/main -I/usr/include/php5/TSRM -I/usr/include/php5/Zend -I/usr/include/php5/ext -I/usr/include/php5/ext/date/lib -DHAVE_CONFIG_H -g -c /usr/local/src/xhprof/extension/xhprof.c -DPIC -o .libs/xhprof.o
make: *** [xhprof.lo] Error 1
答案 0 :(得分:3)
此计算机上显然cc
不是指向gcc
的链接,而是指向不了解gcc扩展asm语法的其他编译器(tcc
)的链接。
答案 1 :(得分:1)
错误消息是否意味着“不支持汇编代码本身”,而不是asm()
编译器功能不支持?换句话说,你是为一些没有rdtsc
指令的(半古代)处理器构建的?
错误之后的seg错误有点可怕。