Re: [PATCH 02/10] x86: Convert BUG() to use unreachable()

From: Ingo Molnar
Date: Fri Sep 11 2009 - 02:07:43 EST



* Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote:

> On Thu, 10 Sep 2009, H. Peter Anvin wrote:
>
> > On 09/10/2009 04:56 PM, David Daney wrote:
> > > Use the new unreachable() macro instead of for(;;);. When
> > > 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
> >
> > Acked-by: H. Peter Anvin <hpa@xxxxxxxxx>
> >
> > ... 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 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.
>
> 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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/