* Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote:
On 2009年9月10日, H. Peter Anvin wrote:
On 09/10/2009 04:56 PM, David Daney wrote:I like David's version a bit better, since it takes care of more architectures, and also because it avoids that butt-ugly special case for gcc-4.4.1-RH-relase-10 backporting this feature.Use the new unreachable() macro instead of for(;;);. WhenAcked-by: H. Peter Anvin <hpa@xxxxxxxxx>
allyesconfig is built with a GCC-4.5 snapshot on i686 the size of the
text segment is reduced by 3987 bytes (from 6827019 to 6823032).
Signed-off-by: David Daney <ddaney@xxxxxxxxxxxxxxxxxx>
CC: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
CC: Ingo Molnar <mingo@xxxxxxxxxx>
CC: "H. Peter Anvin" <hpa@xxxxxxxxx>
CC: x86@xxxxxxxxxx
... although of course this clashes with Roland McGrath's patchset for the same thing which I applied earlier. I have to say I like unreachable() in lower case better though...
I realize that the RH backport thing is good for testing now, but at the same time, it really does look nasty. I wonder if we could add some config-time compiler feature testing - so that you'd not have a version test at all, but a CONFIG_BUILTIN_UNREACHABLE.
There are other cases where that kind of config-time testing could be useful, and we could avoid doing various gcc checks dynamically from within 'make' (along with checking for known-buggy versions etc).
And yeah, it looks better in lower case. That said, I don't care _that_ much, and people can fight it out.
Another detail that would be nice to be fixed is to propagate the unreachable() call into the !CONFIG_BUG case as well in asm-generic/bug.h.
That would kill dozens of !CONFIG_BUG compiler warnings and would make a dont-allow-warnings policy a possibility for random builds.
Ingo