This section is a bit in flux - there's a big discussion going back and forth on the netdev mailing list about where the proper place to put things is. This means that you need to prepare yourself for some Makefile hackery or other such work when you try and compile IPv6 apps. However, there's currently a few ways to approach this:
"Please check out: ftp://kc.london.uk.eu.org/pub/ipv6-inc.tar.gz You should unpack this under /usr. It provides the following stuff: /usr/include/ipv6/netdb.h /usr/include/ipv6/netinet/in.h /usr/include/ipv6/netinet6/in6.h The first two are just wrappers round the corresponding libc5 headers that define some new stuff. netinet6/in6.h is a dummy file that just includes <netinet/in.h> so that while we go through this period of confusion people can use either naming scheme. The idea is that you compile IPv6 applications with -I/usr/ipv6/include, so they pick up these headers first. You will need to link with libinet6 from the inet6-apps package. I don't refer to <linux/in6.h> so this should be independent of kernel version. At the moment there is no support for the advanced API. I will do this later."
Also from Philip Blundell:
This afternoon I've been working on merging support for IPv6 into glibc. For those who want to give it a go quickly, there is a patch (against the latest snapshot, but I think it ought to go cleanly into 2.0.x as well) at ftp://kc.london.uk.eu.org/pub/glibc-2.0.90-glibc-diff I believe support for the basic API is essentially complete. Please let me know if you notice omissions or errors. I have not tried to implement the advanced API at the moment; this will have to wait until it is more stable. This means that, with a patched glibc, you should be able to build most of the inet6-apps suite without using the `libinet6' support library or its header files. `ping' and `traceroute' are the exceptions to this. I have decided to go for the approach of putting all the inet6 stuff in <netinet/in.h> rather than creating <netinet6/in6.h>. This is what the standard says, and I would rather not put Linux-specific deviations into glibc if I can possibly help it. Bad things will happen if you have conflicting header files lying around. You should probably apply the attached patch to the inet6-apps makefile (to stop it using its own headers) and destroy any <netinet6/in6.h> that you might already have installed. You may want to create a dummy /usr/include/netinet6/in6.h that just contains the line #include <netinet/in.h> in order to keep Linux code happy. If you want to compile things that need the advanced API you will need to do some hacking, as the glibc headers don't currently coexist very well with the ones from inet6-apps.
Yes. Thanks to bound@zk3.dec.com for pointing this out. Subscribe via ipv6imp-request@munnari.oz.au