Mona/C++の例外とRTTI/05.バイナリサイズ問題


Mona/C++の例外とRTTI

概要

対処案

大きく分けて、バイナリサイズを減らすという比較的その場しのぎの方針と、ブートシーケンスを改善するという根本的解決に向けての2つの方針がある。現在進めているのは前者、ただ近い内にもう一度サイズ問題が出る可能性はあるため、後者についても多少のメモを書いておく

(第1案)バイナリサイズを減らす←当面これで!

なんとかする部分

結論から言うと、当面はmonaのビルド用にパッチ済みのbinutilsをこちらで提供しつつ、binutils本家で動きのあるPE-COFF用--gc-sections取り込みを後押しすることにする。将来的にはLTOへ移行することになるだろう。以下は事情の解説

当面あまり気にしなくていい他の部分

Mona側への変更

(第2案)ブートシーケンスを変更する

より根本的な解決策。カーネル等のサイズが今以上に大きくなっても対応可能。これにも大まかに言って2つのやり方がある

  1. 自前で32bitのメモリを使えるブートローダを用意する
    • protected modeで必要なFSへのアクセスを行うリッチな物や、
    • unreal modeでBIOSを使ってディスクを読みつつ32bitのアドレス空間を使える物が考えられる
  2. いっそGRUBのような他のブートローダに丸投げする
    • 特別に思い入れの無い身としては、既にmonaはブートローダどころのものではない、と言って外部のものを使うのでもあまり問題を感じない。ただ昔からやってる人からすればそう簡単な話ではないのかも

これらの方向へ踏み出す決心が付かないまま再びサイズ制限の壁へ出くわした場合、美しくはないが別に場当たり的な方法があり得る。

その他

newは例外を投げるか投げないか

ツッコミがある場合↓

最新の10件を表示しています。 コメントページを参照

  • GRUB ありだと思います。特に感情面での障害はありません。自分が GRUB を知らないので後回しにしている感じです。 -- ひげぽん 2011-10-05 (水) 15:26:51
  • OK、ではバイナリサイズ削る場当たりで当座をしのいだ上でそっちの路線も考える -- ななしさん? 2011-10-05 (水) 15:33:23
お名前:

MENU

now: 6

リンク


最新の20件
2018-10-07 2018-09-20 2018-09-03 2018-05-09 2017-09-29 2017-01-10 2016-12-11 2016-10-04 2016-08-14 2016-05-29 2015-12-28 2013-02-25 2013-02-21 2013-02-20 2013-02-12 2013-02-11 2013-02-10
最新の20件
2010-02-01 2010-01-31 2010-01-30 2010-01-29 2010-01-16

Counter: 1473, today: 1, yesterday: 0

リロード   新規 編集 凍結 差分 添付 複製 改名   トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS

Last-modified: 2011-10-05 (水) 15:33:23 (2599d);  Modified by mona
PukiWiki 1.4.6 Copyright © 2001-2005 PukiWiki Developers Team. License is GPL.
Based on "PukiWiki" 1.3 by yu-ji
Powered by PHP 5.2.17
HTML convert time to 0.039 sec.