FreeBSD でのクロスコンパイル 事始め2017年10月31日 13時53分52秒

最近、FreeBSD 上のクロスコンパイルに関する文章が少ない。i386 を常用しているが、amd64 限定の機能を試したくて、試行錯誤をしている。自身で、amd64 を i386 上でクロスコンパイルしたのは既に十年以上も前の事だった。

FreeBSD 上でのクロスコンパイルの記述が少ないので、少し見付けたことを順次残しておこうと思う。なお、クロスコンパイルとは動かしている機械とは異ったアーキテクチャのバイナリを作ること。FreeBSD でも長らくサポートされてはいるが、利用頻度は随分と低いようだ。

/usr/src/Makefile が一番の情報源の様だ。make targets でサポートされているアーキテクチャが表示される。

% 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 や sparc64 等のように、TARGET と TARGET_ARCH が一対の場合は、TARGET と TARGET_ARCH のどちらを指定しても補完してくれるようだ。一つのダーゲットであれば、TARGET_ARCH でしっかりと指定するか、TARGET_ARCH と TARGET の両方を指定しておけば、後々の混乱が少ないと思う。

以前は、amd64 を i386 上で構築して、そのままi386 を amd64 に入れ換える事をしている。あの後、そして今でも、結局 64 ビットをサポートしていない機械を使っているので、i386 のままになっている。

前回次回

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2017/10/31/8718307/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。