Why do I get complaints about redefinition of "struct iovec" when compiling under Linux?
Answer:
This is a conflict between your C library includes and your kernel includes. You need to make sure that the versions of both are matched properly. There are two workarounds, either one will solve the problem:
Remove the definition of struct iovec from your C library includes. It is located in /usr/include/sys/uio.h. Or,
Add -DNO_WRITEV to the EXTRA_CFLAGS line in your Configuration and reconfigure/rebuild. This hurts performance and should only be used as a last resort.