[Armadillo:04210] Re: strace/tcpdumpのmakeエラー

風我成 望 email@hidden
2009年 4月 21日 (火) 21:21:32 JST


溝渕さん

 風我成 です。 実施結果ですが、同じエラーになってしまいました。

 make cleanを実施して.*的なファイルは無くなり、
 再度のmakeでやはり実行権限が無かったので付与しましたが同じでした。
 
 libpcapのバージョンがatmark-dist/lib/libpcap内のREADMEによると0.4だったので、
 crossの環境設定のミスかと思い、libpcap0.8-dev-arm-cross他と再度dpkgしましたが、
 0.4のままで変わりませんでした…

 以下、全体makeからさ以後の部分の抜粋です。
 (成功した環境からstraceのみtcpdumpのみを追加状態で実施しました)
 まだ、悩んでみますがアドバイス頂ければ助かります。

make[3]: ディレクトリ `/atmark-dist/user/route/lib' から出ます
make[2]: ディレクトリ `/atmark-dist/user/route' から出ます
make[2]: ディレクトリ `/atmark-dist/user/strace' に入ります
arm-linux-gcc  -Wall -DHAVE_CONFIG_H   -I. -Ilinux/arm -I./linux/arm -Ilinux -I./linux -O2 -I/usr/arm-linux/include -I/usr/lib/gcc/arm-linux-gnu/4.1.2//include -Dlinux -D__linux__ -Dunix -DEMBED -Wall -fno-common  -I/atmark-dist -D_GNU_SOURCE -D__USE_BSD -D__USE_POSIX199309 -DARM=1 -DHAVE_SYS_USER_H=1 -c file.c
file.c: In function ‘realprintstat’:
file.c:737: error: ‘struct stat’ has no member named ‘st_atim’
file.c:738: error: ‘struct stat’ has no member named ‘st_mtim’
file.c:739: error: ‘struct stat’ has no member named ‘st_ctim’
file.c: In function ‘convertoldstat’:
file.c:915: error: ‘struct stat’ has no member named ‘st_atim’
file.c:915: error: ‘const struct __old_kernel_stat’ has no member named ‘st_atim’
file.c:916: error: ‘struct stat’ has no member named ‘st_mtim’
file.c:916: error: ‘const struct __old_kernel_stat’ has no member named ‘st_mtim’
file.c:917: error: ‘struct stat’ has no member named ‘st_ctim’
file.c:917: error: ‘const struct __old_kernel_stat’ has no member named ‘st_ctim’
make[2]: *** [file.o] エラー 1
make[2]: ディレクトリ `/atmark-dist/user/strace' から出ます
make[1]: *** [all] エラー 2
make[1]: ディレクトリ `/atmark-dist/user' から出ます
make: *** [subdirs] エラー 1
email@hidden:/atmark-dist$

make[2]: ディレクトリ `/atmark-dist/lib/libpcap' に入ります
arm-linux-gcc  -O2 -fno-common -Wall  -I/usr/arm-linux/include -I/usr/lib/gcc/arm-linux-gnu/4.1.2//include -fno-builtin -nostdinc -I/atmark-dist/include -idirafter /atmark-dist/include/include -Dlinux -D__linux__ -Dunix  -I.  -Ilinux-include -DEMBED=1 -DHAVE_MALLOC_H=1 -DHAVE_STRERROR=1 -DHAVE_NET_IF_ARP_H=1  -c ./pcap-linux.c
In file included from /usr/arm-linux/include/malloc.h:44,
from ./pcap-linux.c:42:
/usr/lib/gcc/arm-linux-gnu/4.1.2//include/stddef.h:414:1: warning: "offsetof" redefined
In file included from /usr/arm-linux/include/linux/posix_types.h:4,
from /usr/arm-linux/include/linux/types.h:8,
from /usr/arm-linux/include/linux/if_ether.h:24,
from ./pcap-linux.c:37:
/usr/arm-linux/include/linux/stddef.h:17:1: warning: this is the location of the previous definition
./pcap-linux.c: In function ‘pcap_read’:
./pcap-linux.c:88: warning: pointer targets in passing argument 6 of ‘recvfrom’ differ in signedness
./pcap-linux.c: At top level:
./pcap-linux.c:142: error: conflicting types for ‘pcap_open_live’
/usr/arm-linux/include/pcap.h:221: error: previous declaration of ‘pcap_open_live’ was here
make[2]: *** [pcap-linux.o] エラー 1
make[2]: ディレクトリ `/atmark-dist/lib/libpcap' から出ます
make[1]: *** [all] エラー 2
make[1]: ディレクトリ `/atmark-dist/lib' から出ます
make: *** [subdirs] エラー 1
email@hidden:/atmark-dist$
 

 

 
09/04/21 (火曜日) 07:30PM、 "風我成 望" <email@hidden>のメッセージ:
>溝渕さん
>
> 風我成 です。 コメントありがとうございますです。
> 環境情報も不足で申し訳ないです。(コピペ抜けですm(_ _)m)
>
>>cron, lspciはすでにatmark-distに存在するものを使用しましたか?
>>それとも自分でatmark-distに組み込んだものでしょうか?
>
> atmark-dist内のものです。
> 無線ドライバ以外は、そのまま使おうとしています。
>
>>lspciに関してはArmadilloにはデフォルトで含まれていませんが、busyboxの
>>crondに関してはビルドを確認しています。
>
> busybox内にありましたか…気付きませんでした。
> cronはCore Applicationから
> lspciはMiscellaneous Applicationから(straceも)
> TcpdumpはNetwork Applicationから選択しました。
>
>>また、メーリングリストへ投稿される場合は、
>
> 大変失礼しましたm(_ _)m 
>
>>- atmark-distやlinux-kernelのバージョン
>
> 2.6.18-at2です。
>
>>- ATDE2のバージョン
>
> 2.0.0です。
>
>>- 使用しているボード(Armadillo-500等)
>
> Armadillo-500です。
>
>>> strace のmakeのエラー 
>>> 以下のような宣言のエラーが出ます。ユーザーランド全体でも、 
>>> 単体でも同じエラーが出ます。 
>>> 使用していない[st_atim]が無いというエラーですが、 
>>> file.cの中には[st_atime]はありますが、[st_atim]は使われてません。 
>>> 
>>> email@hidden:/atmark-dist/user/strace$ vi Makefile 
>>> email@hidden:/atmark-dist/user/strace$ make 
>>
>>atmark-dist/Makefile
>>を経由しないでビルドした場合、いくつかのMakefile内の変数が定義されません。
>>
>>この場合ですと、arm-linux-gccが呼ばれずに、PCのコンパイラが使用されてい
>>ます。
>
> えと、そうだと思います。
> ただ、単体エラーと、上記のatmark-distでのmakeでのエラーが同じだったのを
> 確認しただけでした。
>
>>すでにオブジェクトファイル等が生成されてある可能性があるため、一度clean
>>することをおすすめします。
>
> make cleanが走らなかった記述なしで走らなかった
> ような気がしましたが、リトライしてみます。
>
>>> cc -Wall -DHAVE_CONFIG_H   -I. -Ilinux/ -I./linux/ -Ilinux -I./linux -D_GNU_SOURCE -D__USE_BSD -D__USE_POSIX199309 -c file.c 
>>> file.c: In function ‘realprintstat’: 
>>> file.c:737: error: ‘struct stat’ has no member named ‘st_atim’ 
>>> file.c:738: error: ‘struct stat’ has no member named ‘st_mtim’ 
>>> file.c:739: error: ‘struct stat’ has no member named ‘st_ctim’ 
>>> file.c: In function ‘convertoldstat’: 
>>> file.c:915: error: ‘struct stat’ has no member named ‘st_atim’ 
>>> file.c:915: error: ‘const struct __old_kernel_stat’ has no member named ‘st_atim’ 
>>> file.c:916: error: ‘struct stat’ has no member named ‘st_mtim’ 
>>> file.c:916: error: ‘const struct __old_kernel_stat’ has no member named ‘st_mtim’ 
>>> file.c:917: error: ‘struct stat’ has no member named ‘st_ctim’ 
>>> file.c:917: error: ‘const struct __old_kernel_stat’ has no member named ‘st_ctim’ 
>>> make: *** [file.o] エラー 1 
>>> 
>>> ユーザーランド全体で実施すると以下の文も出ますが、 
>>> 下記の三つはわざとなのか実行権限が付与されてませんでした。 
>>> 他の.*ファイルはすべて付いてます。 
>>> make[2]: ディレクトリ `/atmark-dist/user/hwclock' から出ます 
>>> /bin/sh: extensions/.dccp-test: 許可がありません 
>>> /bin/sh: extensions/.layer7-test: 許可がありません 
>>> /bin/sh: extensions/.statistic-test: 許可がありません 
>>
>>実行権限の付与し忘れだと思われます。
>>
>>これらのスクリプトは呼び出されてはいますが、実行の結果何も行なわないため、
>>
>>- 実行権限を付与する
>>- 上記3ファイルを削除する
>>
>>のどちらの対応でも構いません。
>
> 今は動いていないので、実効権限を付与して試して見ます。
>
>>> ○tcpdump のmakeのエラー 
>>> 
>>> 
>>> email@hidden:/atmark-dist/user/strace$ cd ../tcpdump/ 
>>> email@hidden:/atmark-dist/user/tcpdump$ make 
>>
>>strace同様の対応をしてみてください。
>>
>>上記対応を行なってもpcap.hが発見できない場合は、
>>libpcap0.8-dev-arm-cross
>>がインストールされているかどうかを確認してみてください。
>
> 了解しました。大変助かります。
>
> 実施後、改めて報告いたします。
>
> 取り急ぎ。
>
>>
>>> cc -I.  -Ilinux-include  -DHAVE_FCNTL_H=1 -DHAVE_MALLOC_H=1 -DHAVE_MEMORY_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_NET_SLIP_H=1 -DHAVE_VFPRINTF=1 -DHAVE_STRCASECMP=1 -DHAVE_SETLINEBUF=1 -DRETSIGTYPE=void -DRETSIGVAL= -D__USE_BSD=1 -c ./tcpdump.c 
>>> ./tcpdump.c:43:18: error: pcap.h: そのようなファイルやディレクトリはありません 
>>> ./tcpdump.c:78: warning: ‘struct bpf_program’ declared inside parameter list 
>>> ./tcpdump.c:78: warning: its scope is only this definition or declaration, which is probably not what you want 
>>> ./tcpdump.c:88: error: expected specifier-qualifier-list before ‘pcap_handler’ 
>>> ./tcpdump.c:93: warning: excess elements in struct initializer 
>>> 中略 
>>> ./tcpdump.c:99: error: ‘DLT_FDDI’ undeclared here (not in a function) 
>>> ./tcpdump.c:99: warning: excess elements in struct initializer 
>>> 中略 
>>> ./tcpdump.c:103: warning: excess elements in struct initializer 
>>> ./tcpdump.c:103: warning: (near initialization for ‘printers[10]’) 
>>> ./tcpdump.c:107: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘lookup_printer’ 
>>> ./tcpdump.c:119: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token 
>>> ./tcpdump.c: In function ‘main’: 
>>> ./tcpdump.c:129: error: ‘bpf_u_int32’ undeclared (first use in this function) 
>>> ./tcpdump.c:129: error: (Each undeclared identifier is reported only once 
>>> ./tcpdump.c:129: error: for each function it appears in.) 
>>> ./tcpdump.c:129: error: expected ‘;’ before ‘localnet’ 
>>> ./tcpdump.c:131: error: ‘pcap_handler’ undeclared (first use in this function) 
>>> ./tcpdump.c:131: error: expected ‘;’ before ‘printer’ 
>>> ./tcpdump.c:132: error: storage size of ‘fcode’ isn’t known 
>>> ./tcpdump.c:135: error: ‘PCAP_ERRBUF_SIZE’ undeclared (first use in this function) 
>>> ./tcpdump.c:285: error: ‘pd’ undeclared (first use in this function) 
>>> ./tcpdump.c:288: error: ‘localnet’ undeclared (first use in this function) 
>>> ./tcpdump.c:289: error: ‘netmask’ undeclared (first use in this function) 
>>> ./tcpdump.c:294: warning: assignment makes pointer from integer without a cast 
>>> ./tcpdump.c:338: error: ‘pcap_dumper_t’ undeclared (first use in this function) 
>>> ./tcpdump.c:338: error: ‘p’ undeclared (first use in this function) 
>>> ./tcpdump.c:341: error: ‘printer’ undeclared (first use in this function) 
>>> ./tcpdump.c:341: error: ‘pcap_dump’ undeclared (first use in this function) 
>>> ./tcpdump.c: In function ‘cleanup’: 
>>> ./tcpdump.c:365: error: storage size of ‘stat’ isn’t known 
>>> ./tcpdump.c:368: error: ‘pd’ undeclared (first use in this function) 
>>> ./tcpdump.c:368: warning: comparison between pointer and integer 
>>> ./tcpdump.c: At top level: 
>>> ./tcpdump.c:439: warning: function definition has qualified void return type 
>>> make: *** [tcpdump.o] エラー 1 
>>> email@hidden:/atmark-dist/user/tcpdump$ 
>>> 
>>> 
>>> 開発環境の中には、pcap.hは下記があり、上の三つは結局同じものでした。 
>>> 
>>> email@hidden:/atmark-dist$ find ./ -name pcap.h 
>>> ./include/include/pcap.h 
>>> ./include/pcap.h 
>>> ./lib/libpcap/pcap.h 
>>> ./user/snort/src/win32/WIN32-Includes/WinPCAP/pcap.h 
>>> ./user/nessus/nessus-libraries/libpcap-nessus/pcap.h 
>>> 
>>> _______________________________________________
>>> armadillo mailing list
>>> email@hidden
>>> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
>>> 
>>_______________________________________________
>>armadillo mailing list
>>email@hidden
>>http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
>>
>>
>
>_______________________________________________
>armadillo mailing list
>email@hidden
>http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
>
>




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