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

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


風我成と申します。長いテキストですんません。 

表記について、何か情報をお持ちの方、アドバイス頂けると助かります。 
環境:VMWareでATDE2に付属のLinuxのイメージを使い、atmark-distとkernelを展開して作っています。 

kernel/userlandの再構築と、wireless-extention/RT73のWLANドライバ組み込みまでは 
問題なく動作したのですが、運用環境用にとファイルシステムにツールを 
追加したら、かなりのエラーが出てしまいました。 
(armadilloでこんだけこまめにエラーが出たのは初めてでした…) 
cronでもlspciとかでも出てしまうのですが、 
まず、上記の二つについてアドバイス頂ければ助かります。 
(tcpdumpに関してはpcap-debugのエラーが出るので別途ソースを用意した方もいらっしゃるようですが…) 


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 
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: 許可がありません 


○tcpdump のmakeのエラー 


email@hidden:/atmark-dist/user/strace$ cd ../tcpdump/ 
email@hidden:/atmark-dist/user/tcpdump$ make 
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 メーリングリストの案内