Skip to content
  • Daniel Santos's avatar
    bug.h: make BUILD_BUG_ON generate compile-time error · a3ccc497
    Daniel Santos authored
    
    
    Negative sized arrays wont create a compile-time error in some cases
    starting with gcc 4.4 (e.g., inlined functions), but gcc 4.3 introduced
    the error function attribute that will.
    
    This patch modifies BUILD_BUG_ON to behave like BUILD_BUG already does,
    using the error function attribute so that you don't have to build the
    entire kernel to discover that you have a problem, and then enjoy trying
    to track it down from a link-time error.
    
    Also, we are only including asm/bug.h and then expecting that
    linux/compiler.h will eventually be included to define __linktime_error
    (used in BUILD_BUG_ON).  This patch includes it directly for clarity and
    to avoid the possibility of changes in <arch>/*/include/asm/bug.h being
    changed or not including linux/compiler.h for some reason.
    
    Signed-off-by: default avatarDaniel Santos <daniel.santos@pobox.com>
    Acked-by: default avatarBorislav Petkov <bp@alien8.de>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: David Rientjes <rientjes@google.com>
    Cc: Joe Perches <joe@perches.com>
    Cc: Josh Triplett <josh@joshtriplett.org>
    Cc: Paul Gortmaker <paul.gortmaker@windriver.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    a3ccc497