Re: [PATCH v2] kexec-tools: Fix option/argument parsing

Simon Horman
2010-05-19T02:55:20Z

On Wed, May 19, 2010 at 12:20:07PM +1000, Matt Evans wrote:
> Howdy Simon,
>
>
> Simon Horman wrote:
> > On Fri, May 14, 2010 at 02:15:09PM +1000, Matt Evans wrote:
> >
> > [snip]
> >
> >> diff --git a/kexec/arch/x86_64/include/arch/options.h b/kexec/arch/x86_64/include/arch/options.h
> >> deleted file mode 100644
> >> index 75065b9..0000000
> >> --- a/kexec/arch/x86_64/include/arch/options.h
> >> +++ /dev/null
> >> @@ -1,22 +0,0 @@
> >> -#ifndef KEXEC_ARCH_X86_64_OPTIONS_H
> >> -#define KEXEC_ARCH_X86_64_OPTIONS_H
> >> -
> >> -#define OPT_RESET_VGA (OPT_MAX+0)
> >> -#define OPT_SERIAL (OPT_MAX+1)
> >> -#define OPT_SERIAL_BAUD (OPT_MAX+2)
> >> -#define OPT_CONSOLE_VGA (OPT_MAX+3)
> >> -#define OPT_CONSOLE_SERIAL (OPT_MAX+4)
> >> -#define OPT_ARCH_MAX (OPT_MAX+5)
> >> -
> >> -#define KEXEC_ARCH_OPTIONS \
> >> - KEXEC_OPTIONS \
> >> - { "reset-vga", 0, 0, OPT_RESET_VGA }, \
> >> - { "serial", 1, 0, OPT_SERIAL }, \
> >> - { "serial-baud", 1, 0, OPT_SERIAL_BAUD }, \
> >> - { "console-vga", 0, 0, OPT_CONSOLE_VGA }, \
> >> - { "console-serial", 0, 0, OPT_CONSOLE_SERIAL }, \
> >> -
> >> -#define KEXEC_ARCH_OPT_STR KEXEC_OPT_STR ""
> >> -
> >> -#endif /* KEXEC_ARCH_X86_64_OPTIONS_H */
> >> -
> >> diff --git a/kexec/arch/x86_64/include/arch/options.h b/kexec/arch/x86_64/include/arch/options.h
> >> new file mode 120000
> >> index 0000000..047b0f9
> >> --- /dev/null
> >> +++ b/kexec/arch/x86_64/include/arch/options.h
> >> @@ -0,0 +1 @@
> >> +../../../i386/include/arch/options.h
> >> \ No newline at end of file
> >
> > The fragment above seems to a) belong in the previous fragment and
> > b) be bogus. In any case x86_64 fails to build.
> >
> > kexec/kexec.c: In function 'main':
> > kexec/kexec.c:1061: error: 'KEXEC_ALL_OPTIONS' undeclared (first use in this function)
>
> Well, a bit weird but not bogus: It's a type change chunk (see 'new file mode'), replacing kexec/arch/x86_64/include/arch/options.h with a symlink to kexec/arch/i386/include/arch/options.h.
>
> I've tested it applies cleanly with git-apply, and builds on x86-64 -- are you applying it with patch?

Yes, I thats was the cause of my problems :-)
I'm using git-apply now and everything seems fine and dandy.
I'll apply the change if the current builds succeed.

> I used a symlink, though grotty, as many places look to include <arch/options.h> and the x86-64/i386 builds essentially have the same set of options.
>
> I'll repost the patch without the trailing whitespace (oops) but if there's a better way to do this let me know & I'll include that instead.

I can fix the white-space, no need to repost at this stage.