Re: [PATCH v3 0/2] Stop some of the abuse of BUG() where compiletime checks should be used.

From: David Daney
Date: Mon Nov 28 2011 - 12:03:23 EST


On 11/24/2011 10:31 AM, Linus Torvalds wrote:
On Thu, Nov 24, 2011 at 2:24 AM, David Howells<dhowells@xxxxxxxxxx> wrote:

Have you tried asking the gcc folks if this is likely to get fixed soon?

I actually don't think it's a bug. The error message is associated
with the function declaration symbol, so it actually makes sense that
there can be only one error message per callee - not per caller.


Yes, that is correct.

Using "__LINE__" to then create fairly unique symbols (modulo
#include, of course) gets around it in a pretty natural way as ddaney
said, so if we care enough. I don't think it's a big issue (as
mentioned, I'd worry more about us making sure it's reliable enough to
be used - we've had gcc sometimes fail to compile things out just
because some optimization was not working well enough).


Since these are *build* bugs, they are of a different nature than the *runtime* variety. They will never be seen at random times by someone running the kernel, so making it easier to determine their cause is less important. Really, I would expect it to never really be an issue.

We will always know which file is the culprit. Finding the line number can be done like this:

objdump -r $file | grep build_bug | addr2line -e $file

David Daney
--
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/