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

Matt Evans matt at ozlabs.org
Tue May 18 22:20:07 EDT 2010


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?

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.

Cheers,


Matt




More information about the kexec mailing list