make netinet/in.h suppress clashing definitions from kernel headers
authorRich Felker <dalias@aerifal.cx>
Tue, 8 Nov 2016 04:19:19 +0000 (23:19 -0500)
committerRich Felker <dalias@aerifal.cx>
Tue, 8 Nov 2016 04:19:19 +0000 (23:19 -0500)
commit04983f2272382af92eb8f8838964ff944fbb8258
treee56f07fb8c22a8ef6fe584cd8e64114080da884a
parent33ce920857405d4f4b342c85b74588a15e2702e5
make netinet/in.h suppress clashing definitions from kernel headers

the linux kernel uapi headers provide their own definitions of the
structures from netinet/in.h, resulting in errors when a program
includes both the standard libc header and one or more of the
networking-related kernel headers that pull in the kernel definitions.

as before, we do not attempt to support the case where kernel headers
are included before the libc ones, since the kernel definitions may
have subtly incorrect types, namespace violations, etc. however, we
can easily support the inclusion of the kernel headers after the libc
ones, since the kernel headers provide a public interface for
suppressing their definitions. this patch adds the necessary macro
definitions for such suppression.
include/netinet/in.h