* [PATCH] init/version.c: Silenced sparse warning by declaring the version string.
@ 2008-07-08 21:21 Daniel Guilak
2008-07-09 1:10 ` Josh Triplett
` (2 more replies)
0 siblings, 3 replies; 10+ messages in thread
From: Daniel Guilak @ 2008-07-08 21:21 UTC (permalink / raw)
To: linux-kernel; +Cc: trivial, akpm, torvalds, daniel
Signed-off-by: Daniel Guilak <daniel@danielguilak.com>
---
init/version.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/init/version.c b/init/version.c
index 9d17d70..041fd82 100644
--- a/init/version.c
+++ b/init/version.c
@@ -16,6 +16,7 @@
#define version(a) Version_ ## a
#define version_string(a) version(a)
+extern int version_string(LINUX_VERSION_CODE);
int version_string(LINUX_VERSION_CODE);
struct uts_namespace init_uts_ns = {
--
1.5.4.3
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: [PATCH] init/version.c: Silenced sparse warning by declaring the version string. 2008-07-08 21:21 [PATCH] init/version.c: Silenced sparse warning by declaring the version string Daniel Guilak @ 2008-07-09 1:10 ` Josh Triplett 2008-07-11 19:18 ` Andrew Morton 2008-07-14 19:04 ` [PATCH] init/version.c: Define version_string only if CONFIG_KALLSYMS is not defined Daniel Guilak 2 siblings, 0 replies; 10+ messages in thread From: Josh Triplett @ 2008-07-09 1:10 UTC (permalink / raw) To: Daniel Guilak; +Cc: linux-kernel, trivial, akpm, torvalds, daniel On Tue, 2008-07-08 at 14:21 -0700, Daniel Guilak wrote: > Signed-off-by: Daniel Guilak <daniel@danielguilak.com> Looks reasonable. Acked-by: Josh Triplett <josh@kernel.org> > --- > init/version.c | 1 + > 1 files changed, 1 insertions(+), 0 deletions(-) > > diff --git a/init/version.c b/init/version.c > index 9d17d70..041fd82 100644 > --- a/init/version.c > +++ b/init/version.c > @@ -16,6 +16,7 @@ > #define version(a) Version_ ## a > #define version_string(a) version(a) > > +extern int version_string(LINUX_VERSION_CODE); > int version_string(LINUX_VERSION_CODE); > > struct uts_namespace init_uts_ns = { ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] init/version.c: Silenced sparse warning by declaring the version string. 2008-07-08 21:21 [PATCH] init/version.c: Silenced sparse warning by declaring the version string Daniel Guilak 2008-07-09 1:10 ` Josh Triplett @ 2008-07-11 19:18 ` Andrew Morton 2008-07-14 19:02 ` Daniel Guilak 2008-07-14 19:04 ` [PATCH] init/version.c: Define version_string only if CONFIG_KALLSYMS is not defined Daniel Guilak 2 siblings, 1 reply; 10+ messages in thread From: Andrew Morton @ 2008-07-11 19:18 UTC (permalink / raw) To: Daniel Guilak; +Cc: linux-kernel, trivial, torvalds, daniel On Tue, 08 Jul 2008 14:21:09 -0700 Daniel Guilak <guilak@linux.vnet.ibm.com> wrote: > Signed-off-by: Daniel Guilak <daniel@danielguilak.com> Please always quote the warning or error message in the changelog when fixing it. Although it's pretty obvious in this case. > init/version.c | 1 + > 1 files changed, 1 insertions(+), 0 deletions(-) > > diff --git a/init/version.c b/init/version.c > index 9d17d70..041fd82 100644 > --- a/init/version.c > +++ b/init/version.c > @@ -16,6 +16,7 @@ > #define version(a) Version_ ## a > #define version_string(a) version(a) > > +extern int version_string(LINUX_VERSION_CODE); > int version_string(LINUX_VERSION_CODE); > > struct uts_namespace init_uts_ns = { hrm, what does this thing do? Seems to define int Version_132634; Then sticks that in the symbol table (and wastes a bit of bss). Does anything use it? Could it be made static? ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] init/version.c: Silenced sparse warning by declaring the version string. 2008-07-11 19:18 ` Andrew Morton @ 2008-07-14 19:02 ` Daniel Guilak 0 siblings, 0 replies; 10+ messages in thread From: Daniel Guilak @ 2008-07-14 19:02 UTC (permalink / raw) To: Andrew Morton; +Cc: linux-kernel, trivial, torvalds, daniel On Fri, 2008-07-11 at 12:18 -0700, Andrew Morton wrote: > On Tue, 08 Jul 2008 14:21:09 -0700 Daniel Guilak <guilak@linux.vnet.ibm.com> wrote: > > > Signed-off-by: Daniel Guilak <daniel@danielguilak.com> > > Please always quote the warning or error message in the changelog when > fixing it. Although it's pretty obvious in this case. > > > init/version.c | 1 + > > 1 files changed, 1 insertions(+), 0 deletions(-) > > > > diff --git a/init/version.c b/init/version.c > > index 9d17d70..041fd82 100644 > > --- a/init/version.c > > +++ b/init/version.c > > @@ -16,6 +16,7 @@ > > #define version(a) Version_ ## a > > #define version_string(a) version(a) > > > > +extern int version_string(LINUX_VERSION_CODE); > > int version_string(LINUX_VERSION_CODE); > > > > struct uts_namespace init_uts_ns = { > > hrm, what does this thing do? Seems to define > > int Version_132634; > > Then sticks that in the symbol table (and wastes a bit of bss). > > Does anything use it? > > Could it be made static? > > Apparently it's only used by the ksymoops tool, which is not needed if (according to README) the kernel is configured with CONFIG_KALLSYMS. So I will submit a patch depending on this one that will define version_string only if CONFIG_KALLSYMS is not defined, and hopefully that will deal with the problem. --Daniel Guilak ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH] init/version.c: Define version_string only if CONFIG_KALLSYMS is not defined. 2008-07-08 21:21 [PATCH] init/version.c: Silenced sparse warning by declaring the version string Daniel Guilak 2008-07-09 1:10 ` Josh Triplett 2008-07-11 19:18 ` Andrew Morton @ 2008-07-14 19:04 ` Daniel Guilak 2008-07-14 19:38 ` Randy Dunlap 2 siblings, 1 reply; 10+ messages in thread From: Daniel Guilak @ 2008-07-14 19:04 UTC (permalink / raw) To: linux-kernel; +Cc: trivial, akpm, torvalds, daniel int Version_* is only used with ksymoops, which is only needed (according to README and Documentation/Changes) if CONFIG_KALLSYMS is NOT defined. Therefore this patch defines version_string only if CONFIG_KALLSYMS is not defined. Signed-off-by: Daniel Guilak <daniel@danielguilak.com> --- init/version.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) Depends on "[PATCH] init/version.c: Silenced sparse warning by declaring the version string." diff --git a/init/version.c b/init/version.c index 041fd82..52a8b98 100644 --- a/init/version.c +++ b/init/version.c @@ -13,11 +13,13 @@ #include <linux/utsrelease.h> #include <linux/version.h> +#ifndef CONFIG_KALLSYMS #define version(a) Version_ ## a #define version_string(a) version(a) extern int version_string(LINUX_VERSION_CODE); int version_string(LINUX_VERSION_CODE); +#endif struct uts_namespace init_uts_ns = { .kref = { -- 1.5.4.3 ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] init/version.c: Define version_string only if CONFIG_KALLSYMS is not defined. 2008-07-14 19:04 ` [PATCH] init/version.c: Define version_string only if CONFIG_KALLSYMS is not defined Daniel Guilak @ 2008-07-14 19:38 ` Randy Dunlap 2008-07-14 21:20 ` Daniel Guilak 0 siblings, 1 reply; 10+ messages in thread From: Randy Dunlap @ 2008-07-14 19:38 UTC (permalink / raw) To: Daniel Guilak; +Cc: linux-kernel, trivial, akpm, torvalds, daniel On Mon, 14 Jul 2008 12:04:46 -0700 Daniel Guilak wrote: > int Version_* is only used with ksymoops, which is only needed (according to > README and Documentation/Changes) if CONFIG_KALLSYMS is NOT defined. Therefore > this patch defines version_string only if CONFIG_KALLSYMS is not defined. > > Signed-off-by: Daniel Guilak <daniel@danielguilak.com> > --- > init/version.c | 2 ++ > 1 files changed, 2 insertions(+), 0 deletions(-) > > Depends on "[PATCH] init/version.c: Silenced sparse warning by declaring the version string." > > diff --git a/init/version.c b/init/version.c > index 041fd82..52a8b98 100644 > --- a/init/version.c > +++ b/init/version.c > @@ -13,11 +13,13 @@ > #include <linux/utsrelease.h> > #include <linux/version.h> > > +#ifndef CONFIG_KALLSYMS > #define version(a) Version_ ## a > #define version_string(a) version(a) > > extern int version_string(LINUX_VERSION_CODE); > int version_string(LINUX_VERSION_CODE); > +#endif > > struct uts_namespace init_uts_ns = { > .kref = { > -- Does not apply cleanly to linux-2.6.26, linux-next-20080714, or Linus-git-head. and why do we ned both extern int version_string() and int version_string() ? --- ~Randy Linux Plumbers Conference, 17-19 September 2008, Portland, Oregon USA http://linuxplumbersconf.org/ ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] init/version.c: Define version_string only if CONFIG_KALLSYMS is not defined. 2008-07-14 19:38 ` Randy Dunlap @ 2008-07-14 21:20 ` Daniel Guilak 2008-07-14 21:25 ` Daniel Guilak 2008-07-14 22:07 ` Randy Dunlap 0 siblings, 2 replies; 10+ messages in thread From: Daniel Guilak @ 2008-07-14 21:20 UTC (permalink / raw) To: Randy Dunlap; +Cc: linux-kernel, trivial, akpm, torvalds, daniel On Mon, 2008-07-14 at 12:38 -0700, Randy Dunlap wrote: > On Mon, 14 Jul 2008 12:04:46 -0700 Daniel Guilak wrote: > > > int Version_* is only used with ksymoops, which is only needed (according to > > README and Documentation/Changes) if CONFIG_KALLSYMS is NOT defined. Therefore > > this patch defines version_string only if CONFIG_KALLSYMS is not defined. > > > > Signed-off-by: Daniel Guilak <daniel@danielguilak.com> > > --- > > init/version.c | 2 ++ > > 1 files changed, 2 insertions(+), 0 deletions(-) > > > > Depends on "[PATCH] init/version.c: Silenced sparse warning by declaring the version string." > > > > diff --git a/init/version.c b/init/version.c > > index 041fd82..52a8b98 100644 > > --- a/init/version.c > > +++ b/init/version.c > > @@ -13,11 +13,13 @@ > > #include <linux/utsrelease.h> > > #include <linux/version.h> > > > > +#ifndef CONFIG_KALLSYMS > > #define version(a) Version_ ## a > > #define version_string(a) version(a) > > > > extern int version_string(LINUX_VERSION_CODE); > > int version_string(LINUX_VERSION_CODE); > > +#endif > > > > struct uts_namespace init_uts_ns = { > > .kref = { > > -- > > Does not apply cleanly to linux-2.6.26, linux-next-20080714, or Linus-git-head. > Did you apply "[PATCH] init/version.c: Silenced sparse warning by declaring the version string." beforehand? I just applied it on the most recent tree and I didn't have any issues. > and why do we ned both extern int version_string() > and int version_string() ? Because sparse was complaining that it wasn't prototyped or static. There isn't a header file to put it in since it only exists to be a kernel. > --- > ~Randy > Linux Plumbers Conference, 17-19 September 2008, Portland, Oregon USA > http://linuxplumbersconf.org/ --Daniel ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] init/version.c: Define version_string only if CONFIG_KALLSYMS is not defined. 2008-07-14 21:20 ` Daniel Guilak @ 2008-07-14 21:25 ` Daniel Guilak 2008-07-14 22:07 ` Randy Dunlap 1 sibling, 0 replies; 10+ messages in thread From: Daniel Guilak @ 2008-07-14 21:25 UTC (permalink / raw) To: Randy Dunlap; +Cc: linux-kernel, trivial, akpm, torvalds, daniel On Mon, 2008-07-14 at 14:20 -0700, Daniel Guilak wrote: > On Mon, 2008-07-14 at 12:38 -0700, Randy Dunlap wrote: > > On Mon, 14 Jul 2008 12:04:46 -0700 Daniel Guilak wrote: > > > > > int Version_* is only used with ksymoops, which is only needed (according to > > > README and Documentation/Changes) if CONFIG_KALLSYMS is NOT defined. Therefore > > > this patch defines version_string only if CONFIG_KALLSYMS is not defined. > > > > > > Signed-off-by: Daniel Guilak <daniel@danielguilak.com> > > > --- > > > init/version.c | 2 ++ > > > 1 files changed, 2 insertions(+), 0 deletions(-) > > > > > > Depends on "[PATCH] init/version.c: Silenced sparse warning by declaring the version string." > > > > > > diff --git a/init/version.c b/init/version.c > > > index 041fd82..52a8b98 100644 > > > --- a/init/version.c > > > +++ b/init/version.c > > > @@ -13,11 +13,13 @@ > > > #include <linux/utsrelease.h> > > > #include <linux/version.h> > > > > > > +#ifndef CONFIG_KALLSYMS > > > #define version(a) Version_ ## a > > > #define version_string(a) version(a) > > > > > > extern int version_string(LINUX_VERSION_CODE); > > > int version_string(LINUX_VERSION_CODE); > > > +#endif > > > > > > struct uts_namespace init_uts_ns = { > > > .kref = { > > > -- > > > > Does not apply cleanly to linux-2.6.26, linux-next-20080714, or Linus-git-head. > > > > Did you apply "[PATCH] init/version.c: Silenced sparse warning by > declaring the version string." beforehand? I just applied it on the most > recent tree and I didn't have any issues. > > > and why do we ned both extern int version_string() > > and int version_string() ? > Because sparse was complaining that it wasn't prototyped or static. > There isn't a header file to put it in since it only exists to be a > kernel. "Symbol", not "kernel", sorry. > > --- > > ~Randy > > Linux Plumbers Conference, 17-19 September 2008, Portland, Oregon USA > > http://linuxplumbersconf.org/ > > --Daniel ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] init/version.c: Define version_string only if CONFIG_KALLSYMS is not defined. 2008-07-14 21:20 ` Daniel Guilak 2008-07-14 21:25 ` Daniel Guilak @ 2008-07-14 22:07 ` Randy Dunlap 2008-07-14 22:29 ` Daniel Guilak 1 sibling, 1 reply; 10+ messages in thread From: Randy Dunlap @ 2008-07-14 22:07 UTC (permalink / raw) To: Daniel Guilak; +Cc: linux-kernel, trivial, akpm, torvalds, daniel On Mon, 14 Jul 2008 14:20:38 -0700 Daniel Guilak wrote: > On Mon, 2008-07-14 at 12:38 -0700, Randy Dunlap wrote: > > On Mon, 14 Jul 2008 12:04:46 -0700 Daniel Guilak wrote: > > > > > int Version_* is only used with ksymoops, which is only needed (according to > > > README and Documentation/Changes) if CONFIG_KALLSYMS is NOT defined. Therefore > > > this patch defines version_string only if CONFIG_KALLSYMS is not defined. > > > > > > Signed-off-by: Daniel Guilak <daniel@danielguilak.com> > > > --- > > > init/version.c | 2 ++ > > > 1 files changed, 2 insertions(+), 0 deletions(-) > > > > > > Depends on "[PATCH] init/version.c: Silenced sparse warning by declaring the version string." > > > > > > diff --git a/init/version.c b/init/version.c > > > index 041fd82..52a8b98 100644 > > > --- a/init/version.c > > > +++ b/init/version.c > > > @@ -13,11 +13,13 @@ > > > #include <linux/utsrelease.h> > > > #include <linux/version.h> > > > > > > +#ifndef CONFIG_KALLSYMS > > > #define version(a) Version_ ## a > > > #define version_string(a) version(a) > > > > > > extern int version_string(LINUX_VERSION_CODE); > > > int version_string(LINUX_VERSION_CODE); > > > +#endif > > > > > > struct uts_namespace init_uts_ns = { > > > .kref = { > > > -- > > > > Does not apply cleanly to linux-2.6.26, linux-next-20080714, or Linus-git-head. > > > > Did you apply "[PATCH] init/version.c: Silenced sparse warning by > declaring the version string." beforehand? I just applied it on the most > recent tree and I didn't have any issues. Clearly I didn't apply that patch. I missed anything saying that this was patch 2/2 in a dependent series. > > and why do we ned both extern int version_string() > > and int version_string() ? > Because sparse was complaining that it wasn't prototyped or static. > There isn't a header file to put it in since it only exists to be a > kernel. so the extern makes it be published in the symbol table, whereas a static would keep it private. Is that correct? and the second line (int version_string(LINUX_VERSION_CODE)) actually defines it. --- ~Randy Linux Plumbers Conference, 17-19 September 2008, Portland, Oregon USA http://linuxplumbersconf.org/ ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] init/version.c: Define version_string only if CONFIG_KALLSYMS is not defined. 2008-07-14 22:07 ` Randy Dunlap @ 2008-07-14 22:29 ` Daniel Guilak 0 siblings, 0 replies; 10+ messages in thread From: Daniel Guilak @ 2008-07-14 22:29 UTC (permalink / raw) To: Randy Dunlap; +Cc: linux-kernel, trivial, akpm, torvalds, daniel On Mon, 2008-07-14 at 15:07 -0700, Randy Dunlap wrote: > On Mon, 14 Jul 2008 14:20:38 -0700 Daniel Guilak wrote: > > > On Mon, 2008-07-14 at 12:38 -0700, Randy Dunlap wrote: > > > On Mon, 14 Jul 2008 12:04:46 -0700 Daniel Guilak wrote: > > > > > > > int Version_* is only used with ksymoops, which is only needed (according to > > > > README and Documentation/Changes) if CONFIG_KALLSYMS is NOT defined. Therefore > > > > this patch defines version_string only if CONFIG_KALLSYMS is not defined. > > > > > > > > Signed-off-by: Daniel Guilak <daniel@danielguilak.com> > > > > --- > > > > init/version.c | 2 ++ > > > > 1 files changed, 2 insertions(+), 0 deletions(-) > > > > > > > > Depends on "[PATCH] init/version.c: Silenced sparse warning by declaring the version string." > > > > > > > > diff --git a/init/version.c b/init/version.c > > > > index 041fd82..52a8b98 100644 > > > > --- a/init/version.c > > > > +++ b/init/version.c > > > > @@ -13,11 +13,13 @@ > > > > #include <linux/utsrelease.h> > > > > #include <linux/version.h> > > > > > > > > +#ifndef CONFIG_KALLSYMS > > > > #define version(a) Version_ ## a > > > > #define version_string(a) version(a) > > > > > > > > extern int version_string(LINUX_VERSION_CODE); > > > > int version_string(LINUX_VERSION_CODE); > > > > +#endif > > > > > > > > struct uts_namespace init_uts_ns = { > > > > .kref = { > > > > -- > > > > > > Does not apply cleanly to linux-2.6.26, linux-next-20080714, or Linus-git-head. > > > > > > > Did you apply "[PATCH] init/version.c: Silenced sparse warning by > > declaring the version string." beforehand? I just applied it on the most > > recent tree and I didn't have any issues. > > Clearly I didn't apply that patch. I missed anything saying that this was > patch 2/2 in a dependent series. Sorry about that, I should have been a bit more clear with it. Next time I'll make sure to state that in the subject line. I stated the dependency right before the diff message. > > > and why do we ned both extern int version_string() > > > and int version_string() ? > > Because sparse was complaining that it wasn't prototyped or static. > > There isn't a header file to put it in since it only exists to be a > > kernel. > > so the extern makes it be published in the symbol table, whereas a static > would keep it private. Is that correct? > > and the second line (int version_string(LINUX_VERSION_CODE)) actually > defines it. Yes, that's exactly the idea behind it. --Daniel ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2008-07-14 22:30 UTC | newest] Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2008-07-08 21:21 [PATCH] init/version.c: Silenced sparse warning by declaring the version string Daniel Guilak 2008-07-09 1:10 ` Josh Triplett 2008-07-11 19:18 ` Andrew Morton 2008-07-14 19:02 ` Daniel Guilak 2008-07-14 19:04 ` [PATCH] init/version.c: Define version_string only if CONFIG_KALLSYMS is not defined Daniel Guilak 2008-07-14 19:38 ` Randy Dunlap 2008-07-14 21:20 ` Daniel Guilak 2008-07-14 21:25 ` Daniel Guilak 2008-07-14 22:07 ` Randy Dunlap 2008-07-14 22:29 ` Daniel Guilak
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox
Powered by JetHome