STL vector の事、BMP PNG JPEG

色々動くようになって、では、そろそろ自分フレームワークをコンパイルしようかと思い、進めてみたものの、基本的部分が動かない・・

調べると、STL vector が死ぬ!

こんな簡単なプログラムを作ると、死んでしまう・・・

std::vector pad;

pad.push_back(1); // ---> 死ぬ!

又、

pad.resize(10); // ---> 死ぬ!

一方、

std::vector pad(10);

とかで、初期化段階でサイズを指定すると、使える。

基本的に、KPIT v10.02 の C++ ライブラリーにバグがあるとしか思えないが、こんな基本的なとこで死ぬのはおかしい??
多分、vector のアロケーターに SH2 で不味いコードが含まれているのだと思われるが、KPITのソースコードをダウンロードして不具合を見つけるのは、ちょっと骨が折れるので、とりあえず放置状態であるが、一応、KPIT にバグレポートを送った。

gcc のツールチェインを自分で構築してみようか・・
※時間と手間がかかるので余りやりたくない。

-----
そんで、vector が動かないと自分のフレームワークも全滅と思うが、画像操作系など、コンパイルだけはしてみた。

それに先だって、基本のライブラリー、Z、PNG、JPEG ライブラリーをソースコードからコンパイルして、ライブラリーを作ってみた。
この手の汎用ライブラリーは、configure によって開発環境の状態を取りこむのだが、クロス環境で自動で行うには、configureを改造する必要がある為、手作業で作ってみた。

それで、jpeg ライブラリーを使って純粋に C のコードで簡単な読み込みを書いて、テストしてみた。
SH-2AにはFPUが入っているハズだが、思った程高速では無い・・・
FPUを使う為におまじないが必要なのかもしれない・・

見た目では分からないけどJPEG画像を表示させてみたー

アーカイブにライブラリーなどをアップしておく。
PNG はテストしていないが、動くと思う。
※BMP のデコードは C++ のコードなので、vector 待ちです。

しかし、vector が使えないのは痛すぎる!