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

Re: cross compile



Izumi Tsutsui <tsutsui@ceres.dti.ne.jp> writes:
> ・CPP はほんとは /usr/bin/cpp みたいな sh script を用意しないと
>   いけないのかもしれない
>   http://www.jp.netbsd.org/ja/JP/ml/port-hpcmips-ja/200004/msg00089.html

libc/sys/Makefile.incのように${CPP}を直接起動している部分がありますが、
ここで、ホストマシンとターゲットマシンのpre-defineが異なっていて問題が発
生する場合があります。

昔経験したのは、確か、ホストマシンがNetBSD/i386 1.4でターゲットマシンが
hpcmipsでした。

mipsのヘッダファイルでは、"__NO_LEADING_UNDERSCORES__"というシンボルが定
義されていないとグローバルシンボルの先頭にアンダスコアが付加されてしまう
のですが、i386の/usr/bin/cppから起動される/usr/libexec/cppではそんなシン
ボルは定義されていません。そのため、ホストマシンの/usr/bin/cppを使って作っ
たライブラリ(libc)とuserlandのプログラムをリンクするとグローバルシンボル
が一致しないために正常にリンクできませんでした。

篠原