Julius Werner has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/32027 )
Change subject: Make common macros double-evaluation safe ......................................................................
Patch Set 11:
My crosstools are up to date (e.g. gcc at 8.2.0), but these were built on Unbuntu 14.04 system with gcc 4.8.4. I have a 17.04 VM sitting around, with older xgcc/bin files, and it builds fine. I'm building a plain google/grunt with no configuration changes.
Okay, this reads a lot like a compiler problem. I assume the result of __builtin_constant_p() used to not count as a constant due to some issue back in GCC 4.8.4 that was fixed in a later version. Can you check what version is on the 17.04 where it works?
I guess the question becomes what sort of compiler we need to support for build tools. I'd prefer if we can use the clean builtins that are intended for that purpose and not go through the same insanity that the kernel had to to create a constness-check that works on old compilers. We intentionally added the whole crossgcc thing to get rid of those issues.
Do we need to support Ubuntu 14.04? It's 5 years old, and it looks like even official Ubuntu LTS support for it is running out this month. Can we consider this WontFix? (The other option is to #ifdef this out for host utilities, but I'm not really sure we should be held back by ancient compilers. Or maybe we can find a way to have utils built by crossgcc as well, at least as long as we have one for that architecture?)