・gcc-3.3.2 のこと
ここしばらく悩んでいるのだけど、Plamo-4.0 で採用している gcc-3.3.2 は、-mi386 とか -arch=i386 とかのオプションを付けても、コンパイルした環境に準じたマシンコードを生成する模様。手もとの開発マシンは Athlon なんだけど、どうもこの上でコンパイルした
バイナリには Pentium/Pentium MMX/K6 クラスのマシンでは対応していないマシンコードが
含まれるようで、K6 等の環境で実行しようとすると "illegal instruction" とかダンマリ状態になってしまう。
# 一応、コンパイル時には -m386 等のオプションはつけて、386 用に生成しているつもりなのだが、、
昔は K6 とかのマシンも持っていたのだけど、マザーボードを交換して使っているうちに、
いつのまにか手もとの最低スペックのマシンは Celeron 566MHz クラスになってしまって、K6 や Pentium MMX なマシンで生じる問題が把握できなかったのはちと油断だったなぁ。
でも、正直な話、SATA みたいな新しいハードにも対応しつつ、K6 とかの古いマシンにも対応するというのはリソース的にも困難なので、ある程度切捨てが生じるのは仕方ないかなぁ、、とも思うところ。とりあえず PC98 は切り捨てたのだけど、Pentium クラスは何とか対応したいとは思っているが。。。
-http://www.mirror5.com/software/libc/FAQ.html#s-1.18 `-mcpu=i386' とするとよいのでしょうかね? -- [[kaji]] SIZE(10){2004-06-18 (金) 11:28:52}
#comment