2010/06/22

ながいながい仮想マシンの話(4)の巻

ながいながいぢゃなくってLowLevelな仮想マシンいじりの最後は、clangでHaikuのGUIアプリをビルドしてみます。
サンプルには、BeOS R5 Sample CodeからTextEditorを選びました。
まずは、Makefileの書き換えといきたいところですが、r37178でのmakefile-engineの変更のせいか、添付のMakefileをいじってもうまく動かないので、簡易なMakefileを作成してみました。
CC=clang
#CC=gcc
NAME= TextEditor
SRCS= textwindow.cpp textworld.cpp
LIBS= -lroot -lbe -ltracker -lsupc++
CFLAGS=-O3

all:
$(CC) $(CFLAGS) -o$(NAME) $(SRCS) $(LIBS)
まずはmake
textwindow.cppで、BFile関係でエラーが出るので、BFile.hを追加します。
#include <Application.h>
#include <File.h>
#include <Messenger.h>

修正後、再びmake
無事に出来ました!!

いくつかのアプリで試してみましたが、静的クラスを使う物は、__cxa_atexit()のリンクエラーが出てうまくビルド出来ませんでした。これはたぶんシステムで__cxa_atexit()がサポートされるまでは直らないと思いますが、仮にTiltOSのパッチから__cxa_atexit()を抜き出して使う手もあるかもしれません。(!!未確認!!)

Haiku全体をclangでビルドできるようになるまではまだまだ時間がかかりそうですが、今後に期待ですね。

0 件のコメント:

コメントを投稿