とぴやまのブログ(アーカイブ)

元はてなダイアリー

2種類のマルチプラットフォーム対応バイナリフォーマット

一週間空きそうなので穴埋めエントリ。覚え書きです。

Mach-O (Mach Object) file format

wikipedia:Mach-O

http://pcweb.mycom.co.jp/articles/2005/06/20/nextmac/
■今、「IntelMac」についてわかること - ユニバーサルバイナリを検証する

各CPUアーキテクチャ毎にコンパイルして、リンカでそれらをくっつけているらしいのだが、中身がどうなっているかが書かれていなかったのでもう少し調べてみたら、CPUアーキテクチャ毎にセグメント分けをしてるだけなのね。

http://developer.apple.com/documentation/DeveloperTools/Conceptual/MachORuntime/index.html
Mach-O File Format Reference

CEF (Common Executable Format)

マルチプラットフォーム対応バイナリとして、ふと思い出したのは、Windows CE 3.0 の時に発表された CEF (Common Executable Format)。 インストール時に中間コードをネイティブコードに変換するという方法でマルチプラットフォーム対応を謳った。結局 4アーキテクチャ分 (ARM,SH3,SH4,MIPS) のファイルをビルドして配布している人が殆どだった。

この当時、俺的 Windows CE 熱は高かったけど、最近触ってないなぁ・・・

http://www.microsoft.com/japan/windows/embedded/ce/developer/applications/appdevelopment/cef2.asp
■eMbedded Visual C++用Common Executable Format ホワイトペーパー

http://blogs.msdn.com/mikehall/archive/2004/11/28/271339.aspx
■Remember CEF [Common Executable Format] ? Mikehall's Embedded WebLog
↑ I remember !!