If P_OS_LINUX is defined, then P_OS_POSIX is also defined. Unless the implementations are mutually exclusive -- i.e., if P_OS_LINUX {do stuff} else P_OS_POSIX {do other stuff} -- then the POSIX condition should be removed.
In other words, code that looks like this:
#if defined(P_OS_LINUX)
// linux code here
#endif
#if defined(P_OS_POSIX)
// POSIX code here
#endif
should be changed to:
#if defined(P_OS_LINUX)
// linux code here
#endif
// POSIX code here
If P_OS_LINUX is defined, then P_OS_POSIX is also defined. Unless the implementations are mutually exclusive -- i.e., if P_OS_LINUX {do stuff} else P_OS_POSIX {do other stuff} -- then the POSIX condition should be removed.
In other words, code that looks like this:
should be changed to: