On 03/09/2017 01:14 AM, Szabolcs Nagy wrote:
the other way (linux header included first) is problematic because linux headers don't follow all the standards the libc follows, they violate namespace rules in their struct definitions, so the libc definitions are necessarily incompatible with them and thus different translation units can end up refering to the same object through incompatible types which is undefined. (even if the abi matches and thus works across the syscall interface, a sufficiently smart toolchain can break such code at link time, and since the libc itself uses its own definitons that's what user code should use too).
I don't think this is relevant in this context. LTO implementations have to deal with this already. For glibc's sake alone, it must be supported to link together code using differing feature test macros.
Thanks, Florian -- To unsubscribe from this list: send the line "unsubscribe linux-api" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html