On Wed, Apr 24, 2024 at 3:40 AM Jon Chesterfield < jonathanchesterfield@gmail.com> wrote: > Re testing GNUC, > > I'm not sure the macro means "targeting Linux", and it seems totally > legitimate that a C compiler which doesn't implement any GNU extensions > would not define that macro. Musl is quite a likely choice for a non-gnu > compiler that wants to compile code to run against the Linux kernel. > __GNUC__, __GNUC_MINOR__ and __GNUC_PATCHLEVEL__ only means the macros are defined by GNU compilers that use the C preprocessor. See < https://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html>. The macros don't mean "targeting Linux". They are also defined on OS X (Darwin) and Windows. Jeff