From: Mike Frysinger <vapier(a)gentoo.org>
Date: Wed, 16 Jan 2013 12:04:56 -0500
certainly true, but the current expectation is that you don't mix
your ABIs.
if you're programming with the C library API, then use the C library headers.
if you're banging directly on the kernel, then use the kernel headers. not
saying it's a perfect solution, but it works for the vast majority of use
cases.
This isn't how real life works.
GLIBC itself brings in some of the kernel headers, as do various library
headers for libraries other than glibc.
So you can get these conflicting headers included indirectly, and it is
of no fault of any of the various parties involved.
We have to make them work when included at the same time somehow, and
this is totally unavoidable.