gcc をバージョンアップ
ふと思いついて、BeOS 版開発環境の gcc を新しいのに入れ替えてみることにしました。
BeBits にある gcc-2.95.3-beos-070218です。 以前にもそれを考えたことがあったんですが、BeOS 環境が 1 つしかなく、その環境の構築にも苦労していたので、入れ替えて問題があって元に戻せなかったら嫌だなあという思いがあって実行していなかったのでした。今回、VMware Player の仮想マシンで BeOS の開発をできる環境ができたので、すぐに元に戻せるという気楽さからやってみました。 入れ替え自体は README に書かれているとおりで簡単にできたのですが、それで CoveredCalc を make して実行すると Segment Violation になりました。 最適化を OFF にするとこの問題は発生しません。それで、このページを見たところ、どうやら、 ・Be コンパイラは、自動的に生成された関数を、それが使われているところのオブジェクトファイルに入れる。これは gcc でいうところの multiple symbol spaces。 ・このバージョンの gcc は最適化が OFF のときのみ multiple symbol spaces を使う。 ・古いコンパイラでは dynamic_cast などで生成される typeinfo-functions が使っているオブジェクトファイルに入っていたが、このバージョンでは最適化時に single symbol space を使うので‥‥。 ・(※私の英語読解力が低いのでよくわからないが)、Beライブラリが持ってる BDirectWindow-typeinfo-function が変なので困ると。 それで、この gcc にはなんか対処は入ってるみたいなんですが、それでも CoveredCalc は落ちているわけで、ためしに multiple symbol spaces を強制してみました。(コンパイルオプションに -fmultiple-symbol-spaces を追加) すると落ちなくなりました。ばんざーい。 で、実際にこっちの gcc を使うかどうかについてはまだ悩むなぁ。
by hironytic
| 2008-05-05 11:18
| 近況
|
検索
カテゴリ
以前の記事
2009年 12月
2009年 11月 2009年 10月 2009年 09月 2009年 04月 2009年 01月 2008年 11月 2008年 09月 2008年 08月 2008年 07月 2008年 05月 2008年 03月 2008年 02月 2008年 01月 2007年 12月 2007年 11月 2007年 09月 2007年 06月 2007年 05月 2007年 04月 2007年 03月 2007年 02月 2007年 01月 2006年 12月 2006年 11月 2006年 10月 2006年 09月 2006年 05月 2006年 04月 2006年 03月 2006年 01月 2005年 12月 2005年 11月 2005年 10月 2005年 09月 2005年 08月 2005年 07月 2005年 06月 2005年 05月 2005年 04月 2005年 03月 2005年 02月 2005年 01月 2004年 12月 2004年 11月 2004年 10月 2004年 09月 2004年 08月 2004年 05月 2004年 04月 2004年 03月 最新のトラックバック
関連リンク
その他のジャンル
ファン
記事ランキング
ブログジャンル
画像一覧
|
ファン申請 |
||