2015-04-21 07:00:24

by EUNBONG SONG

[permalink] [raw]
Subject: [PATCH] tools/liblockdep: Fix compilation error.


Currently, liblockdep has compilation error with following log messages.

CC common.o
CC lockdep.o
In file included from lockdep.c:10:
../../../kernel/locking/lockdep.c: In function 'count_matching_names':
../../../kernel/locking/lockdep.c:650: error: 'lock_entry' undeclared (first use in this function)
../../../kernel/locking/lockdep.c:650: error: (Each undeclared identifier is reported only once
../../../kernel/locking/lockdep.c:650: error: for each function it appears in.)
../../../kernel/locking/lockdep.c:650: error: expected ';' before '{' token
../../../kernel/locking/lockdep.c: In function 'look_up_lock_class':
../../../kernel/locking/lockdep.c:722: error: 'hash_entry' undeclared (first use in this function)
../../../kernel/locking/lockdep.c:722: error: expected ';' before '{' token
../../../kernel/locking/lockdep.c: In function 'register_lock_class':
../../../kernel/locking/lockdep.c:777: error: 'hash_entry' undeclared (first use in this function)
../../../kernel/locking/lockdep.c:777: error: expected ';' before '{' token
../../../kernel/locking/lockdep.c: In function '__bfs':
../../../kernel/locking/lockdep.c:1039: error: expected ';' before '{' token
../../../kernel/locking/lockdep.c: In function 'lookup_chain_cache':
../../../kernel/locking/lockdep.c:2036: error: 'entry' undeclared (first use in this function)
../../../kernel/locking/lockdep.c:2036: error: expected ';' before '{' token
../../../kernel/locking/lockdep.c:2063: error: label 'cache_hit' used but not defined
In file included from lockdep.c:10:
../../../kernel/locking/lockdep.c: In function 'lockdep_free_key_range':
../../../kernel/locking/lockdep.c:3937: error: 'hash_entry' undeclared (first use in this function)
../../../kernel/locking/lockdep.c:3937: error: expected ';' before '{' token
../../../kernel/locking/lockdep.c: In function 'lockdep_reset_lock':
../../../kernel/locking/lockdep.c:3994: error: 'hash_entry' undeclared (first use in this function)
../../../kernel/locking/lockdep.c:3994: error: expected ';' before '{' token

This patch fixes this compilation error.

Signed-off-by: Eunbong Song <[email protected]>
---
tools/lib/lockdep/lockdep.c | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/tools/lib/lockdep/lockdep.c b/tools/lib/lockdep/lockdep.c
index f42b7e9..f83a988 100644
--- a/tools/lib/lockdep/lockdep.c
+++ b/tools/lib/lockdep/lockdep.c
@@ -1,2 +1,8 @@
#include <linux/lockdep.h>
+
+#ifdef list_for_each_entry_rcu
+#undef list_for_each_entry_rcu
+#endif
+#define list_for_each_entry_rcu(pos, head, member) list_for_each_entry(pos, head, member)
+
#include "../../../kernel/locking/lockdep.c"
--
1.7.0.1

????{.n?+???????+%?????ݶ??w??{.n?+????{??G?????{ay?ʇڙ?,j??f???h?????????z_??(?階?ݢj"???m??????G????????????&???~???iO???z??v?^?m???? ????????I?


2015-04-21 12:21:01

by Sasha Levin

[permalink] [raw]
Subject: Re: [PATCH] tools/liblockdep: Fix compilation error.

On 04/21/2015 03:00 AM, Eunbong Song wrote:
> diff --git a/tools/lib/lockdep/lockdep.c b/tools/lib/lockdep/lockdep.c
> index f42b7e9..f83a988 100644
> --- a/tools/lib/lockdep/lockdep.c
> +++ b/tools/lib/lockdep/lockdep.c
> @@ -1,2 +1,8 @@
> #include <linux/lockdep.h>
> +
> +#ifdef list_for_each_entry_rcu
> +#undef list_for_each_entry_rcu
> +#endif
> +#define list_for_each_entry_rcu(pos, head, member) list_for_each_entry(pos, head, member)
> +
> #include "../../../kernel/locking/lockdep.c"

I'd rather have it pull include/linux/rculist.h and "fix" it up for userspace like we did for the
rest of the headers rather than start adding exceptions in the main program code.


Thanks,
Sasha