[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 メーリングリストの案内