3

PHP xhprof 拡張機能をコンパイルしようとしています。あるサーバーでmakeは成功し、別のサーバーでは「inline asm() not supported」で失敗します。関連するコードは

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

1

エラーメッセージは、asm()コンパイラ機能がサポートされていないのではなく、「アセンブリコード自体がサポートされていません」という意味でしょうか? 言い換えれば、rdtsc命令を持たない(半古代の)プロセッサ用に構築していますか?

エラー直後のセグフォルトはちょっと怖いですけどね。

于 2013-03-21T14:07:09.913 に答える