2013-09-18 23:23:17

by Vinson Lee

[permalink] [raw]
Subject: [PATCH] tools lib lk: Uninclude linux/magic.h in debugfs.c.

From: Vinson Lee <[email protected]>

The compilation only looks for linux/magic.h from the default include
paths, which does not include the source tree. This results in a build
error if linux/magic.h is not available or not installed.

For example, this build error occurs on CentOS 5.

$ make -C tools/lib/lk V=1
[...]
gcc -o debugfs.o -c -ggdb3 -Wall -Wextra -std=gnu99 -Werror -O6
-D_FORTIFY_SOURCE=2 -Wbad-function-cast -Wdeclaration-after-statement
-Wformat-security -Wformat-y2k -Winit-self -Wmissing-declarations
-Wmissing-prototypes -Wnested-externs -Wno-system-headers
-Wold-style-definition -Wpacked -Wredundant-decls -Wshadow
-Wstrict-aliasing=3 -Wstrict-prototypes -Wswitch-default -Wswitch-enum
-Wundef -Wwrite-strings -Wformat -fPIC -D_LARGEFILE64_SOURCE
-D_FILE_OFFSET_BITS=64 debugfs.c
debugfs.c:8:25: error: linux/magic.h: No such file or directory

The only symbol from linux/magic.h needed by debugfs.c is DEBUGFS_MAGIC,
and that is already defined in debugfs.h. linux/magic.h isn't providing
any extra symbols and can unincluded. This is similar to the approach by
perf, which has its own magic.h wrapper at
tools/perf/util/include/linux/magic.h

Signed-off-by: Vinson Lee <[email protected]>
Cc: [email protected] # 3.10+
---
tools/lib/lk/debugfs.c | 1 -
1 file changed, 1 deletion(-)

diff --git a/tools/lib/lk/debugfs.c b/tools/lib/lk/debugfs.c
index 099e7cd..7c43479 100644
--- a/tools/lib/lk/debugfs.c
+++ b/tools/lib/lk/debugfs.c
@@ -5,7 +5,6 @@
#include <stdbool.h>
#include <sys/vfs.h>
#include <sys/mount.h>
-#include <linux/magic.h>
#include <linux/kernel.h>

#include "debugfs.h"
--
1.8.2.1


2013-09-19 07:17:29

by Borislav Petkov

[permalink] [raw]
Subject: Re: [PATCH] tools lib lk: Uninclude linux/magic.h in debugfs.c.

On Wed, Sep 18, 2013 at 04:16:40PM -0700, Vinson Lee wrote:
> From: Vinson Lee <[email protected]>
>
> The compilation only looks for linux/magic.h from the default include
> paths, which does not include the source tree. This results in a build
> error if linux/magic.h is not available or not installed.

Right, we have:

tools/perf/util/include/linux/magic.h

but tools/lib/lk/Makefile doesn't know about it, it seems. Oh well, the
solution falling back to debugfs.h is even better. :)

> For example, this build error occurs on CentOS 5.
>
> $ make -C tools/lib/lk V=1
> [...]
> gcc -o debugfs.o -c -ggdb3 -Wall -Wextra -std=gnu99 -Werror -O6
> -D_FORTIFY_SOURCE=2 -Wbad-function-cast -Wdeclaration-after-statement
> -Wformat-security -Wformat-y2k -Winit-self -Wmissing-declarations
> -Wmissing-prototypes -Wnested-externs -Wno-system-headers
> -Wold-style-definition -Wpacked -Wredundant-decls -Wshadow
> -Wstrict-aliasing=3 -Wstrict-prototypes -Wswitch-default -Wswitch-enum
> -Wundef -Wwrite-strings -Wformat -fPIC -D_LARGEFILE64_SOURCE
> -D_FILE_OFFSET_BITS=64 debugfs.c
> debugfs.c:8:25: error: linux/magic.h: No such file or directory
>
> The only symbol from linux/magic.h needed by debugfs.c is DEBUGFS_MAGIC,
> and that is already defined in debugfs.h. linux/magic.h isn't providing
> any extra symbols and can unincluded. This is similar to the approach by
> perf, which has its own magic.h wrapper at
> tools/perf/util/include/linux/magic.h
>
> Signed-off-by: Vinson Lee <[email protected]>
> Cc: [email protected] # 3.10+

