This is a backport of the following upstream commit:
commit fa35410
Author: Baoquan He <bhe(a)redhat.com>
Date: Tue Jul 2 11:09:20 2013 +0900
Assign non-printable value as short options.
It's needed for applying commit 414d3ed ("Add --non-mmap option to
disable mmap() manually").
Signed-off-by: WANG Chao <chaowang(a)redhat.com>
---
...ssign-non-printable-value-as-short-option.patch | 244 +++++++++++++++++++++
kexec-tools.spec | 3 +-
2 files changed, 246 insertions(+), 1 deletion(-)
create mode 100644
kexec-tools-2.0.4-makedumpfile-Assign-non-printable-value-as-short-option.patch
diff --git
a/kexec-tools-2.0.4-makedumpfile-Assign-non-printable-value-as-short-option.patch
b/kexec-tools-2.0.4-makedumpfile-Assign-non-printable-value-as-short-option.patch
new file mode 100644
index 0000000..115e3d8
--- /dev/null
+++ b/kexec-tools-2.0.4-makedumpfile-Assign-non-printable-value-as-short-option.patch
@@ -0,0 +1,244 @@
+From bd67c1d5e2633f302b4c0ad50cc830ff7da20b2a Mon Sep 17 00:00:00 2001
+From: Baoquan He <bhe(a)redhat.com>
+Date: Tue, 2 Jul 2013 11:09:20 +0900
+Subject: [PATCH 1/2] [PATCH 1/2] Assign non-printable value as short options.
+
+Characters for short options is limited, and now makedumpfile has
+considerably many options. As times go on, no enough reasonable
+letters can be assigned to each functionality with short options.
+
+E.g non-cyclic vs Y, cyclic-buffer vs Z, eppic vs S.
+
+Now assign non-printable value to these kind of short optins, meanwhile
+define them as indicative MACRO which can make code more readable.
+
+Signed-off-by: Baoquan He <bhe(a)redhat.com>
+---
+ makedumpfile.c | 88 +++++++++++++++++++++++++++++-----------------------------
+ makedumpfile.h | 35 +++++++++++++++++++++++
+ 2 files changed, 79 insertions(+), 44 deletions(-)
+
+diff --git a/makedumpfile-1.5.4/makedumpfile.c b/makedumpfile-1.5.4/makedumpfile.c
+index b42565c..bb72c66 100644
+--- a/makedumpfile-1.5.4/makedumpfile.c
++++ b/makedumpfile-1.5.4/makedumpfile.c
+@@ -8555,20 +8555,20 @@ calculate_cyclic_buffer_size(void) {
+ }
+
+ static struct option longopts[] = {
+- {"split", no_argument, NULL, 's'},
+- {"reassemble", no_argument, NULL, 'r'},
+- {"xen-syms", required_argument, NULL, 'y'},
+- {"xen-vmcoreinfo", required_argument, NULL, 'z'},
+- {"xen_phys_start", required_argument, NULL, 'P'},
+- {"message-level", required_argument, NULL, 'm'},
+- {"vtop", required_argument, NULL, 'V'},
+- {"dump-dmesg", no_argument, NULL, 'M'},
+- {"config", required_argument, NULL, 'C'},
+- {"help", no_argument, NULL, 'h'},
+- {"diskset", required_argument, NULL, 'k'},
+- {"non-cyclic", no_argument, NULL, 'Y'},
+- {"cyclic-buffer", required_argument, NULL, 'Z'},
+- {"eppic", required_argument, NULL, 'S'},
++ {"split", no_argument, NULL, OPT_SPLIT},
++ {"reassemble", no_argument, NULL, OPT_REASSEMBLE},
++ {"xen-syms", required_argument, NULL, OPT_XEN_SYMS},
++ {"xen-vmcoreinfo", required_argument, NULL, OPT_XEN_VMCOREINFO},
++ {"xen_phys_start", required_argument, NULL, OPT_XEN_PHYS_START},
++ {"message-level", required_argument, NULL, OPT_MESSAGE_LEVEL},
++ {"vtop", required_argument, NULL, OPT_VTOP},
++ {"dump-dmesg", no_argument, NULL, OPT_DUMP_DMESG},
++ {"config", required_argument, NULL, OPT_CONFIG},
++ {"help", no_argument, NULL, OPT_HELP},
++ {"diskset", required_argument, NULL, OPT_DISKSET},
++ {"non-cyclic", no_argument, NULL, OPT_NON_CYCLIC},
++ {"cyclic-buffer", required_argument, NULL, OPT_CYCLIC_BUFFER},
++ {"eppic", required_argument, NULL, OPT_EPPIC},
+ {0, 0, 0, 0}
+ };
+
+@@ -8597,29 +8597,29 @@ main(int argc, char *argv[])
+
+ info->block_order = DEFAULT_ORDER;
+ message_level = DEFAULT_MSG_LEVEL;
+- while ((opt = getopt_long(argc, argv, "b:cDd:EFfg:hi:lMpRrsvXx:", longopts,
++ while ((opt = getopt_long(argc, argv, "b:cDd:EFfg:hi:lpRvXx:", longopts,
+ NULL)) != -1) {
+ switch (opt) {
+- case 'b':
++ case OPT_BLOCK_ORDER:
+ info->block_order = atoi(optarg);
+ break;
+- case 'C':
++ case OPT_CONFIG:
+ info->name_filterconfig = optarg;
+ break;
+- case 'c':
++ case OPT_COMPRESS_ZLIB:
+ info->flag_compress = DUMP_DH_COMPRESSED_ZLIB;
+ break;
+- case 'D':
++ case OPT_DEBUG:
+ flag_debug = TRUE;
+ break;
+- case 'd':
++ case OPT_DUMP_LEVEL:
+ if (!parse_dump_level(optarg))
+ goto out;
+ break;
+- case 'E':
++ case OPT_ELF_DUMPFILE:
+ info->flag_elf_dumpfile = 1;
+ break;
+- case 'F':
++ case OPT_FLATTEN:
+ info->flag_flatten = 1;
+ /*
+ * All messages are output to STDERR because STDOUT is
+@@ -8627,75 +8627,75 @@ main(int argc, char *argv[])
+ */
+ flag_strerr_message = TRUE;
+ break;
+- case 'f':
++ case OPT_FORCE:
+ info->flag_force = 1;
+ break;
+- case 'g':
++ case OPT_GENERATE_VMCOREINFO:
+ info->flag_generate_vmcoreinfo = 1;
+ info->name_vmcoreinfo = optarg;
+ break;
+- case 'h':
++ case OPT_HELP:
+ info->flag_show_usage = 1;
+ break;
+- case 'i':
++ case OPT_READ_VMCOREINFO:
+ info->flag_read_vmcoreinfo = 1;
+ info->name_vmcoreinfo = optarg;
+ break;
+- case 'k':
++ case OPT_DISKSET:
+ if (!sadump_add_diskset_info(optarg))
+ goto out;
+ info->flag_sadump_diskset = 1;
+ break;
+- case 'l':
++ case OPT_COMPRESS_LZO:
+ info->flag_compress = DUMP_DH_COMPRESSED_LZO;
+ break;
+- case 'm':
++ case OPT_MESSAGE_LEVEL:
+ message_level = atoi(optarg);
+ break;
+- case 'M':
++ case OPT_DUMP_DMESG:
+ info->flag_dmesg = 1;
+ break;
+- case 'p':
++ case OPT_COMPRESS_SNAPPY:
+ info->flag_compress = DUMP_DH_COMPRESSED_SNAPPY;
+ break;
+- case 'P':
++ case OPT_XEN_PHYS_START:
+ info->xen_phys_start = strtoul(optarg, NULL, 0);
+ break;
+- case 'R':
++ case OPT_REARRANGE:
+ info->flag_rearrange = 1;
+ break;
+- case 's':
++ case OPT_SPLIT:
+ info->flag_split = 1;
+ break;
+- case 'S':
++ case OPT_EPPIC:
+ info->name_eppic_config = optarg;
+ break;
+- case 'r':
++ case OPT_REASSEMBLE:
+ info->flag_reassemble = 1;
+ break;
+- case 'V':
++ case OPT_VTOP:
+ info->vaddr_for_vtop = strtoul(optarg, NULL, 0);
+ break;
+- case 'v':
++ case OPT_VERSION:
+ info->flag_show_version = 1;
+ break;
+- case 'X':
++ case OPT_EXCLUDE_XEN_DOM:
+ info->flag_exclude_xen_dom = 1;
+ break;
+- case 'x':
++ case OPT_VMLINUX:
+ info->name_vmlinux = optarg;
+ break;
+- case 'y':
++ case OPT_XEN_SYMS:
+ info->name_xen_syms = optarg;
+ break;
+- case 'Y':
++ case OPT_NON_CYCLIC:
+ info->flag_cyclic = FALSE;
+ break;
+- case 'z':
++ case OPT_XEN_VMCOREINFO:
+ info->flag_read_vmcoreinfo = 1;
+ info->name_vmcoreinfo = optarg;
+ break;
+- case 'Z':
++ case OPT_CYCLIC_BUFFER:
+ info->bufsize_cyclic = atoi(optarg);
+ break;
+ case '?':
+diff --git a/makedumpfile-1.5.4/makedumpfile.h b/makedumpfile-1.5.4/makedumpfile.h
+index a5826e0..79d4702 100644
+--- a/makedumpfile-1.5.4/makedumpfile.h
++++ b/makedumpfile-1.5.4/makedumpfile.h
+@@ -1671,6 +1671,41 @@ struct elf_prstatus {
+ #endif
+
+ /*
++ * Below are options which getopt_long can recognize. From OPT_START options are
++ * non-printable, just used for implementation.
++ */
++#define OPT_BLOCK_ORDER 'b'
++#define OPT_COMPRESS_ZLIB 'c'
++#define OPT_DEBUG 'D'
++#define OPT_DUMP_LEVEL 'd'
++#define OPT_ELF_DUMPFILE 'E'
++#define OPT_FLATTEN 'F'
++#define OPT_FORCE 'f'
++#define OPT_GENERATE_VMCOREINFO 'g'
++#define OPT_HELP 'h'
++#define OPT_READ_VMCOREINFO 'i'
++#define OPT_COMPRESS_LZO 'l'
++#define OPT_COMPRESS_SNAPPY 'p'
++#define OPT_REARRANGE 'R'
++#define OPT_VERSION 'v'
++#define OPT_EXCLUDE_XEN_DOM 'X'
++#define OPT_VMLINUX 'x'
++#define OPT_START 256
++#define OPT_SPLIT OPT_START+0
++#define OPT_REASSEMBLE OPT_START+1
++#define OPT_XEN_SYMS OPT_START+2
++#define OPT_XEN_VMCOREINFO OPT_START+3
++#define OPT_XEN_PHYS_START OPT_START+4
++#define OPT_MESSAGE_LEVEL OPT_START+5
++#define OPT_VTOP OPT_START+6
++#define OPT_DUMP_DMESG OPT_START+7
++#define OPT_CONFIG OPT_START+8
++#define OPT_DISKSET OPT_START+9
++#define OPT_NON_CYCLIC OPT_START+10
++#define OPT_CYCLIC_BUFFER OPT_START+11
++#define OPT_EPPIC OPT_START+12
++
++/*
+ * Function Prototype.
+ */
+ unsigned long long get_num_dumpable_cyclic(void);
+--
+1.8.4.2
+
diff --git a/kexec-tools.spec b/kexec-tools.spec
index 485fe88..78a8277 100644
--- a/kexec-tools.spec
+++ b/kexec-tools.spec
@@ -90,6 +90,7 @@ Patch608:
kexec-tools-2.0.4-makedumpfile-Use-divideup-to-calculate-maximum-requi
Patch609:
kexec-tools-2.0.4-makedumpfile-cache-Allocate-buffers-at-initialization-t.patch
Patch610: kexec-tools-2.0.4-makedumpfile-cache-Reuse-entry-in-pending-list.patch
Patch612: kexec-tools-2.0.4-makedumpfile-Understand-v3.11-rc4-dmesg.patch
+Patch613:
kexec-tools-2.0.4-makedumpfile-Assign-non-printable-value-as-short-option.patch
%description
kexec-tools provides /sbin/kexec binary that facilitates a new
@@ -133,7 +134,7 @@ tar -z -x -v -f %{SOURCE19}
%patch003 -p1
%patch612 -p1
%patch302 -p1
-
+%patch613 -p1
tar -z -x -v -f %{SOURCE13}
--
1.8.4.2