linux-headers is a package providing the Linux kernel headers. These are part of the kernel, although they are shipped separately (further reasoning is available: ). The headers act as an interface between internal kernel components and also between userspace and the kernel. Packages like sys-libs/glibc depend on the kernel headers.
USE flags for sys-kernel/linux-headers Linux system headers
||Install only C headers instead of whole package. Mainly used by sys-devel/crossdev for toolchain bootstrap.|
emerge --ask sys-kernel/linux-headers
A common question regarding linux-headers is whether you need to keep them synced with your kernel version. The answer is no. You can have a newer linux-headers version then your running kernel binary.
So for example, if you have kernel 4.1 installed, you can have linux-headers 4.4. If you compile your glibc with this newer headers and later upgrade to kernel 4.4, you will be able to use the new features of this kernel without recompiling glibc again.
- http://kernelnewbies.org/KernelHeaders - KernelNewbies provides a nice overview of kernel headers.