3

我正在尝试编译 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
4

2 回答 2

3

显然cc在这台机器上不是链接到其他一些不理解 gcc 的扩展 asm 语法的gcc编译器( )。tcc

于 2013-03-21T16:22:19.530 回答
1

难道是错误消息的意思是“不支持汇编代码本身”,而不是asm()编译器功能不支持?换句话说,您正在为一些没有rdtsc指令的(半古代)处理器构建?

不过,错误之后的段错误有点可怕。

于 2013-03-21T14:07:09.913 回答