The attached patch is my first attempt to deal with TARGET_CPU_CPP_BUILTINS macros by splitting them into language-independent and C-family parts. This is now more like a demonstration of how I intend to proceed, by creating a new macro TARGET_CPU_CPP_BUILTINS_CFAMILY. Also, it shows how I proceed for the case of targets that employ a worker function (which thus does fully belong to, e.g., i386-c.c anymore).
I thank people who already commented on the issue, and would welcome comments and criticism of this patch. When the discussion seems to settle on whether this approach is agreeable, I will work on the TARGET_OS_CPP_BUILTINS macros and proceed to extensive testing, because this touches many targets (for now, it's only regtested on x86_64-linux). As a response to earlier discussion: I did not move all this mechanism to being hooks-based because I don't have enough time to do so, and we need to move forward to fix this Fortran regression. Also, I believe my patch does not make it any harder to move to hooks in the future. Thanks in advance for your help, FX
cpu_cpp.ChangeLog
Description: Binary data
cpu_cpp.diff
Description: Binary data