パスワードを忘れた? アカウント作成
737591 journal

BAKの日記: クロスコンパイラ

日記 by BAK

なんか「おともだち」が一気に2人も増えたようである. クロス開発の話が好評なのかな. というわけで,も少し書いてみよう.

が,それほど持ちネタはないので,すぐにネタ切れ起こすかもしれんが.

ARM や MIPS の楽しそうなマシン・ボードがあって,まだ誰もそのマシンに Linux を載せていない場合,クロス開発環境が必要となる. というわけで,まずはクロスコンパイラについて.

必要となるのは,最低限,

  1. gcc
    いわずと知れた GNU Compiler Collection である
  2. binutils
    アセンブラ・リンカ・オブジェクト変換ツールなど
  3. glibc
    libc ライブラリ. 標準的なライブラリ関数・システムコールへのラッパなど.

の 3 つである. これらはまとめて toolchain と呼ばれることもあるようだ. ちなみに,linux カーネルのコンパイルだけならば,glibc は不要.

一番簡単なのは,既にコンパイル済みの toolchain を get すること. ARM と MIPS については,x86 母艦用のパッケージが準備されているので,これらを使うのが手っ取り早いだろう.

が,何かの都合で自分で toolchain を build したい場合,gcc と glibc が鶏と卵の関係にあるので,困ったことになる. が,それを何とか誤魔化して突破する方法は確立されている. 少なくともARM の場合MIPS の場合は,ドキュメントにまとまっている.

具体的な手順はこれらのドキュメントを参照してもらうこととして,大雑把な手順を以下にまとめてみる.

binutils のコンパイル・インストール
binutils の場合は,confiugure で target に arm とか mips とか指定するだけで make することができる.

gcc の中途半端版を作成
C コンパイラだけの中途半端な gcc を build する.

linux カーネル include ヘッダファイル
linux カーネルを get し,linux/Makefile の ARCH := の部分を target のアーキテクチャ名に書き換えて,make (menu)config と make dep を実行する.

glibc のコンパイル・インストール
この段階でやっと glibc を構築することができる.

gcc の本格的なコンパイル・インストール
glibc があるので,ここで本格的な gcc をコンパイルし,インストールする.

typodupeerror

192.168.0.1は、私が使っている IPアドレスですので勝手に使わないでください --- ある通りすがり

読み込み中...