Acked-by: Borislav Petkov <[email protected]>

> ---
> tools/lib/lk/debugfs.c | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/tools/lib/lk/debugfs.c b/tools/lib/lk/debugfs.c
> index 099e7cd..7c43479 100644
> --- a/tools/lib/lk/debugfs.c
> +++ b/tools/lib/lk/debugfs.c
> @@ -5,7 +5,6 @@
> #include <stdbool.h>
> #include <sys/vfs.h>
> #include <sys/mount.h>
> -#include <linux/magic.h>
> #include <linux/kernel.h>
>
> #include "debugfs.h"
> --
> 1.8.2.1
>

--
Regards/Gruss,
Boris.

Sent from a fat crate under my desk. Formatting is fine.
--

2013-09-19 15:32:27

by Arnaldo Carvalho de Melo

[permalink] [raw]
Subject: Re: [PATCH] tools lib lk: Uninclude linux/magic.h in debugfs.c.

Em Thu, Sep 19, 2013 at 09:17:20AM +0200, Borislav Petkov escreveu:
> On Wed, Sep 18, 2013 at 04:16:40PM -0700, Vinson Lee wrote:
> > From: Vinson Lee <[email protected]>
> >
> > The compilation only looks for linux/magic.h from the default include
> >
> > Signed-off-by: Vinson Lee <[email protected]>
> > Cc: [email protected] # 3.10+
>
> Acked-by: Borislav Petkov <[email protected]>

Thanks, applied.

- Arnaldo

Subject: [tip:perf/urgent] tools lib lk: Uninclude linux/ magic.h in debugfs.c

Commit-ID: ce7eebe5c3deef8e19c177c24ee75843256e69ca
Gitweb: http://git.kernel.org/tip/ce7eebe5c3deef8e19c177c24ee75843256e69ca
Author: Vinson Lee <[email protected]>
AuthorDate: Wed, 18 Sep 2013 16:16:40 -0700
Committer: Arnaldo Carvalho de Melo <[email protected]>
CommitDate: Thu, 19 Sep 2013 15:08:53 -0300

tools lib lk: Uninclude linux/magic.h in debugfs.c

The compilation only looks for linux/magic.h from the default include
paths, which does not include the source tree. This results in a build
error if linux/magic.h is not available or not installed.

For example, this build error occurs on CentOS 5.

$ make -C tools/lib/lk V=1
[...]
gcc -o debugfs.o -c -ggdb3 -Wall -Wextra -std=gnu99 -Werror -O6
-D_FORTIFY_SOURCE=2 -Wbad-function-cast -Wdeclaration-after-statement
-Wformat-security -Wformat-y2k -Winit-self -Wmissing-declarations
-Wmissing-prototypes -Wnested-externs -Wno-system-headers
-Wold-style-definition -Wpacked -Wredundant-decls -Wshadow
-Wstrict-aliasing=3 -Wstrict-prototypes -Wswitch-default -Wswitch-enum
-Wundef -Wwrite-strings -Wformat -fPIC -D_LARGEFILE64_SOURCE
-D_FILE_OFFSET_BITS=64 debugfs.c
debugfs.c:8:25: error: linux/magic.h: No such file or directory

The only symbol from linux/magic.h needed by debugfs.c is DEBUGFS_MAGIC,
and that is already defined in debugfs.h. linux/magic.h isn't providing
any extra symbols and can unincluded. This is similar to the approach by
perf, which has its own magic.h wrapper at
tools/perf/util/include/linux/magic.h

Signed-off-by: Vinson Lee <[email protected]>
Acked-by: Borislav Petkov <[email protected]>
Cc: Borislav Petkov <[email protected]>
Cc: Vinson Lee <[email protected]>
Cc: [email protected]
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
---
tools/lib/lk/debugfs.c | 1 -
1 file changed, 1 deletion(-)

diff --git a/tools/lib/lk/debugfs.c b/tools/lib/lk/debugfs.c
index 099e7cd..7c43479 100644
--- a/tools/lib/lk/debugfs.c
+++ b/tools/lib/lk/debugfs.c
@@ -5,7 +5,6 @@
#include <stdbool.h>
#include <sys/vfs.h>
#include <sys/mount.h>
-#include <linux/magic.h>
#include <linux/kernel.h>

#include "debugfs.h"