Portability issues (1) Differences in IPv6 stacks Separate libraries (libinet6.a) Because many of them are add-ons. Library/include pathnames (e.g. /usr/local/v6/lib) Level of support Advanced API (old and new) tcp/udp code differences Spec is not clear enough. Be very neutral to kernel Assume nothing, use only safe behaviors. Use GNU autoconf Guess system type based on string/symbol in include file. Sample can be found in many of KAME patches: ftp://ftp.kame.net/pub/kame/misc/