Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1243626

Re: slab.h debugging tags....

From Rasmus Villemoes <linux@rasmusvillemoes.dk>
Newsgroups linux.kernel
Subject Re: slab.h debugging tags....
Date 2015-10-09 21:50 +0200
Message-ID <qhLPY-3oh-7@gated-at.bofh.it> (permalink)
References <qhuYO-4mT-5@gated-at.bofh.it>
Organization D03

Show all headers | View raw


On Fri, Oct 09 2015, Valdis Kletnieks <Valdis.Kletnieks@vt.edu> wrote:

> Author: Rasmus Villemoes <linux@rasmusvillemoes.dk>
> Date:   Wed Oct 7 15:09:20 2015 +1100
>
>     slab.h: sprinkle __assume_aligned attributes
>
> causes *tons* of whinges if you do 'make C=2' with sparse 0.5.0:
>
>   CHECK   drivers/media/usb/pwc/pwc-if.c
> include/linux/slab.h:307:43: error: attribute '__assume_aligned__': unknown attribute
> include/linux/slab.h:308:58: error: attribute '__assume_aligned__': unknown attribute
> include/linux/slab.h:337:73: error: attribute '__assume_aligned__': unknown attribute
> include/linux/slab.h:375:74: error: attribute '__assume_aligned__': unknown attribute
> include/linux/slab.h:378:80: error: attribute '__assume_aligned__': unknown attribute
>
> [/usr/src/linux-next] grep CHECK build.default | wc
>    1779    3558   59132
> [/usr/src/linux-next] grep slab.h build.default | wc
>    7225   43350  621350
>
> Canned it after about 1/3 of the build.
>
> Where's a sparse that can handle this?

I don't think there is any (sparse 0.5 seems to be the latest). Hm,
if I'm reading the sparse source correctly, it is pretending to be
whatever gcc version it itself is built with. That's... um... let's just
say odd.

Does this fix it for you?

Subject: [PATCH] slab.h: hide assume_aligned attribute from sparse

sparse apparently pretends to be gcc >= 4.9, yet isn't prepared to
handle all the function attributes supported by those gccs and
complains loudly. So hide the definition of __assume_aligned from it
(so that the generic one in compiler.h gets used).

Reported-by: Valdis Kletnieks <Valdis.Kletnieks@vt.edu>
Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
---
 include/linux/compiler-gcc.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/linux/compiler-gcc.h b/include/linux/compiler-gcc.h
index 18606a460baf..dc13ceeef8c8 100644
--- a/include/linux/compiler-gcc.h
+++ b/include/linux/compiler-gcc.h
@@ -211,7 +211,7 @@
 #endif
 
 
-#if GCC_VERSION >= 40900
+#if GCC_VERSION >= 40900 && !defined(__CHECKER__)
 /*
  * __assume_aligned(n, k): Tell the optimizer that the returned
  * pointer can be assumed to be k modulo n. The second argument is
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

slab.h debugging tags.... Valdis Kletnieks <Valdis.Kletnieks@vt.edu> - 2015-10-09 03:50 +0200
  Re: slab.h debugging tags.... Rasmus Villemoes <linux@rasmusvillemoes.dk> - 2015-10-09 21:50 +0200
    Re: slab.h debugging tags.... Valdis.Kletnieks@vt.edu - 2015-10-10 20:40 +0200

csiph-web