Kyösti Mälkki has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/35588 )
Change subject: console: Declare empty printk() for __ROMCC__ ......................................................................
Patch Set 2:
(1 comment)
https://review.coreboot.org/c/coreboot/+/35588/2//COMMIT_MSG Commit Message:
https://review.coreboot.org/c/coreboot/+/35588/2//COMMIT_MSG@11 PS2, Line 11:
The empty inline doesn't cause the same problems as 'do {} while (0)'?
Right. You can see patchset #1 here failing (romcc run out of available registers without SSE).
As for empty macros... I think it's largely microcode and console are likely the only places this was a problem w/ romcc. And as your patch shows those were being explicitly handled by open coding out the problematic sequences. But with empty macros it creates dangling ';' which can cause issues depending on how the code is done.
I personally am not a fan of romcc because of its shortcomings w.r.t. code portability. And for so long most things were #if'd out.
I am not sure if romcc-bootblock deprecation with next release is possible since so many platforms are way behind with the transition. Here, I was mostly looking into ways to gradually reduce #ifdef __ROMCC__ cases but we may as well do a one-shot wipeout once tree is ready for it.