My point here is that #ifdef __linux__ in header files exported from the Linux kernel is always bogus: We know that anything including this header is building code that will run on a Linux kernel, and we know that the kernel headers must not care if they are being included from glibc, uclibc, klibc or bionic.
The only correct answer for this is remove all conditionals that depend on __linux__ within exported header files and make those uncondition (or remove them when they depend on !defined(__linux__)).
My point here is that #ifdef __linux__ in header files exported from the Linux kernel is always bogus: We know that anything including this header is building code that will run on a Linux kernel, and we know that the kernel headers must not care if they are being included from glibc, uclibc, klibc or bionic.
The only correct answer for this is remove all conditionals that depend on __linux__ within exported header files and make those uncondition (or remove them when they depend on !defined( __linux_ _)).