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

Re: GCC 3.4のクロス環境を作りたいのですが



MAMAO2 <mamao2@xxxxxxxxx> wrote:
> gcc 3.4ではarm系の浮動小数点の処理が早くなっているとかで、
> 試すべく環境作りをしているのですが、詰まってしまいました。
[snip]
> gcc-3.4は
> ../configure --prefix=/opt/Embedix/tools/arm-linux --target=arm-linux --with-cpu=xscale --enable-shared --enable-languages="c,c++"
> として
> make CC=gcc CFLAGS="-O2" CFLAGS_FOR_TARGET="-O3 -mcpu=xscale -Wa,-mfpu=fpa"
> でコンパイルした所、URL先の記事の示すとおりにエラーが出ました。
> そこでelf.hにパッチを当ててコンパイルしたところ、そこは通過したのですが、
> 
> In file included from ./gthr-default.h:1,
>                  from ../../gcc/gthr.h:96,
>                  from ../../gcc/unwind-dw2.c:42:
> ../../gcc/gthr-posix.h:43:21: pthread.h: No such file or directory
> ../../gcc/gthr-posix.h:44:20: unistd.h: No such file or directory
[snip]
> というようなエラーが出てしまいます。
> 確かにincludeディレクトリにpthread.hは無いのですが、
> これは無いのが正しいのでしょうか?

linux をターゲットにして cross の gcc を作る場合ターゲット用の
header ファイルを用意しないとこのタイプのエラーにぶつかります。
ただ header を用意してもこのあと libgcc_s.so ライブラリを作る
ところで今度はターゲット用の libc などが必要になります。
ターゲット用の include や lib の中身が用意できるなら cross の
gcc がそれをみるようにすれば良いのですが、この場合だと
/opt/Embedix/tools/arm-linux/include
/opt/Embedix/tools/arm-linux/lib
にそれらをおけばいいはずです。 linux-zaurus 用の元々の cross の
開発環境が install されていればそこに必要なものがそろっていると
思うのでおそらくそれが install されていないマシンでクロス環境を
構築されているのだと想像しています。

本当に何もないところからはじめるのなら Dan Kegel の crosstool
  http://www.kegel.com/crosstool/
がおすすめです。 arm で gcc-3.4 だと development snapshot が
必要かもしれません。
# 私はこれがやることをじっとみていると大変勉強になると思いました。

--
ML: linux-zaurus@xxxxxxxxxxx
使い方: http://QuickML.com/