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

[debian-users:45702] Re: クロスコンパイル環境の構築について



山本です。

早速、有難う御座います。


Junichi Uekawa wrote:

>>ここで第一の質問ですが、セルフコンパイル時には #include <limits.h> でエ
>>ラーが出ないのに
>>クロスコンパイル時にはエラーが出るのでしょうか?
>>何か powerpc-linux-gcc のコンパイル時に include/linux ディレクトリを特別
>>に指定するような
>>ことが有るのでしょうか?
>>
>>そこで、まず、/usr/powerpc/include/limits.h ヘッダファイルに
>>/usr/powerpc/include/linux/limits.h
>>ヘッダファイルをマージして「おちゅ〜しゃ」を buildpackage してみました
>>が、やはり PATH_MAX
>>の未定義エラーが出ました。
>>これは #ifndef および #endif を外したものもマージして試し、同じエラーが
>>出ることを確認しております。
>>また、デフォルトの設定で問題ないはずですが、一応、/etc/dpkg-cross/cross-
>>compile ファイルに
>>crossinc = /usr/powerpc/incrude の行を追加しても変化は有りませんでした。
>>    
>>
>
>おそらくなんらかのバグだと思います.cppコマンドなどで確認していただく
>とわかると思いますが,limits.hのincludeはかなり複雑です.limits.hをgcc
>とglibcがそれぞれ提供していて,かつ最終的にはkernelの提供する
>bits/limits.hに到達する必要があります.
>
>どこでひっかかっているのか,/usr/powerpc/bin/powerpc-linux-cpp コマン
>ドで確認してはいかがでしょうか.
>  
>

早速、同じようなソースで $ /usr/powerpc/bin/powerpc-linux-cpp a.c >
a-result をやってみました。
---------- a.c
//a.c
#include <limits.h>
main()
{
printf("%i\n", 4096);
}

---------- a-result
# 1 "a.c"
# 1 "<built-in>"
# 1 "<command line>"
# 1 "a.c"
# 1 "/usr/powerpc/lib/gcc-lib/powerpc-linux/3.3.3/include/limits.h" 1 3 4
# 2 "a.c" 2
main()
{
printf("%i\n", 4096);
}

----------b.c
//b.c
#include <linux/limits.h>
main()
{
printf("%i\n", 4096);
}

----------b-result
# 1 "b.c"
# 1 "<built-in>"
# 1 "<command line>"
# 1 "b.c"
# 1 "/usr/powerpc/powerpc-linux/include/linux/limits.h" 1 3
# 2 "b.c" 2
main()
{
printf("%i\n", 4096);
}

----------
i386 セルフコンパイル用の cpp と比べ、全く読み込んでいないようです。
debian/rules の書き換えが必要ですかね?


----------
yama1066@xxxxxxxxxxxxxxx