[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: cross compile



筒井です。

<37352D94.77F7@ibm.net>の記事において
mgoto@ibm.netさんは書きました。

>  i386 なマシンで /usr/src にソ−スを展開して、/usr/src.i386
> または /usr/src.macppc を union mount してコンパイルしています。

単一のソースディレクトリから複数の arch のバイナリを作る場合は
make obj を使うとよいと思います。

/etc/mk.conf に
USR_OBJMACHINE=yes
OBJMACHINE=yes
を書いて
/usr/obj.i386
/usr/obj.macppc
等のディレクトリを作成して(シンボリックリンクでも可)、
/usr/src 以下で make obj してから make all すると
バイナリは/usr/obj.{machine} 以下のディレクトリに作成されます。

ソースを /usr/src 以外に展開している場合は BSDSRCDIR を
セットしておけばよかったと思います。
詳しくは /usr/share/bsd.obj.mk を見て下さい。

>  i386 セルフでは問題ありませんし、macppc クロスでも libc 以外
> のディレクトリはうまくいきます。(よりによって libc とは)

うちでも時間ができたら pkg の cross でどうなるか試してみます。
(今は昔作った gcc-2.8.1 と binutils-2.9.1 から作った cross しかないので)

<199905091036.TAA13873@solid.mech.kyushu-u.ac.jp>の記事において
aono@mech.kyushu-u.ac.jpさんは書きました。

> machine/cpu.h:106: warning: pointer of type `void *' used in arithmetic
> machine/cpu.h:111: warning: pointer of type `void *' used in arithmetic
> *** Error code 1
> 
> Stop.

本質的には /sys/arch/ofppc/include/cpu.h の syncicache() を
macppc/include/cpu.h のものと同じように書き換えるのが正しい
対処ですが、暫定的には kernel の Makefile の CWARNSFLAGS から
-Wpointer-arith を取ってしまえば一応進むはずです。

>   vmunix: ELF 32-bit MSB executable, Fujitsu VPP500, version 1

ELF なのでそのままかわりに NetBSD の kernel を置いても
読んでくれそうなので、 boot 後は別のディスクを用意するか
nfs root を使うか、ってとこでしょうか。
---
Izumi Tsutsui
tsutsui@ceres.dti.ne.jp