[Armadillo:02586] atmark-distのコンパイルエラーについて

Tooru Yoshida email@hidden
2008年 1月 9日 (水) 21:58:44 JST


吉田と申します。

コンパイル方法等が誤っているかもしれませんが、
私が行った結果を報告します。

現在、Armadillo-220を使い、GPSを使ったシステムを開発しようと
考えています。
そこで、最新のatmark-distならびにクロス環境をダウンロードし、
deb から rpmへ変換後、クロスコンパイルを実行し、user配下に
GPS関連のドライバ/デーモンを追加しようとしています。
使っているディストリビューションは Vine-4.2です。
また、Firmwareも最新の状態に変更しています。

尚、この情報はrpm環境のもので、debの場合については不明です。

1. 共通
  1) config.archのVENDOR_CFLAGSが/usr/arm-linuxとなっている
     これは、/usr/arm-linux-gnuに変更する必要がありました。
  2) make allが正常に動作しない
       make CROSS_COMPILE=arm-linux-gnu- CC=arm-linux-gnu-gcc-4.1 \
       GCC=arm-linux-gnu-gcc-4.1 GXX=arm-linux-gnu-g++-4.1 \
       CXX=arm-linux-gnu-g++-4.1 CPP=arm-linux-gnu-cpp-4.1
    として、GCC/CC等を変更する必要がありました。

2. Kernel
  1) CROSS_COMPILEがarm-linuxとなっているため、gccが見つからず
     エラーとなるほか、arm-linux-gccとなるため、コンパイルできません。
     従って、KernelソースのMakefile上のCROSS_COMPILE=arm-linux
     をarm-linux-gnu-とし、CCを$(CROSS)gccから$(CROSS)gcc-4.1と
     する必要がありました。
  2) 以前はNANDのドライバが標準で設定されていましたが、最新の
     Firmware/Kernelでは設定されていないため、NANDを使うことが
     できませんので、Kernelのconfig修正が必要です。

3. uClibc
  libc/inetでコンパイルエラーとなります。
  これは、KernelヘッダとuClibcのヘッダがコンフリクトするためです。
  uClibc/include/kernel_types.hを変更する必要がありそうです。
     typedef unsigned short                __kernel_dev_t;
  をコメントアウト
     typedef _kernel_dev_t          __kernel_old_dev_t
  を
     typedef unsigned short          __kernel_old_dev_t
  に変更することで解決しました。

4. userディレクトリコンパイル
   1) avahiがコンパイルできません
      現在調べています。
      avahiがコンパイルされる際のconfigureにて
configure:2477: checking for C compiler default output file name
configure:2480: arm-linux-gnu-gcc-4.1 -O2 -I/usr/arm-linux-gnu/include
-I/usr/lib/gcc/arm-linux-gnu/4.1.2//include -Dlinux -D__linux__ -Dunix
-DEMBED -Wall -fno-common  -I/home/yoshida/Embedded/rc/atmark-dist
-L/home/yoshida/Embedded/rc/atmark-dist/lib conftest.c -lpthread -lc
-lgcc  >&5
/usr/lib/gcc/arm-linux-gnu/4.1.2/../../../../arm-linux-gnu/bin/ld:
warning: ld-uClibc.so.0, needed by
/home/yoshida/Embedded/rc/atmark-dist/lib/libpthread.so, not found (try
using -rpath or -rpath-link)
/usr/lib/gcc/arm-linux-gnu/4.1.2/../../../../arm-linux-gnu/bin/ld:
warning: libc.so.6, needed by
/usr/lib/gcc/arm-linux-gnu/4.1.2/libgcc_s.so, may conflict with libc.so.0
/usr/lib/gcc/arm-linux-gnu/4.1.2/../../../../arm-linux-gnu/bin/ld:
warning: libc.so.6, needed by
/usr/lib/gcc/arm-linux-gnu/4.1.2/libgcc_s.so, may conflict with libc.so.0
/usr/lib/gcc/arm-linux-gnu/4.1.2/../../../../arm-linux-gnu/lib/crt1.o:
In function `_start':
../sysdeps/arm/elf/start.S:94: undefined reference to `__libc_csu_fini'
../sysdeps/arm/elf/start.S:94: undefined reference to `__libc_csu_init'
/home/yoshida/Embedded/rc/atmark-dist/lib/libc.so.0: undefined reference
to `_dl_app_init_array'
/home/yoshida/Embedded/rc/atmark-dist/lib/libc.so.0: undefined reference
to `_dl_app_fini_array'
collect2: ld returned 1 exit status

arm-linux-gcc等ではなく、arm-linux-gnu-gcc等になっているのは
過去のMLにも流れていましたので、atde-essential-armをインストール
しましたが、RPM環境ではうまく使えないようでした。

-- 
-----------------------------------------------------------------
Limited Pertnership Liberty System Factory
Tooru Yoshida <email@hidden>
Post 314-0033 Condminium Kashima 302,Hachigatadai 2-2-1
              Kashima , Ibaraki , Japan
Tel/Fax : +81 299 82 5076  Handy : +81 90 7209 7932
IP Tel : +81 50 8864 2765(VoIP) / SkyPe ID : tooruy
Linux Business Initiative(LBI) http://www.lbi.gr.jp/
-----------------------------------------------------------------



armadillo メーリングリストの案内