Gauche > Archives > 2009/07/01

2009/07/01 02:56:02 UTC(び)
#
checking net/if.h usability... no
checking net/if.h presence... yes
configure: WARNING: net/if.h: present but cannot be compiled
configure: WARNING: net/if.h:     check for missing prerequisite headers?
configure: WARNING: net/if.h: see the Autoconf documentation
configure: WARNING: net/if.h:     section "Present But Cannot Be Compiled"
configure: WARNING: net/if.h: proceeding with the preprocessor's result
configure: WARNING: net/if.h: in the future, the compiler will take precedence
configure: WARNING:     ## ---------------------------- ##
configure: WARNING:     ## Report this to shiro@acm.org ##
configure: WARNING:     ## ---------------------------- ##
#
こんなの出てた
#
on Mac OS X 10.5.7(9J61)
#
でもビルドもテストも成功してる
2009/07/01 03:04:07 UTC(び)
#
configure:14599: checking net/if.h usability
configure:14616: gcc-4.2 -std=gnu99 -c -02 -march=nocona  -I/usr/local/include -I/usr/pkg/include  -no-cpp-precomp conftest.c >&5
In file included from conftest.c:136:
/usr/include/net/if.h:259: error: field 'ifru_addr' has incomplete type
/usr/include/net/if.h:260: error: field 'ifru_dstaddr' has incomplete type
/usr/include/net/if.h:261: error: field 'ifru_broadaddr' has incomplete type
/usr/include/net/if.h:298: error: field 'ifra_addr' has incomplete type
/usr/include/net/if.h:299: error: field 'ifra_broadaddr' has incomplete type
/usr/include/net/if.h:300: error: field 'ifra_mask' has incomplete type
/usr/include/net/if.h:374: error: field 'addr' has incomplete type
/usr/include/net/if.h:375: error: field 'dstaddr' has incomplete type
#
from config.log
#
sys/socket.h をインクルードすればよさげ
#
というか、net/if.h は何でsys/socket.hをインクルードしないんだろうか
#
不思議だ >Mac OS X
2009/07/01 03:24:24 UTCenami
#
header fileでheader fileをincludeしない、というのが昔n
2009/07/01 03:25:02 UTCenami
#
のbsdでは普通のスタイルでした。
#
multiple includsion protectとかしてheaderからheaderを呼ぶスタイルになってきたのは、cpu powerに余裕のでてきてからのことだと思います
2009/07/01 03:28:07 UTC(び)
#
sys/cdefs.hはインクルードしてるのに...
#
他にもいくつかインクルードしてるな
2009/07/01 03:30:19 UTCenami
#
cdefs.hはそれ自体新しいんじゃないかなあ?
2009/07/01 03:30:28 UTC(び)
#
*      @(#)if.h        8.1 (Berkeley) 6/10/93
 * $FreeBSD: src/sys/net/if.h,v 1.58.2.2 2001/07/24 19:10:18 brooks Exp $
#
この辺がベース
2009/07/01 03:30:46 UTCenami
#
そうでもないか
2009/07/01 03:31:01 UTC(び)
#
sys/types.hなんかもインクルードしてたりして
2009/07/01 03:31:16 UTCenami
#
386bsdからある>cdefs.h
2009/07/01 03:31:30 UTC(び)
#
enamiさんのいう、昔のBSDの流儀のヘッダに泥縄で足していったのかしらん
2009/07/01 03:32:28 UTCenami
#
netbsdでもnet/if.hがsys/socket.hをincludeするようになったのは2002年くらいらしい
2009/07/01 03:32:55 UTC(び)
#
なるほど
#
Mac OS Xのユーザランドは確かFreeBSD 3.5の頃のものから派生してるって聞いたことがある
2009/07/01 03:33:57 UTCenami
#
当然、実装依存とかアーキテクチャ依存な隠したい部分は中からincludeしてたとおもいます
2009/07/01 03:35:18 UTCenami
#
最初はnetbsdのuserlandでやろうとしていたんだけど、途中でfreebsdにswitchした
2009/07/01 03:36:26 UTC(び)
#
へー
2009/07/01 03:38:08 UTCenami
#
だから、最初のころのmacosxの/binだか/usr/binだかでidentするとenamiって出てくるファイルがあった
2009/07/01 03:40:15 UTCenami
#
違うかな、userlandがnetbsdでbsd kernelだけがfreebsdのになったのだったかも。
2009/07/01 03:53:31 UTC(び)
#
ほほー
2009/07/01 14:00:41 UTCenami
#
read_word()のinitialにEOFを渡すのは想定された使い方だろうか?(read-from-string "$:")
#
read_symbol()はSCM_EOFを返さないので、その後のテストは常に偽?(read-from-string "$!")
#
s/$/#/g