From: pegacorn@... Date: 2003-02-16T12:17:29+09:00 Subject: [ruby-dev:19584] Re: target host type と RUBY_PLATFORM From: matz@ruby-lang.org (Yukihiro Matsumoto) Date: Sun, 16 Feb 2003 01:31:37 +0900 Message-Id: <1045325340.269091.15349.nullmailer@picachu.netlab.jp> /~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > In message "[ruby-dev:19580] Re: target host type と RUBY_PLATFORM" > on 03/02/16, pegacorn@jcom.home.ne.jp writes: > > |--target オプションを付けない場合は、target host type は > |build host type と同じになりますし、 > |RUBY_PLATFORM の値も i686-cygwin になっています。 > |ですから、gcc に -mcpu, -march オプションを付けないのは > |おかしいというか i386-cygwin ではなく i686-cygwin とする意味が > |ないのではないかと思ったのですが…、 > > おかしいのかなあ。プラットフォームが686だというから686として > いるだけなんですが。 おかしいかどうかは人それぞれ感じ方が違うでしょうから、 議論するつもりはありませんが、 プラットフォームはライブラリのロードにも影響しますから、 不便ですよね。 だから、1.8.0 では i386 に統一したのでは? > |ということは、ruby では、 > |target cpu に i486 以降を指定しても、 > |i386 用のコードしか生成しないということですね? > > Rubyのコンパイルには-mcpuや-marchを指定しませんから、お手元 > のgccの設定によります。コンパイラはgccだけじゃありませんし、 > -mcpuを指定しなければならないってのはx86上のgccに固有の条件 > ですよね。 cl(MS VC++)にも、/G3 〜 /G6 というのがあります。 まあ、ruby は i486 以降専用のコードは生成せず、 プラットフォーム名も i386-xxxx とするという方針であれば、 それはそれでかまいません。 P.S. 1.8.0 の mswin 版をメイクしてみる… あれ、mswin 版は /G6 が付いてる。 しかし、プラットフォーム名は i386-mswin32 だ… ---- 馬越 pegacorn@jcom.home.ne.jp