Vine Linux バグトラッキングシステム - Vine Linux
課題の詳細を表示
0002684Vine Linux1 バグ公開2013-11-06 11:452013-11-09 17:07
shuei 
yasumichi 
毎回 
完了修正不要 
VineSeed 
 
x86_64
gcc-4.8.2-1vl7 binutils-2.23.2-1vl7
0002684: gccに最適化オプションを付けるとgasがエラーを出す
x86_64環境でgcc 4.8.1 + binutils 2.22からgcc 4.8.2 + binutils 2.23に更新したところ、に最適化オプションを付けてコンパイルするとgasが以下のようなエラーを出すようになりました:

==== ここから ====
% gcc -O -c sum.c
tmp/ccDJfS3s.s: Assembler messages:
/tmp/ccDJfS3s.s:17: Error: expecting string instruction after `rep'
==== ここまで ====

sum.cは以下のようなソースコードです:
==== ここから ====
int sum(int n)
{
   int sum = 0;
   int i;
   for (i=1; i<=n; i++) {
      sum += i;
   }
   return sum;
}
==== ここまで ====

-O1/-O2/-O3でも同様のエラーが出ます。i686環境だとアセンブラはエラーを出しません。
gcc 4.8.1と4.8.2のアセンブラ出力を比べると、今まで "rep; ret" だったのが "rep ret" になったのが原因のようです。
設定されていません。
課題の履歴
2013-11-06 11:45shuei新規課題
2013-11-09 16:02shueiコメント追加: 0008308
2013-11-09 17:07yasumichiコメント追加: 0008309
2013-11-09 17:07yasumichi状態新規 => 完了
2013-11-09 17:07yasumichi担当者 => yasumichi
2013-11-09 17:07yasumichi解決状況不明 => 修正不要

コメント
(0008308)
shuei   
2013-11-09 16:02   
お騒がせしました。解決しました。

原因はbinutils 2.22のasやldが/binにインストールされていて、binutils-2.23.2-vl7のasが使われていませんでした。野良インストールされていたbinutilsを削除したら正常にコンパイルできるようになりました。

御手数ですが状態を解決済にしていただけないでしょうか。
よろしくお願いします
(0008309)
yasumichi   
2013-11-09 17:07   
修正不要として完了にします。