NetBSD-3.1 上で展開して ./configure; make するが、
gcc -DHAVE_CONFIG_H -I. -I. -I../.. -g -O2
-I/usr/pkg/include/glib/glib-1.2 -I/usr/pkg/lib/glib/include
-D_REENTRANT -D_THREAD_SAFE -c adaptation.c -MT adaptation.lo -MD -MP
-MF .deps/adaptation.TPlo -fPIC -DPIC -o .libs/adaptation.o
adaptation.c:129:28: net/if_var.h: No such file or directory
adaptation.c: In function `adl_equal_address':
adaptation.c:708: error: structure has no member named `s6_addr32'
(snip)
*** Error code 1
Stop.
(snip)
となり、コンパイルが出來ない。
そこで以下の變更を加へて事無きを得た。
$ diff -c sctplib/sctp/adaptation.c.org sctplib/sctp/adaptation.c
*** sctplib/sctp/adaptation.c.org Thu Dec 7 17:19:17 2006
--- sctplib/sctp/adaptation.c Thu Dec 7 17:34:45 2006
***************
*** 126,132 ****
--- 126,136 ----
#include <net/if_types.h>
#include <net/route.h>
#ifndef SOLARIS
+ #ifndef __NetBSD__
#include <net/if_var.h>
+ #else
+ #define s6_addr32 __u6_addr.__u6_addr32
+ #endif
#include <machine/param.h>
#define ROUNDUP(a, size) (((a) & ((size)-1)) ? (1 + ((a) | ((size)-1))) : (a))
#define NEXT_SA(ap) ap = (struct sockaddr *) \
この變更は、先づ、net/if_var.h の #include を止めた。
次に s6_addr32 といふ定義は、/usr/include/netinet6/in6.h を見ると、
#ifdef _KERNEL /* XXX nonstandard */
#define s6_addr8 __u6_addr.__u6_addr8
#define s6_addr16 __u6_addr.__u6_addr16
#define s6_addr32 __u6_addr.__u6_addr32
#endif
となつてゐる爲、上のやうな變更を加へた。
最終更新:2006年12月07日 18:15