lkml.org 
[lkml]   [2015]   [Oct]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
SubjectRe: slab.h debugging tags....
Date
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

\
 
 \ /
  Last update: 2015-10-09 22:01    [W:1.038 / U:0.364 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site