FreeBSD でのクロスコンパイル 事始め ― 2017年10月31日 13時53分52秒
最近、FreeBSD 上のクロスコンパイルに関する文章が少ない。i386 を常用しているが、amd64 限定の機能を試したくて、試行錯誤をしている。自身で、amd64 を i386 上でクロスコンパイルしたのは既に十年以上も前の事だった。
FreeBSD 上でのクロスコンパイルの記述が少ないので、少し見付けたことを順次残しておこうと思う。なお、クロスコンパイルとは動かしている機械とは異ったアーキテクチャのバイナリを作ること。FreeBSD でも長らくサポートされてはいるが、利用頻度は随分と低いようだ。
/usr/src/Makefile が一番の情報源の様だ。make targets でサポートされているアーキテクチャが表示される。
amd64 や sparc64 等のように、TARGET と TARGET_ARCH が一対の場合は、TARGET と TARGET_ARCH のどちらを指定しても補完してくれるようだ。一つのダーゲットであれば、TARGET_ARCH でしっかりと指定するか、TARGET_ARCH と TARGET の両方を指定しておけば、後々の混乱が少ないと思う。
% make targets
Supported TARGET/TARGET_ARCH pairs for world and kernel targets
amd64/amd64
arm/arm
arm/armeb
arm/armv6
arm64/aarch64
i386/i386
mips/mipsel
mips/mips
mips/mips64el
mips/mips64
mips/mipsn32
pc98/i386
powerpc/powerpc
powerpc/powerpc64
sparc64/sparc64
以前は、amd64 を i386 上で構築して、そのままi386 を amd64 に入れ換える事をしている。あの後、そして今でも、結局 64 ビットをサポートしていない機械を使っているので、i386 のままになっている。
最近のコメント