スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Linux zaurus cross compiler for Mac OS X

Mac OS XでLinux zaurus crossメモ

クロスコンパイラを作らないことには始まらない!
ということで、大変でした。
書いてあることをそのままやって成功しないという、
本当に成功している人が居るのか疑問に思うことが多々。
最初、既存のライブラリを使わずに一から作ろうと思ったんですが、失敗しました。

しかし、コンパイラの互換性問題って大変ですね(苦笑)

ちなみにこのテキストはgcc 2.95.2をターゲットにしています。

■1
 rpm2cpioで取り出したincludeやライブラリをファイルを$(prefix)に入れる。
/usr系は使わない方が良いと思います。デフォルトの/usr/localなども。
失敗する場合などを考慮して新しい場所を用意しましょう。

■2
 GNUのsedを使う事(通常はbsd系が入ってます)
これはMac OS Xでは地味に失敗するので気をつけたいところです。

binutils 2.17は避ける事(最新版は互換性に若干問題があるようです)
これも地味に失敗するようです。
自分は2.15を使いました。

■3
 $(prefix)/arm-linux/bin/
にincludeのリンクを張ること。
これは、-Bオプションで指定された所から
includeを読み込むための措置です。
これについては他に方法があるのかもしれない。
(specsファイルとかが鍵なような気がしますが…)

■4
 パッチを当てる。
www.emucamp.com/boukichi/gcc_linuxzaurus.diff
libioに問題が…。
ストリームを扱うところがstructとEOF(int型)と混同するので、
定義をストリームのstructな型からlong系の型に。

■5
 specsファイルをセルフ開発環境などからコピーしてくる。
場所は最初、$(prefix)/arm-linux/bin/に、
次に、make installでコピーされるものを
arm-linux-gcc -vで調べて上書き。
ここらへんは違う方法ができるんじゃないかと思うんですが…。

■6
 これでHello,worldがコンパイル可能、実機で動作するようになれば、
完了です。
 うちでは、次にgcc3のコンパイル&インストールです。
ある程度のパッチ(試行錯誤したので)が当たっているかもしれませんが、
--disable-sharedのみでどうにか行きました。

■7
 実機でプログラムを動かすとき、libgcc.soが無いと言われます。
これは、-static-libgccオプションをつけることで解決します。
C++では若干問題がでるとか?
libgccは制限条項付きGPLであってリンク自由なので問題ないようです。
スポンサーサイト

コメント

非公開コメント

プロフィール

BouKiCHi

Author:BouKiCHi
ABOUT ME
MAIL:alf_byncyou at hotmail.com

WEB:http://clogging.web.fc2.com/
TWITTER:@bkc_alf

月別アーカイブ

FC2カウンター

ブロとも申請フォーム

ブログ内検索

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。