Message ID | 1310671867-5107-1-git-send-email-lacombar@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Em 14-07-2011 16:31, Arnaud Lacombe escreveu: > The specialized printer for headers (espectially autoconf.h) is missing fixup > code for S_HEX symbol's "0x" prefix. As long as kconfig does not warn for such > missing prefix, this code is needed. Fix this. > > In the same time, fix some nits in `header_print_symbol()'. > > Cc: Randy Dunlap <rdunlap@xenotime.net> > Cc: Mauro Carvalho Chehab <mchehab@infradead.org> > > Broken-by: Arnaud Lacombe <lacombar@gmail.com> > (Somehow-)Reported-by: Randy Dunlap <rdunlap@xenotime.net> > Reported-by: Mauro Carvalho Chehab <mchehab@infradead.org> > Signed-off-by: Arnaud Lacombe <lacombar@gmail.com> Patch looks good for me. Feel free to add my ack, if you want. Acked-by: Mauro Carvalho Chehab <mchehab@redhat.com> > > --- > scripts/kconfig/confdata.c | 26 +++++++++++++++++++++----- > 1 files changed, 21 insertions(+), 5 deletions(-) > > diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c > index be6952c..df629ec 100644 > --- a/scripts/kconfig/confdata.c > +++ b/scripts/kconfig/confdata.c > @@ -487,27 +487,43 @@ static struct conf_printer kconfig_printer_cb = > static void > header_print_symbol(FILE *fp, struct symbol *sym, const char *value, void *arg) > { > - const char *suffix = ""; > > switch (sym->type) { > case S_BOOLEAN: > - case S_TRISTATE: > + case S_TRISTATE: { > + const char *suffix = ""; > + > switch (*value) { > case 'n': > return; > case 'm': > suffix = "_MODULE"; > - /* FALLTHROUGH */ > + /* fall through */ > default: > value = "1"; > } > + fprintf(fp, "#define %s%s%s %s\n", > + CONFIG_, sym->name, suffix, value); > + break; > + } > + case S_HEX: { > + const char *prefix = ""; > + > + if (value[0] != '0' || (value[1] != 'x' && value[1] != 'X')) > + prefix = "0x"; > + fprintf(fp, "#define %s%s %s%s\n", > + CONFIG_, sym->name, prefix, value); > + break; > + } > + case S_STRING: > + case S_INT: > + fprintf(fp, "#define %s%s %s\n", > + CONFIG_, sym->name, value); > break; > default: > break; > } > > - fprintf(fp, "#define %s%s%s %s\n", > - CONFIG_, sym->name, suffix, value); > } > > static void -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Thu, 14 Jul 2011 15:31:07 -0400 Arnaud Lacombe wrote: > The specialized printer for headers (espectially autoconf.h) is missing fixup > code for S_HEX symbol's "0x" prefix. As long as kconfig does not warn for such > missing prefix, this code is needed. Fix this. > > In the same time, fix some nits in `header_print_symbol()'. > > Cc: Randy Dunlap <rdunlap@xenotime.net> > Cc: Mauro Carvalho Chehab <mchehab@infradead.org> > > Broken-by: Arnaud Lacombe <lacombar@gmail.com> > (Somehow-)Reported-by: Randy Dunlap <rdunlap@xenotime.net> http://marc.info/?l=linux-next&m=130981163121463&w=2 Acked-by: Randy Dunlap <rdunlap@xenotime.net> Thanks. > Reported-by: Mauro Carvalho Chehab <mchehab@infradead.org> > Signed-off-by: Arnaud Lacombe <lacombar@gmail.com> > > --- > scripts/kconfig/confdata.c | 26 +++++++++++++++++++++----- > 1 files changed, 21 insertions(+), 5 deletions(-) > > diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c > index be6952c..df629ec 100644 > --- a/scripts/kconfig/confdata.c > +++ b/scripts/kconfig/confdata.c > @@ -487,27 +487,43 @@ static struct conf_printer kconfig_printer_cb = > static void > header_print_symbol(FILE *fp, struct symbol *sym, const char *value, void *arg) > { > - const char *suffix = ""; > > switch (sym->type) { > case S_BOOLEAN: > - case S_TRISTATE: > + case S_TRISTATE: { > + const char *suffix = ""; > + > switch (*value) { > case 'n': > return; > case 'm': > suffix = "_MODULE"; > - /* FALLTHROUGH */ > + /* fall through */ > default: > value = "1"; > } > + fprintf(fp, "#define %s%s%s %s\n", > + CONFIG_, sym->name, suffix, value); > + break; > + } > + case S_HEX: { > + const char *prefix = ""; > + > + if (value[0] != '0' || (value[1] != 'x' && value[1] != 'X')) > + prefix = "0x"; > + fprintf(fp, "#define %s%s %s%s\n", > + CONFIG_, sym->name, prefix, value); > + break; > + } > + case S_STRING: > + case S_INT: > + fprintf(fp, "#define %s%s %s\n", > + CONFIG_, sym->name, value); > break; > default: > break; > } > > - fprintf(fp, "#define %s%s%s %s\n", > - CONFIG_, sym->name, suffix, value); > } > > static void > -- > 1.7.3.4.574.g608b.dirty > --- ~Randy *** Remember to use Documentation/SubmitChecklist when testing your code *** -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Thu, Jul 14, 2011 at 03:31:07PM -0400, Arnaud Lacombe wrote: > The specialized printer for headers (espectially autoconf.h) is missing fixup > code for S_HEX symbol's "0x" prefix. As long as kconfig does not warn for such > missing prefix, this code is needed. Fix this. > > In the same time, fix some nits in `header_print_symbol()'. > > Cc: Randy Dunlap <rdunlap@xenotime.net> > Cc: Mauro Carvalho Chehab <mchehab@infradead.org> > > Broken-by: Arnaud Lacombe <lacombar@gmail.com> > (Somehow-)Reported-by: Randy Dunlap <rdunlap@xenotime.net> > Reported-by: Mauro Carvalho Chehab <mchehab@infradead.org> > Signed-off-by: Arnaud Lacombe <lacombar@gmail.com> Thanks, applied kbuild-2.6.git#kconfig. It did actually compare the kconfig generated files after your previous patch, but I only compared defconfig and it didn't trigger this bug. Michal -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Hi, On Mon, Jul 18, 2011 at 10:29 AM, Michal Marek <mmarek@suse.cz> wrote: > On Thu, Jul 14, 2011 at 03:31:07PM -0400, Arnaud Lacombe wrote: >> The specialized printer for headers (espectially autoconf.h) is missing fixup >> code for S_HEX symbol's "0x" prefix. As long as kconfig does not warn for such >> missing prefix, this code is needed. Fix this. >> >> In the same time, fix some nits in `header_print_symbol()'. >> >> Cc: Randy Dunlap <rdunlap@xenotime.net> >> Cc: Mauro Carvalho Chehab <mchehab@infradead.org> >> >> Broken-by: Arnaud Lacombe <lacombar@gmail.com> >> (Somehow-)Reported-by: Randy Dunlap <rdunlap@xenotime.net> >> Reported-by: Mauro Carvalho Chehab <mchehab@infradead.org> >> Signed-off-by: Arnaud Lacombe <lacombar@gmail.com> > > Thanks, applied kbuild-2.6.git#kconfig. It did actually compare the > kconfig generated files after your previous patch, but I only compared > defconfig and it didn't trigger this bug. > this is why kconfig _needs_ a regression testsuite, not to rely on any existing configuration or syntax which may only be used in the corners of dark architecture. :-) I'm more or less working on that. - Arnaud -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c index be6952c..df629ec 100644 --- a/scripts/kconfig/confdata.c +++ b/scripts/kconfig/confdata.c @@ -487,27 +487,43 @@ static struct conf_printer kconfig_printer_cb = static void header_print_symbol(FILE *fp, struct symbol *sym, const char *value, void *arg) { - const char *suffix = ""; switch (sym->type) { case S_BOOLEAN: - case S_TRISTATE: + case S_TRISTATE: { + const char *suffix = ""; + switch (*value) { case 'n': return; case 'm': suffix = "_MODULE"; - /* FALLTHROUGH */ + /* fall through */ default: value = "1"; } + fprintf(fp, "#define %s%s%s %s\n", + CONFIG_, sym->name, suffix, value); + break; + } + case S_HEX: { + const char *prefix = ""; + + if (value[0] != '0' || (value[1] != 'x' && value[1] != 'X')) + prefix = "0x"; + fprintf(fp, "#define %s%s %s%s\n", + CONFIG_, sym->name, prefix, value); + break; + } + case S_STRING: + case S_INT: + fprintf(fp, "#define %s%s %s\n", + CONFIG_, sym->name, value); break; default: break; } - fprintf(fp, "#define %s%s%s %s\n", - CONFIG_, sym->name, suffix, value); } static void
The specialized printer for headers (espectially autoconf.h) is missing fixup code for S_HEX symbol's "0x" prefix. As long as kconfig does not warn for such missing prefix, this code is needed. Fix this. In the same time, fix some nits in `header_print_symbol()'. Cc: Randy Dunlap <rdunlap@xenotime.net> Cc: Mauro Carvalho Chehab <mchehab@infradead.org> Broken-by: Arnaud Lacombe <lacombar@gmail.com> (Somehow-)Reported-by: Randy Dunlap <rdunlap@xenotime.net> Reported-by: Mauro Carvalho Chehab <mchehab@infradead.org> Signed-off-by: Arnaud Lacombe <lacombar@gmail.com> --- scripts/kconfig/confdata.c | 26 +++++++++++++++++++++----- 1 files changed, 21 insertions(+), 5 deletions(-)