diff --git a/.crash.metadata b/.crash.metadata
new file mode 100644
index 0000000..1238fca
--- /dev/null
+++ b/.crash.metadata
@@ -0,0 +1,2 @@
+35a06244e58606ebf2b5612fbfcb51301bd5877a SOURCES/crash-7.3.0.tar.gz
+026f4c9e1c8152a2773354551c523acd32d7f00e SOURCES/gdb-7.6.tar.gz
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..169176a
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+SOURCES/crash-7.3.0.tar.gz
+SOURCES/gdb-7.6.tar.gz
diff --git a/SOURCES/0001-Fix-for-kmem-s-S-option-on-Linux-5.7-and-later-kerne.patch b/SOURCES/0001-Fix-for-kmem-s-S-option-on-Linux-5.7-and-later-kerne.patch
new file mode 100644
index 0000000..fd8b759
--- /dev/null
+++ b/SOURCES/0001-Fix-for-kmem-s-S-option-on-Linux-5.7-and-later-kerne.patch
@@ -0,0 +1,58 @@
+From 647a5c33e1c94054d7b63168cd6c12901591cb77 Mon Sep 17 00:00:00 2001
+From: Lianbo Jiang <lijiang@redhat.com>
+Date: Thu, 27 May 2021 18:02:11 +0800
+Subject: [PATCH] Fix for "kmem -s|-S" option on Linux 5.7 and later kernels
+
+Linux 5.7 and later kernels that contain kernel commit 1ad53d9fa3f6
+("slub: improve bit diffusion for freelist ptr obfuscation") changed
+the calculation formula in the freelist_ptr(), which added a swab()
+call to mix bits a little more.  When kernel is configured with the
+"CONFIG_SLAB_FREELIST_HARDENED=y", without the patch, the "kmem -s|-S"
+options display wrong statistics and state whether slab objects are
+in use or free and can print the following errors:
+
+  crash> kmem -s
+  CACHE             OBJSIZE  ALLOCATED     TOTAL  SLABS  SSIZE  NAME
+  87201e00              528          0         0      0     8k  xfs_dqtrx
+  87201f00              496          0         0      0     8k  xfs_dquot
+  kmem: xfs_buf: slab: 37202e6e900 invalid freepointer: b844bab900001d70
+  kmem: xfs_buf: slab: 3720250fd80 invalid freepointer: b8603f9400001370
+  ...
+
+Signed-off-by: Lianbo Jiang <lijiang@redhat.com>
+---
+ memory.c | 9 +++++++--
+ 1 file changed, 7 insertions(+), 2 deletions(-)
+
+diff --git a/memory.c b/memory.c
+index 8c6bbe409922..a3cf8a86728d 100644
+--- a/memory.c
++++ b/memory.c
+@@ -20,6 +20,7 @@
+ #include <sys/mman.h>
+ #include <ctype.h>
+ #include <netinet/in.h>
++#include <byteswap.h>
+ 
+ struct meminfo {           /* general purpose memory information structure */
+         ulong cache;       /* used by the various memory searching/dumping */
+@@ -19336,10 +19337,14 @@ count_free_objects(struct meminfo *si, ulong freelist)
+ static ulong
+ freelist_ptr(struct meminfo *si, ulong ptr, ulong ptr_addr)
+ {
+-	if (VALID_MEMBER(kmem_cache_random))
++	if (VALID_MEMBER(kmem_cache_random)) {
+ 		/* CONFIG_SLAB_FREELIST_HARDENED */
++
++		if (THIS_KERNEL_VERSION >= LINUX(5,7,0))
++			ptr_addr = (sizeof(long) == 8) ? bswap_64(ptr_addr)
++						       : bswap_32(ptr_addr);
+ 		return (ptr ^ si->random ^ ptr_addr);
+-	else
++	} else
+ 		return ptr;
+ }
+ 
+-- 
+2.30.2
+
diff --git a/SOURCES/0001-Handle-task_struct-state-member-changes-for-kernels-.patch b/SOURCES/0001-Handle-task_struct-state-member-changes-for-kernels-.patch
new file mode 100644
index 0000000..ef66c25
--- /dev/null
+++ b/SOURCES/0001-Handle-task_struct-state-member-changes-for-kernels-.patch
@@ -0,0 +1,76 @@
+From 8f8314dcaad34983d1d7b8f828a9dad65ae4073d Mon Sep 17 00:00:00 2001
+From: Alexander Egorenkov <egorenar@linux.ibm.com>
+Date: Tue, 29 Jun 2021 08:39:00 +0200
+Subject: [PATCH] Handle task_struct state member changes for kernels >=
+ 5.14-rc1
+
+Kernel commit 2f064a59a11ff9bc22e52e9678bc601404c7cb34 ("sched: Change
+task_struct::state") renamed the member state of task_struct to __state
+and its type changed from long to unsigned int.  Without the patch,
+crash fails to start up with the following error:
+
+  crash: invalid structure member offset: task_struct_state
+         FILE: task.c  LINE: 5929  FUNCTION: task_state()
+
+Signed-off-by: Alexander Egorenkov <egorenar@linux.ibm.com>
+---
+ defs.h    |  1 +
+ symbols.c |  1 +
+ task.c    | 10 +++++++++-
+ 3 files changed, 11 insertions(+), 1 deletion(-)
+
+diff --git a/defs.h b/defs.h
+index 68d29bd28719..a3f6aa3a7ad5 100644
+--- a/defs.h
++++ b/defs.h
+@@ -2300,6 +2300,7 @@ struct size_table {         /* stash of commonly-used sizes */
+ 	long printk_info;
+ 	long printk_ringbuffer;
+ 	long prb_desc;
++	long task_struct_state;
+ };
+ 
+ struct array_table {
+diff --git a/symbols.c b/symbols.c
+index 370d4c3e8ac0..af1741f44777 100644
+--- a/symbols.c
++++ b/symbols.c
+@@ -10672,6 +10672,7 @@ dump_offset_table(char *spec, ulong makestruct)
+ 		SIZE(page_cache_bucket));
+         fprintf(fp, "                       pt_regs: %ld\n", SIZE(pt_regs));
+         fprintf(fp, "                   task_struct: %ld\n", SIZE(task_struct));
++	fprintf(fp, "             task_struct_state: %ld\n", SIZE(task_struct_state));
+         fprintf(fp, "             task_struct_flags: %ld\n", SIZE(task_struct_flags));
+         fprintf(fp, "            task_struct_policy: %ld\n", SIZE(task_struct_policy));
+         fprintf(fp, "                   thread_info: %ld\n", SIZE(thread_info));
+diff --git a/task.c b/task.c
+index 36cf259e5d7b..672b41697e75 100644
+--- a/task.c
++++ b/task.c
+@@ -297,6 +297,11 @@ task_init(void)
+ 	}
+ 
+         MEMBER_OFFSET_INIT(task_struct_state, "task_struct", "state");
++	MEMBER_SIZE_INIT(task_struct_state, "task_struct", "state");
++	if (INVALID_MEMBER(task_struct_state)) {
++		MEMBER_OFFSET_INIT(task_struct_state, "task_struct", "__state");
++		MEMBER_SIZE_INIT(task_struct_state, "task_struct", "__state");
++	}
+         MEMBER_OFFSET_INIT(task_struct_exit_state, "task_struct", "exit_state");
+         MEMBER_OFFSET_INIT(task_struct_pid, "task_struct", "pid");
+         MEMBER_OFFSET_INIT(task_struct_comm, "task_struct", "comm");
+@@ -5926,7 +5931,10 @@ task_state(ulong task)
+ 	if (!tt->last_task_read)
+ 		return 0;
+ 
+-	state = ULONG(tt->task_struct + OFFSET(task_struct_state));
++	if (SIZE(task_struct_state) == sizeof(ulong))
++		state = ULONG(tt->task_struct + OFFSET(task_struct_state));
++	else
++		state = UINT(tt->task_struct + OFFSET(task_struct_state));
+ 	exit_state = VALID_MEMBER(task_struct_exit_state) ?
+ 		ULONG(tt->task_struct + OFFSET(task_struct_exit_state)) : 0;
+ 
+-- 
+2.30.2
+
diff --git a/SOURCES/0001-arm64-rename-ARM64_PAGE_OFFSET_ACTUAL-to-ARM64_FLIP_.patch b/SOURCES/0001-arm64-rename-ARM64_PAGE_OFFSET_ACTUAL-to-ARM64_FLIP_.patch
new file mode 100644
index 0000000..6d91794
--- /dev/null
+++ b/SOURCES/0001-arm64-rename-ARM64_PAGE_OFFSET_ACTUAL-to-ARM64_FLIP_.patch
@@ -0,0 +1,61 @@
+From 5719afc7a40868418405a87a2711088556e68a3b Mon Sep 17 00:00:00 2001
+From: Pingfan Liu <piliu@redhat.com>
+Date: Fri, 2 Jul 2021 10:14:21 +0800
+Subject: [PATCH 1/4] arm64: rename ARM64_PAGE_OFFSET_ACTUAL to
+ ARM64_FLIP_PAGE_OFFSET_ACTUAL
+
+Reflect the flipped layout of kernel VA, which is introduced by
+kernel commit 14c127c957c1 ("arm64: mm: Flip kernel VA space").
+
+Signed-off-by: Pingfan Liu <piliu@redhat.com>
+---
+ arm64.c | 10 ++++++----
+ defs.h  |  3 ++-
+ 2 files changed, 8 insertions(+), 5 deletions(-)
+
+diff --git a/arm64.c b/arm64.c
+index 8934961..9fe1a4a 100644
+--- a/arm64.c
++++ b/arm64.c
+@@ -217,10 +217,12 @@ arm64_init(int when)
+ 		arm64_calc_VA_BITS();
+ 		arm64_calc_KERNELPACMASK();
+ 		ms = machdep->machspec;
++
++		/* vabits_actual introduced after mm flip, so it should be flipped layout */
+ 		if (ms->VA_BITS_ACTUAL) {
+-			ms->page_offset = ARM64_PAGE_OFFSET_ACTUAL;
+-			machdep->identity_map_base = ARM64_PAGE_OFFSET_ACTUAL;
+-			machdep->kvbase = ARM64_PAGE_OFFSET_ACTUAL;
++			ms->page_offset = ARM64_FLIP_PAGE_OFFSET_ACTUAL;
++			machdep->identity_map_base = ARM64_FLIP_PAGE_OFFSET_ACTUAL;
++			machdep->kvbase = ARM64_FLIP_PAGE_OFFSET_ACTUAL;
+ 			ms->userspace_top = ARM64_USERSPACE_TOP_ACTUAL;
+ 		} else {
+ 			ms->page_offset = ARM64_PAGE_OFFSET;
+@@ -401,7 +403,7 @@ arm64_init(int when)
+ 				fprintf(fp, "CONFIG_ARM64_VA_BITS: %ld\n", ms->CONFIG_ARM64_VA_BITS);
+ 				fprintf(fp, "      VA_BITS_ACTUAL: %ld\n", ms->VA_BITS_ACTUAL);
+ 				fprintf(fp, "(calculated) VA_BITS: %ld\n", ms->VA_BITS);
+-				fprintf(fp, " PAGE_OFFSET: %lx\n", ARM64_PAGE_OFFSET_ACTUAL);
++				fprintf(fp, " PAGE_OFFSET: %lx\n", ARM64_FLIP_PAGE_OFFSET_ACTUAL);
+ 				fprintf(fp, "    VA_START: %lx\n", ms->VA_START);
+ 				fprintf(fp, "     modules: %lx - %lx\n", ms->modules_vaddr, ms->modules_end);
+ 				fprintf(fp, "     vmalloc: %lx - %lx\n", ms->vmalloc_start_addr, ms->vmalloc_end);
+diff --git a/defs.h b/defs.h
+index 5d32954..eb7ce6a 100644
+--- a/defs.h
++++ b/defs.h
+@@ -3233,7 +3233,8 @@ typedef signed int s32;
+ 
+ #define ARM64_PAGE_OFFSET    ((0xffffffffffffffffUL) \
+ 					<< (machdep->machspec->VA_BITS - 1))
+-#define ARM64_PAGE_OFFSET_ACTUAL ((0xffffffffffffffffUL) \
++/* kernels >= v5.4 the kernel VA space is flipped */
++#define ARM64_FLIP_PAGE_OFFSET_ACTUAL ((0xffffffffffffffffUL) \
+ 					- ((1UL) << machdep->machspec->VA_BITS_ACTUAL) + 1)
+ 
+ #define ARM64_USERSPACE_TOP  ((1UL) << machdep->machspec->VA_BITS)
+-- 
+2.29.2
+
diff --git a/SOURCES/0001-memory-Add-support-for-SECTION_TAINT_ZONE_DEVICE-fla.patch b/SOURCES/0001-memory-Add-support-for-SECTION_TAINT_ZONE_DEVICE-fla.patch
new file mode 100644
index 0000000..fe76553
--- /dev/null
+++ b/SOURCES/0001-memory-Add-support-for-SECTION_TAINT_ZONE_DEVICE-fla.patch
@@ -0,0 +1,101 @@
+From 0b5435e10161345cf713ed447a155a611a1b408b Mon Sep 17 00:00:00 2001
+From: Kazuhito Hagio <k-hagio-ab@nec.com>
+Date: Wed, 26 May 2021 17:33:13 +0900
+Subject: [PATCH 1/2] memory: Add support for SECTION_TAINT_ZONE_DEVICE flag
+
+Fix for "kmem -n|-p" options on Linux 5.12-rc1 and later kernels
+that contain commit 1f90a3477df3f ("mm: teach pfn_to_online_page()
+about ZONE_DEVICE section collisions").  Without the patch, the
+"kmem -n" option incorrectly shows mem_map addresses containing the
+flag in bit 5 as part of the virtual address, and also the "kmem -p"
+option shows page structures at wrong position.  With the patch,
+the "kmem -n" option displays the new "D" state flag.
+
+Without the patch:
+  crash> kmem -n
+  ...
+  NR      SECTION        CODED_MEM_MAP        MEM_MAP       STATE PFN
+  1040  ffff9edf3ffd4100  ffffe2bcc0000010  ffffe2bd42000010  PMOE  34078720
+                                        ^                 ^
+  crash> kmem -p
+      PAGE         PHYSICAL      MAPPING       INDEX CNT FLAGS
+  ffffe2bd42000010 2080000000           400040 1ffffffff 9961471 dead000000000122 referenced,active,error
+  ffffe2bd42000050 2080001000           800080 1ffffffff 9961471 dead000000000122 referenced,active,error
+  ffffe2bd42000090 2080002000                0 1ffffffff 9961471 dead000000000122 referenced,active,error
+                ^^
+With the patch:
+  crash> kmem -n
+  ...
+  NR      SECTION        CODED_MEM_MAP        MEM_MAP       STATE PFN
+  1040  ffff9edf3ffd4100  ffffe2bcc0000000  ffffe2bd42000000  PMOED 34078720
+
+  crash> kmem -p
+      PAGE         PHYSICAL      MAPPING       INDEX CNT FLAGS
+  ffffe2bd42000000 2080000000 ffff9ebfc0044100        0  1 97ffffc0000200 slab
+  ffffe2bd42000040 2080001000 ffff9ebfc0044400        0  1 97ffffc0000200 slab
+  ffffe2bd42000080 2080002000                0        0  1 97ffffc0000000
+
+Signed-off-by: Kazuhito Hagio <k-hagio-ab@nec.com>
+---
+ help.c   | 11 +++++++----
+ memory.c | 15 +++++++++------
+ 2 files changed, 16 insertions(+), 10 deletions(-)
+
+diff --git a/help.c b/help.c
+index e0c84087add3..9649cc81fa36 100644
+--- a/help.c
++++ b/help.c
+@@ -6584,10 +6584,13 @@ char *help_kmem[] = {
+ "            kernels, the vm_zone_stat, vm_node_stat and vm_numa_stat tables,",
+ "            the cumulative page_states counter values if they exist, and/or ",
+ "            the cumulative, vm_event_states counter values if they exist.",
+-"        -n  display memory node, memory section, and memory block data",
+-"            and state; the state of each memory section state is encoded",
+-"            as \"P\", \"M\", \"O\" and/or \"E\", meaning SECTION_MARKED_PRESENT,",
+-"            SECTION_HAS_MEM_MAP, SECTION_IS_ONLINE and SECTION_IS_EARLY.",
++"        -n  display memory node, memory section, memory block data and state;",
++"            the state of each memory section is shown as the following flags:",
++"              \"P\": SECTION_MARKED_PRESENT",
++"              \"M\": SECTION_HAS_MEM_MAP",
++"              \"O\": SECTION_IS_ONLINE",
++"              \"E\": SECTION_IS_EARLY",
++"              \"D\": SECTION_TAINT_ZONE_DEVICE",
+ "        -z  displays per-zone memory statistics.",
+ "        -o  displays each cpu's offset value that is added to per-cpu symbol",
+ "            values to translate them into kernel virtual addresses.",
+diff --git a/memory.c b/memory.c
+index a3cf8a86728d..2c4f9790f498 100644
+--- a/memory.c
++++ b/memory.c
+@@ -17270,12 +17270,13 @@ nr_to_section(ulong nr)
+  *      which results in PFN_SECTION_SHIFT equal 6.
+  * To sum it up, at least 6 bits are available.
+  */
+-#define SECTION_MARKED_PRESENT	(1UL<<0)
+-#define SECTION_HAS_MEM_MAP	(1UL<<1)
+-#define SECTION_IS_ONLINE	(1UL<<2)
+-#define SECTION_IS_EARLY	(1UL<<3)
+-#define SECTION_MAP_LAST_BIT	(1UL<<4)
+-#define SECTION_MAP_MASK	(~(SECTION_MAP_LAST_BIT-1))
++#define SECTION_MARKED_PRESENT		(1UL<<0)
++#define SECTION_HAS_MEM_MAP		(1UL<<1)
++#define SECTION_IS_ONLINE		(1UL<<2)
++#define SECTION_IS_EARLY		(1UL<<3)
++#define SECTION_TAINT_ZONE_DEVICE	(1UL<<4)
++#define SECTION_MAP_LAST_BIT		(1UL<<5)
++#define SECTION_MAP_MASK		(~(SECTION_MAP_LAST_BIT-1))
+ 
+ 
+ int 
+@@ -17373,6 +17374,8 @@ fill_mem_section_state(ulong state, char *buf)
+ 		bufidx += sprintf(buf + bufidx, "%s", "O");
+ 	if (state & SECTION_IS_EARLY)
+ 		bufidx += sprintf(buf + bufidx, "%s", "E");
++	if (state & SECTION_TAINT_ZONE_DEVICE)
++		bufidx += sprintf(buf + bufidx, "%s", "D");
+ }
+ 
+ void 
+-- 
+2.30.2
+
diff --git a/SOURCES/0002-arm64-assign-page_offset-with-VA_BITS-kernel-configu.patch b/SOURCES/0002-arm64-assign-page_offset-with-VA_BITS-kernel-configu.patch
new file mode 100644
index 0000000..70af173
--- /dev/null
+++ b/SOURCES/0002-arm64-assign-page_offset-with-VA_BITS-kernel-configu.patch
@@ -0,0 +1,56 @@
+From 167d37e347fe35c6f7db826e8539e192c4375564 Mon Sep 17 00:00:00 2001
+From: Pingfan Liu <piliu@redhat.com>
+Date: Fri, 2 Jul 2021 10:14:22 +0800
+Subject: [PATCH 2/4] arm64: assign page_offset with VA_BITS kernel
+ configuration value
+
+On RHEL9, crash hits a bug when executing "crash /proc/kcore":
+seek error: kernel virtual address: ffff6a0f3fff0000 type: "pmd page"
+
+The kernel virtual address does not vary with vabits_actual, instead,
+is determined by configuration value. But crash does not observe this
+fact.
+
+Since vabits_actual related kernel commit is introduced after arm64
+mm layout flip commit, so changes are safe under the condition if
+(ms->VA_BITS_ACTUAL), and keep the else branch untouched.
+
+Signed-off-by: Pingfan Liu <piliu@redhat.com>
+---
+ arm64.c | 7 ++++---
+ defs.h  | 1 +
+ 2 files changed, 5 insertions(+), 3 deletions(-)
+
+diff --git a/arm64.c b/arm64.c
+index 9fe1a4a..149db36 100644
+--- a/arm64.c
++++ b/arm64.c
+@@ -220,9 +220,10 @@ arm64_init(int when)
+ 
+ 		/* vabits_actual introduced after mm flip, so it should be flipped layout */
+ 		if (ms->VA_BITS_ACTUAL) {
+-			ms->page_offset = ARM64_FLIP_PAGE_OFFSET_ACTUAL;
+-			machdep->identity_map_base = ARM64_FLIP_PAGE_OFFSET_ACTUAL;
+-			machdep->kvbase = ARM64_FLIP_PAGE_OFFSET_ACTUAL;
++			ms->page_offset = ARM64_FLIP_PAGE_OFFSET;
++			/* useless on arm64 */
++			machdep->identity_map_base = ARM64_FLIP_PAGE_OFFSET;
++			machdep->kvbase = ARM64_FLIP_PAGE_OFFSET;
+ 			ms->userspace_top = ARM64_USERSPACE_TOP_ACTUAL;
+ 		} else {
+ 			ms->page_offset = ARM64_PAGE_OFFSET;
+diff --git a/defs.h b/defs.h
+index eb7ce6a..b7b20af 100644
+--- a/defs.h
++++ b/defs.h
+@@ -3234,6 +3234,7 @@ typedef signed int s32;
+ #define ARM64_PAGE_OFFSET    ((0xffffffffffffffffUL) \
+ 					<< (machdep->machspec->VA_BITS - 1))
+ /* kernels >= v5.4 the kernel VA space is flipped */
++#define ARM64_FLIP_PAGE_OFFSET (-(1UL) << machdep->machspec->CONFIG_ARM64_VA_BITS)
+ #define ARM64_FLIP_PAGE_OFFSET_ACTUAL ((0xffffffffffffffffUL) \
+ 					- ((1UL) << machdep->machspec->VA_BITS_ACTUAL) + 1)
+ 
+-- 
+2.29.2
+
diff --git a/SOURCES/0002-memory-Fix-for-kmem-n-option-to-display-NID-correctl.patch b/SOURCES/0002-memory-Fix-for-kmem-n-option-to-display-NID-correctl.patch
new file mode 100644
index 0000000..6ac3c71
--- /dev/null
+++ b/SOURCES/0002-memory-Fix-for-kmem-n-option-to-display-NID-correctl.patch
@@ -0,0 +1,48 @@
+From ec44b902d3467e7b86ee39e2d7d472b9cb202148 Mon Sep 17 00:00:00 2001
+From: Kazuhito Hagio <k-hagio-ab@nec.com>
+Date: Mon, 31 May 2021 14:08:28 +0900
+Subject: [PATCH 2/2] memory: Fix for "kmem -n" option to display NID correctly
+
+The nid member of struct memory_block is a 4-byte integer, but read
+and printed as a 8-byte integer on 64-bit machines.  Without the
+patch, the option displays wrong NIDs.
+
+  crash> kmem -n
+  ...
+     MEM_BLOCK        NAME          PHYSICAL RANGE       NODE  STATE   START_SECTION_NO
+   ffff9edeff2b9400   memory0             0 -   7fffffff 14195095130662240256  ONLINE  0
+   ffff9edeff2bb400   memory2     100000000 -  17fffffff 14195094718345379840  ONLINE  32
+
+The issue seems to appear on Linux 5.12 and later kernels that contain
+commit e9a2e48e8704c ("drivers/base/memory: don't store phys_device
+in memory blocks"), which changed the arrangement of the members of
+struct memory_block.
+
+Signed-off-by: Kazuhito Hagio <k-hagio-ab@nec.com>
+---
+ memory.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/memory.c b/memory.c
+index 2c4f9790f498..cbe90eebe748 100644
+--- a/memory.c
++++ b/memory.c
+@@ -17568,13 +17568,13 @@ print_memory_block(ulong memory_block)
+ 
+ 	if (MEMBER_EXISTS("memory_block", "nid")) {
+ 		readmem(memory_block + OFFSET(memory_block_nid), KVADDR, &nid,
+-			sizeof(void *), "memory_block nid", FAULT_ON_ERROR);
++			sizeof(int), "memory_block nid", FAULT_ON_ERROR);
+ 		fprintf(fp, " %s %s %s %s  %s %s\n",
+ 			mkstring(buf1, VADDR_PRLEN, LJUST|LONG_HEX,
+ 			MKSTR(memory_block)),
+ 			mkstring(buf2, 12, CENTER, name),
+ 			parangebuf,
+-			mkstring(buf5, strlen("NODE"), CENTER|LONG_DEC,
++			mkstring(buf5, strlen("NODE"), CENTER|INT_DEC,
+ 			MKSTR(nid)),
+ 			mkstring(buf6, strlen("OFFLINE"), LJUST,
+ 			statebuf),
+-- 
+2.30.2
+
diff --git a/SOURCES/0003-arm64-use-dedicated-bits-to-record-the-VA-space-layo.patch b/SOURCES/0003-arm64-use-dedicated-bits-to-record-the-VA-space-layo.patch
new file mode 100644
index 0000000..dfb3067
--- /dev/null
+++ b/SOURCES/0003-arm64-use-dedicated-bits-to-record-the-VA-space-layo.patch
@@ -0,0 +1,83 @@
+From bf1379a8b6ff8d6a8fa12978f7194f15f85c4380 Mon Sep 17 00:00:00 2001
+From: Pingfan Liu <piliu@redhat.com>
+Date: Fri, 2 Jul 2021 10:14:23 +0800
+Subject: [PATCH 3/4] arm64: use dedicated bits to record the VA space layout
+ changes
+
+arm64 memory layout experiences big changes due to the following kernel
+commits in date descending order:
+  5. 7bc1a0f9e176 arm64: mm: use single quantity to represent the PA to VA translation
+  4. b6d00d47e81a arm64: mm: Introduce 52-bit Kernel VAs
+  3. 5383cc6efed1 arm64: mm: Introduce vabits_actual
+  2. 14c127c957c1 arm64: mm: Flip kernel VA space
+  1. f80fb3a3d508 arm64: add support for kernel ASLR
+
+For 1, crash has already used NEW_VMEMMAP to trace it.
+For 2, crash lacks a flag to tag it and handle it differently.
+For 3, two important kernel variables vabits_actual and physvirt_offset
+are introduced.
+For 4, since it comes immediately after 3, crash-utility does not need
+to distinguish it.
+For 5, kernel variable phyvirt_offset is removed
+
+These changes have effects on PTOV()/VTOP() formula. So introducing
+two bits HAS_PHYSVIRT_OFFSET and FLIPPED_VM as hint to apply different
+formula.
+
+Signed-off-by: Pingfan Liu <piliu@redhat.com>
+---
+ arm64.c | 10 ++++++++++
+ defs.h  |  2 ++
+ 2 files changed, 12 insertions(+)
+
+diff --git a/arm64.c b/arm64.c
+index 149db36..b04369f 100644
+--- a/arm64.c
++++ b/arm64.c
+@@ -563,6 +563,10 @@ arm64_dump_machdep_table(ulong arg)
+ 		fprintf(fp, "%sMACHDEP_BT_TEXT", others++ ? "|" : "");
+ 	if (machdep->flags & NEW_VMEMMAP)
+ 		fprintf(fp, "%sNEW_VMEMMAP", others++ ? "|" : "");
++	if (machdep->flags & FLIPPED_VM)
++		fprintf(fp, "%sFLIPPED_VM", others++ ? "|" : "");
++	if (machdep->flags & HAS_PHYSVIRT_OFFSET)
++		fprintf(fp, "%sHAS_PHYSVIRT_OFFSET", others++ ? "|" : "");
+ 	fprintf(fp, ")\n");
+ 
+ 	fprintf(fp, "              kvbase: %lx\n", machdep->kvbase);
+@@ -997,6 +1001,7 @@ arm64_calc_physvirt_offset(void)
+ 		if (READMEM(pc->mfd, &physvirt_offset, sizeof(physvirt_offset),
+ 			sp->value, sp->value -
+ 			machdep->machspec->kimage_voffset) > 0) {
++				machdep->flags |= HAS_PHYSVIRT_OFFSET;
+ 				ms->physvirt_offset = physvirt_offset;
+ 		}
+ 	}
+@@ -3963,6 +3968,11 @@ arm64_calc_VA_BITS(void)
+ 				error(FATAL, "cannot determine VA_BITS_ACTUAL\n");
+ 		}
+ 
++		/*
++		 * The mm flip commit is introduced before 52-bits VA, which is before the
++		 * commit to export NUMBER(TCR_EL1_T1SZ)
++		 */
++		machdep->flags |= FLIPPED_VM;
+ 		return;
+ 	}
+ 
+diff --git a/defs.h b/defs.h
+index b7b20af..eca145c 100644
+--- a/defs.h
++++ b/defs.h
+@@ -3214,6 +3214,8 @@ typedef signed int s32;
+ #define NEW_VMEMMAP   (0x80)
+ #define VM_L4_4K      (0x100)
+ #define UNW_4_14      (0x200)
++#define FLIPPED_VM    (0x400)
++#define HAS_PHYSVIRT_OFFSET (0x800)
+ 
+ /*
+  * Get kimage_voffset from /dev/crash
+-- 
+2.29.2
+
diff --git a/SOURCES/0004-arm64-implement-switchable-PTOV-VTOP-for-kernels-5.1.patch b/SOURCES/0004-arm64-implement-switchable-PTOV-VTOP-for-kernels-5.1.patch
new file mode 100644
index 0000000..8370c09
--- /dev/null
+++ b/SOURCES/0004-arm64-implement-switchable-PTOV-VTOP-for-kernels-5.1.patch
@@ -0,0 +1,165 @@
+From f53b73e8380bca054cebd2b61ff118c46609429b Mon Sep 17 00:00:00 2001
+From: Pingfan Liu <piliu@redhat.com>
+Date: Fri, 2 Jul 2021 10:14:24 +0800
+Subject: [PATCH 4/4] arm64: implement switchable PTOV()/VTOP() for kernels >=
+ 5.10
+
+Crash encounters a bug like the following:
+    ...
+    SECTION_SIZE_BITS: 30
+    CONFIG_ARM64_VA_BITS: 52
+          VA_BITS_ACTUAL: 48
+    (calculated) VA_BITS: 48
+     PAGE_OFFSET: ffff000000000000
+        VA_START: ffff800000000000
+         modules: ffff800008000000 - ffff80000fffffff
+         vmalloc: ffff800010000000 - ffffffdfdffeffff
+    kernel image: ffff800010000000 - ffff800012750000
+         vmemmap: ffffffdfffe00000 - ffffffffffffffff
+
+    <readmem: ffff800011c53bc8, KVADDR, "nr_irqs", 4, (FOE), b47bdc>
+    <read_kdump: addr: ffff800011c53bc8 paddr: eb453bc8 cnt: 4>
+    read_netdump: addr: ffff800011c53bc8 paddr: eb453bc8 cnt: 4 offset: 1c73bc8
+    irq_stack_ptr:
+      type: 1, TYPE_CODE_PTR
+      target_typecode: 8, TYPE_CODE_INT
+      target_length: 8
+      length: 8
+    GNU_GET_DATATYPE[thread_union]: returned via gdb_error_hook
+    <readmem: ffff000b779c0050, KVADDR, "IRQ stack pointer", 8, (ROE), 3a37bea0>
+    <read_kdump: addr: ffff000b779c0050 paddr: fff1000bf79c0050 cnt: 8>
+    read_netdump: READ_ERROR: offset not found for paddr: fff1000bf79c0050
+    crash: read error: kernel virtual address: ffff000b779c0050  type: "IRQ stack pointer"
+    ...
+
+Apparently, for a normal system, the 'paddr: fff1000bf79c0050' is
+unreasonable.
+
+This bug connects with kernel commit 7bc1a0f9e176 ("arm64: mm: use
+single quantity to represent the PA to VA translation"), which removed
+physvirt_offset kernel variable and changed the PTOV()/VTOP() formulas.
+
+Implement switchable PTOV()/VTOP() to cope with different kernel
+version.
+
+Signed-off-by: Pingfan Liu <piliu@redhat.com>
+---
+ arm64.c | 37 +++++++++++++++++++++++++++++++++----
+ defs.h  |  9 ++++-----
+ 2 files changed, 37 insertions(+), 9 deletions(-)
+
+diff --git a/arm64.c b/arm64.c
+index b04369f..d73d5c5 100644
+--- a/arm64.c
++++ b/arm64.c
+@@ -994,8 +994,6 @@ arm64_calc_physvirt_offset(void)
+ 	ulong physvirt_offset;
+ 	struct syment *sp;
+ 
+-	ms->physvirt_offset = ms->phys_offset - ms->page_offset;
+-
+ 	if ((sp = kernel_symbol_search("physvirt_offset")) &&
+ 			machdep->machspec->kimage_voffset) {
+ 		if (READMEM(pc->mfd, &physvirt_offset, sizeof(physvirt_offset),
+@@ -1003,8 +1001,13 @@ arm64_calc_physvirt_offset(void)
+ 			machdep->machspec->kimage_voffset) > 0) {
+ 				machdep->flags |= HAS_PHYSVIRT_OFFSET;
+ 				ms->physvirt_offset = physvirt_offset;
++				return;
+ 		}
+ 	}
++
++	/* Useless if no symbol 'physvirt_offset', just keep semantics */
++	ms->physvirt_offset = ms->phys_offset - ms->page_offset;
++
+ }
+ 
+ static void
+@@ -1051,6 +1054,7 @@ arm64_calc_phys_offset(void)
+ 			if (READMEM(pc->mfd, &phys_offset, sizeof(phys_offset),
+ 			    vaddr, paddr) > 0) {
+ 				ms->phys_offset = phys_offset;
++
+ 				return;
+ 			}
+ 		}
+@@ -1178,6 +1182,21 @@ arm64_init_kernel_pgd(void)
+                 vt->kernel_pgd[i] = value;
+ }
+ 
++ulong arm64_PTOV(ulong paddr)
++{
++	struct machine_specific *ms = machdep->machspec;
++
++	/*
++	 * Either older kernel before kernel has 'physvirt_offset' or newer
++	 * kernel which removes 'physvirt_offset' has the same formula:
++	 * #define __phys_to_virt(x)   ((unsigned long)((x) - PHYS_OFFSET) | PAGE_OFFSET)
++	 */
++	if (!(machdep->flags & HAS_PHYSVIRT_OFFSET))
++		return (paddr - ms->phys_offset) | PAGE_OFFSET;
++	else
++		return paddr - ms->physvirt_offset;
++}
++
+ ulong
+ arm64_VTOP(ulong addr)
+ {
+@@ -1188,8 +1207,18 @@ arm64_VTOP(ulong addr)
+ 			return addr - machdep->machspec->kimage_voffset;
+ 		}
+ 
+-		if (addr >= machdep->machspec->page_offset)
+-			return addr + machdep->machspec->physvirt_offset;
++		if (addr >= machdep->machspec->page_offset) {
++			if (machdep->flags & HAS_PHYSVIRT_OFFSET) {
++				return addr + machdep->machspec->physvirt_offset;
++			} else {
++				/*
++				 * Either older kernel before kernel has 'physvirt_offset' or newer
++				 * kernel which removes 'physvirt_offset' has the same formula:
++				 * #define __lm_to_phys(addr)	(((addr) & ~PAGE_OFFSET) + PHYS_OFFSET)
++				 */
++				return (addr & ~PAGE_OFFSET) + machdep->machspec->phys_offset;
++			}
++		}
+ 		else if (machdep->machspec->kimage_voffset)
+ 			return addr - machdep->machspec->kimage_voffset;
+ 		else /* no randomness */
+diff --git a/defs.h b/defs.h
+index eca145c..c91177a 100644
+--- a/defs.h
++++ b/defs.h
+@@ -3092,11 +3092,6 @@ typedef u64 pte_t;
+ #define _64BIT_
+ #define MACHINE_TYPE       "ARM64"    
+ 
+-#define PTOV(X) \
+-	((unsigned long)(X) - (machdep->machspec->physvirt_offset))
+-
+-#define VTOP(X)               arm64_VTOP((ulong)(X))
+-
+ #define USERSPACE_TOP   (machdep->machspec->userspace_top)
+ #define PAGE_OFFSET     (machdep->machspec->page_offset)
+ #define VMALLOC_START   (machdep->machspec->vmalloc_start_addr)
+@@ -3106,6 +3101,9 @@ typedef u64 pte_t;
+ #define MODULES_VADDR   (machdep->machspec->modules_vaddr)
+ #define MODULES_END     (machdep->machspec->modules_end)
+ 
++#define PTOV(X)	arm64_PTOV((ulong)(X))
++#define VTOP(X)	arm64_VTOP((ulong)(X))
++
+ #define IS_VMALLOC_ADDR(X)    arm64_IS_VMALLOC_ADDR((ulong)(X))
+ 
+ #define PAGEBASE(X)     (((ulong)(X)) & (ulong)machdep->pagemask)
+@@ -5910,6 +5908,7 @@ void unwind_backtrace(struct bt_info *);
+ void arm64_init(int);
+ void arm64_dump_machdep_table(ulong);
+ ulong arm64_VTOP(ulong);
++ulong arm64_PTOV(ulong);
+ int arm64_IS_VMALLOC_ADDR(ulong);
+ ulong arm64_swp_type(ulong);
+ ulong arm64_swp_offset(ulong);
+-- 
+2.29.2
+
diff --git a/SOURCES/lzo_snappy.patch b/SOURCES/lzo_snappy.patch
new file mode 100644
index 0000000..4075b06
--- /dev/null
+++ b/SOURCES/lzo_snappy.patch
@@ -0,0 +1,22 @@
+--- crash-7.3.0/diskdump.c.orig
++++ crash-7.3.0/diskdump.c
+@@ -23,6 +23,8 @@
+  * GNU General Public License for more details.
+  */
+ 
++#define LZO
++#define SNAPPY
+ #include "defs.h"
+ #include "diskdump.h"
+ #include "xen_dom0.h"
+--- crash-7.3.0/Makefile.orig
++++ crash-7.3.0/Makefile
+@@ -228,7 +228,7 @@ all: make_configure
+ gdb_merge: force
+ 	@if [ ! -f ${GDB}/README ]; then \
+ 	  make --no-print-directory gdb_unzip; fi
+-	@echo "${LDFLAGS} -lz -ldl -rdynamic" > ${GDB}/gdb/mergelibs
++	@echo "${LDFLAGS} -lz -llzo2 -lsnappy -ldl -rdynamic" > ${GDB}/gdb/mergelibs
+ 	@echo "../../${PROGRAM} ../../${PROGRAM}lib.a" > ${GDB}/gdb/mergeobj
+ 	@rm -f ${PROGRAM}
+ 	@if [ ! -f ${GDB}/config.status ]; then \
diff --git a/SPECS/crash.spec b/SPECS/crash.spec
new file mode 100644
index 0000000..f7dec71
--- /dev/null
+++ b/SPECS/crash.spec
@@ -0,0 +1,534 @@
+#
+# crash core analysis suite
+#
+Summary: Kernel analysis utility for live systems, netdump, diskdump, kdump, LKCD or mcore dumpfiles
+Name: crash
+Version: 7.3.0
+Release: 6%{?dist}
+License: GPLv3
+Source0: https://github.com/crash-utility/crash/archive/crash-%{version}.tar.gz
+Source1: http://ftp.gnu.org/gnu/gdb/gdb-7.6.tar.gz
+URL: https://crash-utility.github.io
+ExclusiveOS: Linux
+ExclusiveArch: %{ix86} ia64 x86_64 ppc ppc64 s390 s390x %{arm} aarch64 ppc64le
+BuildRequires: ncurses-devel zlib-devel lzo-devel snappy-devel bison
+BuildRequires: gcc gcc-c++
+BuildRequires: make
+Requires: binutils
+Provides: bundled(libiberty)
+Provides: bundled(gdb) = 7.6
+Patch0: lzo_snappy.patch
+Patch1: 0001-Fix-for-kmem-s-S-option-on-Linux-5.7-and-later-kerne.patch
+Patch2: 0001-memory-Add-support-for-SECTION_TAINT_ZONE_DEVICE-fla.patch
+Patch3: 0002-memory-Fix-for-kmem-n-option-to-display-NID-correctl.patch
+Patch4: 0001-arm64-rename-ARM64_PAGE_OFFSET_ACTUAL-to-ARM64_FLIP_.patch
+Patch5: 0002-arm64-assign-page_offset-with-VA_BITS-kernel-configu.patch
+Patch6: 0003-arm64-use-dedicated-bits-to-record-the-VA-space-layo.patch
+Patch7: 0004-arm64-implement-switchable-PTOV-VTOP-for-kernels-5.1.patch
+Patch8: 0001-Handle-task_struct-state-member-changes-for-kernels-.patch
+
+%description
+The core analysis suite is a self-contained tool that can be used to
+investigate either live systems, kernel core dumps created from the
+netdump, diskdump and kdump packages from Red Hat Linux, the mcore kernel patch
+offered by Mission Critical Linux, or the LKCD kernel patch.
+
+%package devel
+Requires: %{name} = %{version}, zlib-devel
+Summary: kernel crash analysis utility for live systems, netdump, diskdump, kdump, LKCD or mcore dumpfiles
+
+%description devel
+The core analysis suite is a self-contained tool that can be used to
+investigate either live systems, kernel core dumps created from the
+netdump, diskdump and kdump packages from Red Hat Linux, the mcore kernel patch
+offered by Mission Critical Linux, or the LKCD kernel patch.
+
+%prep
+%setup -n %{name}-%{version} -q
+%patch0 -p1 -b lzo_snappy.patch
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
+%patch5 -p1
+%patch6 -p1
+%patch7 -p1
+%patch8 -p1
+
+%build
+# This package has an internal copy of GDB which has broken configure code for
+# INTDIV0_RAISES_SIGFPE and MUST_REINSTALL_SIGHANDLERS
+# Updating that code properly seems nontrivial and best left to the package
+# maintainer.
+# Disable LTO
+%define _lto_cflags %{nil}
+
+cp %{SOURCE1} .
+make RPMPKG="%{version}-%{release}" CFLAGS="%{optflags}" LDFLAGS="%{build_ldflags}"
+
+%install
+rm -rf %{buildroot}
+mkdir -p %{buildroot}%{_bindir}
+%make_install
+mkdir -p %{buildroot}%{_mandir}/man8
+cp -p crash.8 %{buildroot}%{_mandir}/man8/crash.8
+mkdir -p %{buildroot}%{_includedir}/crash
+chmod 0644 defs.h
+cp -p defs.h %{buildroot}%{_includedir}/crash
+
+%files
+%{_bindir}/crash
+%{_mandir}/man8/crash.8*
+%doc README COPYING3
+
+%files devel
+%{_includedir}/*
+
+%changelog
+* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 7.3.0-6
+- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
+  Related: rhbz#1991688
+
+* Thu Jul 22 2021 Lianbo Jiang <lijiang@redhat.com> - 7.3.0-5
+- Fix for handling task_struct state member changes(kernels >= 5.14-rc1)
+
+* Wed Jul 07 2021 Lianbo Jiang <lijiang@redhat.com> - 7.3.0-4
+- Fix memory layout for aarch64
+
+* Mon Jul 05 2021 Lianbo Jiang <lijiang@redhat.com> - 7.3.0-3
+- Fix "kmem -n|-p" options display wrong values.
+
+* Fri Jun 11 2021 Lianbo Jiang <lijiang@redhat.com> - 7.3.0-2
+- Fix for "kmem -s|-S" option on Linux 5.7 and later kernels
+
+* Mon May 10 2021 Lianbo Jiang <lijiang@redhat.com> - 7.3.0-1
+- Rebase to upstream 7.3.0
+
+* Thu Apr 15 2021 Mohan Boddu <mboddu@redhat.com> - 7.2.9-7
+- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
+
+* Tue Apr 13 2021 Lianbo Jiang <lijiang@redhat.com> - 7.2.9-6
+- Update to the latest upstream: commit <8dfc228b29ae>
+
+* Mon Mar 08 2021 Lianbo Jiang <lijiang@redhat.com> - 7.2.9-5
+- Fix Segmentation fault
+- Update to the latest upstream: commit <9c0c6c1b3750>
+
+* Fri Feb 05 2021 Lianbo Jiang <lijiang@redhat.com> - 7.2.9-4
+- Update to the latest upstream: commit <fdb41f0b6fa4>
+
+* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 7.2.9-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
+
+* Fri Dec 11 2020 Lianbo Jiang <lijiang@redhat.com> - 7.2.9-2
+- Add support for lockless ringbuffer
+
+* Wed Nov 25 2020 Lianbo Jiang <lijiang@redhat.com> - 7.2.9-1
+- Update to latest upstream release
+
+* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 7.2.8-5
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
+
+* Mon Jul 13 2020 Tom Stellard <tstellar@redhat.com> - 7.2.8-4
+- Use make macros
+- https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro
+
+* Tue Jun 30 2020 Jeff Law <law@redhat.com> - 7.2.8-3
+- Disable LTO
+
+* Fri Jan 31 2020 Dave Anderson <anderson@redhat.com> - 7.2.8-2
+- Update to latest upstream release
+- Fix aarch64 build for gcc-10 -fno-common
+
+* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 7.2.7-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
+
+* Mon Sep 23 2019 Dave Anderson <anderson@redhat.com> - 7.2.7-1
+- Update to latest upstream release
+
+* Wed Jul 24 2019 Fedora Release Engineering <releng@fedoraproject.org> - 7.2.6-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
+
+* Mon May  6 2019 Dave Anderson <anderson@redhat.com> - 7.2.6-1
+- Update to latest upstream release
+
+* Sun Feb 17 2019 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 7.2.5-3
+- Rebuild for readline 8.0
+
+* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 7.2.5-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
+
+* Fri Jan 11 2019 Dave Anderson <anderson@redhat.com> - 7.2.5-1
+- Update to latest upstream release
+
+* Mon Sep 24 2018 Dave Anderson <anderson@redhat.com> - 7.2.4-1
+- Update to latest upstream release
+
+* Thu Jul 12 2018 Fedora Release Engineering <releng@fedoraproject.org> - 7.2.3-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
+
+* Fri May 18 2018 Dave Anderson <anderson@redhat.com> - 7.2.3-1
+- Update to latest upstream release
+
+* Fri Feb 23 2018 Dave Anderson <anderson@redhat.com> - 7.2.1-2
+- Use RPM build flags for LDFLAGS
+
+* Fri Feb 16 2018 Dave Anderson <anderson@redhat.com> - 7.2.1-1
+- Update to latest upstream release
+
+* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 7.2.0-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
+
+* Mon Oct  2 2017 Dave Anderson <anderson@redhat.com> - 7.2.0-1
+- Update to latest upstream release
+
+* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 7.1.9-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
+
+* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 7.1.9-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
+
+* Mon Apr 24 2017 Dave Anderson <anderson@redhat.com> - 7.1.9-1
+- Update to latest upstream release
+
+* Thu Feb 23 2017 Dave Anderson <anderson@redhat.com> - 7.1.8-1
+- Update to latest upstream release
+
+* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 7.1.7-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
+
+* Thu Jan 12 2017 Igor Gnatenko <ignatenko@redhat.com> - 7.1.7-2
+- Rebuild for readline 7.x
+
+* Tue Dec  6 2016 Dave Anderson <anderson@redhat.com> - 7.1.7-1
+- Update to latest upstream release
+
+* Fri Oct 14 2016 Dave Anderson <anderson@redhat.com> - 7.1.6-1
+- Update to latest upstream release
+- Fix for RHBZ#1044119 - crash bundles gdb
+
+* Thu May  5 2016 Dave Anderson <anderson@redhat.com> - 7.1.5-2
+- BZ #1333295 - FTBFS due compiler warnings in elf64-s390.c
+
+* Thu Apr 28 2016 Dave Anderson <anderson@redhat.com> - 7.1.5-1
+- Update to latest upstream release
+
+* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 7.1.4-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
+
+* Thu Dec 17 2015 Dave Anderson <anderson@redhat.com> - 7.1.4-1
+- Update to latest upstream release
+
+* Thu Sep  3 2015 Dave Anderson <anderson@redhat.com> - 7.1.3-1
+- Update to latest upstream release
+
+* Mon Jul 13 2015 Dave Anderson <anderson@redhat.com> - 7.1.2-1
+- Update to latest upstream release
+
+* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 7.1.1-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
+
+* Thu May 28 2015 Dave Anderson <anderson@redhat.com> - 7.1.1-1
+- Update to latest upstream release
+
+* Mon Mar  2 2015 Dave Anderson <anderson@redhat.com> - 7.1.0-3
+- Support increment of Linux version from 3 to 4
+
+* Sat Feb 21 2015 Till Maas <opensource@till.name> - 7.1.0-2
+- Rebuilt for Fedora 23 Change
+  https://fedoraproject.org/wiki/Changes/Harden_all_packages_with_position-independent_code
+
+* Tue Feb 10 2015 Dave Anderson <anderson@redhat.com> - 7.1.0-1
+- Update to latest upstream release
+
+* Fri Nov 15 2014 Dave Anderson <anderson@redhat.com> - 7.0.9-1
+- Update to latest upstream release
+
+* Mon Sep 15 2014 Dave Anderson <anderson@redhat.com> - 7.0.8-1
+- Update to latest upstream release
+- Add ppc64le as supported architecture for crash package (BZ #1136050)
+
+* Sat Aug 16 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 7.0.7-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
+
+* Wed Jul 02 2014 Dave Anderson <anderson@redhat.com> - 7.0.7-2
+- Fix FTBS for aarch64 (BZ #1114588)
+
+* Wed Jun 11 2014 Dave Anderson <anderson@redhat.com> - 7.0.7-1
+- Update to latest upstream release
+- Fix Fedora_21_Mass_Rebuild FTBFS (BZ #1106090)
+
+* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 7.0.5-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
+
+* Fri Feb 28 2014 Dave Anderson <anderson@redhat.com> - 7.0.5-1
+- Update to latest upstream release
+- Use system readline library
+- Fix "crash --log vmcore" command for 3.11 and later kernels.
+
+* Tue Dec 17 2013 Toshio Kuratomi <toshio@fedoraproject.org> - 7.0.4-2
+- crash bundles gdb which bundles libiberty.  Add virtual Provides for
+  libiberty tracking.  Open a bug for unbundling gdb RHBZ#1044119
+
+* Mon Dec 16 2013 Dave Anderson <anderson@redhat.com> - 7.0.4-1
+- Update to latest upstream release
+
+* Tue Oct 29 2013 Dave Anderson <anderson@redhat.com> - 7.0.3-1
+- Update to latest upstream release
+
+* Wed Sep 04 2013 Dave Anderson <anderson@redhat.com> - 7.0.2-1
+- Update to latest upstream release
+- Build with lzo and snappy compression capability
+
+* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 7.0.1-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
+
+* Mon Jun 17 2013 Dave Anderson <anderson@redhat.com> - 7.0.1-1
+- Update to latest upstream release
+- Add aarch64 as an exclusive arch
+
+* Tue Apr  9 2013 Dave Anderson <anderson@redhat.com> - 6.1.6-1
+- Update to latest upstream release
+
+* Tue Feb 19 2013 Dave Anderson <anderson@redhat.com> - 6.1.4-1
+- Update to latest upstream release
+
+* Wed Feb 13 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 6.1.2-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
+
+* Wed Jan  9 2013 Dave Anderson <anderson@redhat.com> - 6.1.2-1
+- Update to latest upstream release
+
+* Tue Nov 27 2012 Dave Anderson <anderson@redhat.com> - 6.1.1-1
+- Update to latest upstream release
+
+* Mon Sep  1 2012 Dave Anderson <anderson@redhat.com> - 6.1.0-1
+- Add ppc to ExclusiveArch list
+- Update to latest upstream release
+
+* Tue Aug 21 2012 Dave Anderson <anderson@redhat.com> - 6.0.9-1
+- Update to latest upstream release
+
+* Wed Jul 18 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 6.0.8-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
+
+* Mon Jul  1 2012 Dave Anderson <anderson@redhat.com> - 6.0.8-1
+- Update to latest upstream release.
+- Replace usage of "struct siginfo" with "siginfo_t".
+
+* Mon Apr 30 2012 Dave Anderson <anderson@redhat.com> - 6.0.6-1
+- Update to latest upstream release
+
+* Mon Mar 26 2012 Dave Anderson <anderson@redhat.com> - 6.0.5-1
+- Update to latest upstream release
+
+* Wed Jan  4 2012 Dave Anderson <anderson@redhat.com> - 6.0.2-1
+- Update to latest upstream release
+
+* Wed Oct 26 2011 Dave Anderson <anderson@redhat.com> - 6.0.0-1
+- Update to latest upstream release
+
+* Tue Sep 20 2011 Dave Anderson <anderson@redhat.com> - 5.1.8-1
+- Update to latest upstream release
+- Additional fixes for gcc-4.6 -Werror compile failures for ARM architecture.
+
+* Thu Sep  1 2011 Dave Anderson <anderson@redhat.com> - 5.1.7-2
+- Fixes for gcc-4.6 -Werror compile failures for ARM architecture.
+
+* Wed Aug 17 2011 Dave Anderson <anderson@redhat.com> - 5.1.7-1
+- Update to latest upstream release
+- Fixes for gcc-4.6 -Werror compile failures for ppc64/ppc.
+
+* Tue May 31 2011 Peter Robinson <pbrobinson@gmail.com> - 5.1.5-1
+- Update to latest upstream release
+- Add ARM to the Exclusive arch
+
+* Wed Feb 25 2011 Dave Anderson <anderson@redhat.com> - 5.1.2-2
+- Fixes for gcc-4.6 -Werror compile failures in gdb module.  
+
+* Wed Feb 23 2011 Dave Anderson <anderson@redhat.com> - 5.1.2-1
+- Upstream version.
+
+* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 5.0.6-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
+
+* Tue Jul 20 2010 Dave Anderson <anderson@redhat.com> - 5.0.6-2
+- Bump version.
+
+* Tue Jul 20 2010 Dave Anderson <anderson@redhat.com> - 5.0.6-1
+- Update to upstream version.
+
+* Fri Sep 11 2009 Dave Anderson <anderson@redhat.com> - 4.0.9-2
+  Bump version.
+
+* Fri Sep 11 2009 Dave Anderson <anderson@redhat.com> - 4.0.9-1
+- Update to upstream release, which allows the removal of the 
+  Revision tag workaround, the crash-4.0-8.11-dwarf3.patch and 
+  the crash-4.0-8.11-optflags.patch
+
+* Sun Aug 05 2009 Lubomir Rintel <lkundrak@v3.sk> - 4.0.8.11-2
+- Fix reading of dwarf 3 DW_AT_data_member_location
+- Use proper compiler flags
+
+* Wed Aug 05 2009 Lubomir Rintel <lkundrak@v3.sk> - 4.0.8.11-1
+- Update to later upstream release
+- Fix abuse of Revision tag
+
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
+* Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.0-9.7.2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
+
+* Tue Feb 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.0-8.7.2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
+
+* Thu Feb 19 2009 Dave Anderson <anderson@redhat.com> - 4.0-7.7.2
+- Replace exclusive arch i386 with ix86.
+
+* Thu Feb 19 2009 Dave Anderson <anderson@redhat.com> - 4.0-7.7.1
+- Updates to this file per crash merge review
+- Update to upstream version 4.0-7.7.  Full changelog viewable in:
+    http://people.redhat.com/anderson/crash.changelog.html
+
+* Tue Jul 15 2008 Tom "spot" Callaway <tcallawa@redhat.com> 4.0-7
+- fix license tag
+
+* Tue Apr 29 2008 Dave Anderson <anderson@redhat.com> - 4.0-6.3
+- Added crash-devel subpackage
+- Updated crash.patch to match upstream version 4.0-6.3
+
+* Wed Feb 20 2008 Dave Anderson <anderson@redhat.com> - 4.0-6.0.5
+- Second attempt at addressing the GCC 4.3 build, which failed due
+  to additional ptrace.h includes in the lkcd vmdump header files.
+
+* Wed Feb 20 2008 Dave Anderson <anderson@redhat.com> - 4.0-6.0.4
+- First attempt at addressing the GCC 4.3 build, which failed on x86_64
+  because ptrace-abi.h (included by ptrace.h) uses the "u32" typedef,
+  which relies on <asm/types.h>, and include/asm-x86_64/types.h
+  does not not typedef u32 as done in include/asm-x86/types.h.
+
+* Mon Feb 18 2008 Fedora Release Engineering <rel-eng@fedoraproject.org> - 4.0-6.0.3
+- Autorebuild for GCC 4.3
+
+* Wed Jan 23 2008 Dave Anderson <anderson@redhat.com> - 4.0-5.0.3
+- Updated crash.patch to match upstream version 4.0-5.0.
+
+* Wed Aug 29 2007 Dave Anderson <anderson@redhat.com> - 4.0-4.6.2
+- Updated crash.patch to match upstream version 4.0-4.6.
+
+* Wed Sep 13 2006 Dave Anderson <anderson@redhat.com> - 4.0-3.3
+- Updated crash.patch to match upstream version 4.0-3.3.
+- Support for x86_64 relocatable kernels.  BZ #204557
+
+* Mon Aug  7 2006 Dave Anderson <anderson@redhat.com> - 4.0-3.1
+- Updated crash.patch to match upstream version 4.0-3.1.
+- Added kdump reference to description.
+- Added s390 and s390x to ExclusiveArch list.  BZ #199125
+- Removed LKCD v1 pt_regs references for s390/s390x build.
+- Removed LKCD v2_v3 pt_regs references for for s390/s390x build.
+
+* Fri Jul 14 2006 Jesse Keating <jkeating@redhat.com> - 4.0-3
+- rebuild
+
+* Mon May 15 2006 Dave Anderson <anderson@redhat.com> - 4.0-2.26.4
+- Updated crash.patch such that <asm/page.h> is not #include'd
+  by s390_dump.c; IBM did not make the file s390[s] only; BZ #192719
+
+* Mon May 15 2006 Dave Anderson <anderson@redhat.com> - 4.0-2.26.3
+- Updated crash.patch such that <asm/page.h> is not #include'd
+  by vas_crash.h; only ia64 build complained; BZ #191719
+
+* Mon May 15 2006 Dave Anderson <anderson@redhat.com> - 4.0-2.26.2
+- Updated crash.patch such that <asm/segment.h> is not #include'd
+  by lkcd_x86_trace.c; also for BZ #191719
+
+* Mon May 15 2006 Dave Anderson <anderson@redhat.com> - 4.0-2.26.1
+- Updated crash.patch to bring it up to 4.0-2.26, which should 
+  address BZ #191719 - "crash fails to build in mock"
+
+* Tue Feb 07 2006 Jesse Keating <jkeating@redhat.com> - 4.0-2.18.1
+- rebuilt for new gcc4.1 snapshot and glibc changes
+
+* Wed Jan 04 2006 Dave Anderson <anderson@redhat.com> 4.0-2.18
+- Updated source package to crash-4.0.tar.gz, and crash.patch
+  to bring it up to 4.0-2.18.
+
+* Fri Dec 09 2005 Jesse Keating <jkeating@redhat.com>
+- rebuilt
+
+* Thu Mar 03 2005 Dave Anderson <anderson@redhat.com> 3.10-13
+- Compiler error- and warning-related fixes for gcc 4 build.
+- Update to enhance x86 and x86_64 gdb disassembly output so as to
+  symbolically display call targets from kernel module text without
+  requiring module debuginfo data.
+- Fix hole where an ia64 vmcore could be mistakenly accepted as a
+  usable dumpfile on an x86_64 machine, leading eventually to a
+  non-related error message.
+* Wed Mar 02 2005 Dave Anderson <anderson@redhat.com> 3.10-12
+- rebuild (gcc 4)
+* Thu Feb 10 2005 Dave Anderson <anderson@redhat.com> 3.10-9
+- Updated source package to crash-3.10.tar.gz, containing
+  IBM's final ppc64 processor support for RHEL4
+- Fixes potential "bt -a" hang on dumpfile where netdump IPI interrupted
+  an x86 process while executing the instructions just after it had entered
+  the kernel for a syscall, but before calling the handler.  BZ #139437
+- Update to handle backtraces in dumpfiles generated on IA64 with the
+  INIT switch (functionality intro'd in RHEL3-U5 kernel).  BZ #139429
+- Fix for handling ia64 and x86_64 machines booted with maxcpus=1 on
+  an SMP kernel.  BZ #139435
+- Update to handle backtraces in dumpfiles generated on x86_64 from the
+  NMI exception stack (functionality intro'd in RHEL3-U5 kernel).
+- "kmem -[sS]" beefed up to more accurately verify slab cache chains
+  and report errors found.
+- Fix for ia64 INIT switch-generated backtrace handling when
+  init_handler_platform() is inlined into ia64_init_handler();
+  properly handles both RHEL3 and RHEL4 kernel patches.
+  BZ #138350
+- Update to enhance ia64 gdb disassembly output so as to
+  symbolically display call targets from kernel module
+  text without requiring module debuginfo data.
+
+* Wed Jul 14 2004 Dave Anderson <anderson@redhat.com> 3.8-5
+- bump release for fc3
+
+* Tue Jul 13 2004 Dave Anderson <anderson@redhat.com> 3.8-4
+- Fix for gcc 3.4.x/gdb issue where vmlinux was mistakenly presumed non-debug 
+
+* Fri Jun 25 2004 Dave Anderson <anderson@redhat.com> 3.8-3
+- remove (harmless) error message during ia64 diskdump invocation when
+  an SMP system gets booted with maxcpus=1
+- several 2.6 kernel specific updates
+
+* Thu Jun 17 2004 Dave Anderson <anderson@redhat.com> 3.8-2
+- updated source package to crash-3.8.tar.gz 
+- diskdump support
+- x86_64 processor support 
+
+* Mon Sep 22 2003 Dave Anderson <anderson@redhat.com> 3.7-5
+- make bt recovery code start fix-up only upon reaching first faulting frame
+
+* Fri Sep 19 2003 Dave Anderson <anderson@redhat.com> 3.7-4
+- fix "bt -e" and bt recovery code to recognize new __KERNEL_CS and DS
+
+* Wed Sep 10 2003 Dave Anderson <anderson@redhat.com> 3.7-3
+- patch to recognize per-cpu GDT changes that redefine __KERNEL_CS and DS
+
+* Wed Sep 10 2003 Dave Anderson <anderson@redhat.com> 3.7-2
+- patches for netdump active_set determination and slab info gathering 
+
+* Wed Aug 20 2003 Dave Anderson <anderson@redhat.com> 3.7-1
+- updated source package to crash-3.7.tar.gz
+
+* Wed Jul 23 2003 Dave Anderson <anderson@redhat.com> 3.6-1
+- removed Packager, Distribution, and Vendor tags
+- updated source package to crash-3.6.tar.gz 
+
+* Fri Jul 18 2003 Jay Fenlason <fenlason@redhat.com> 3.5-2
+- remove ppc from arch list, since it doesn't work with ppc64 kernels
+- remove alpha from the arch list since we don't build it any more
+
+* Fri Jul 18 2003 Matt Wilson <msw@redhat.com> 3.5-1
+- use %%defattr(-,root,root)
+
+* Tue Jul 15 2003 Jay Fenlason <fenlason@redhat.com>
+- Updated spec file as first step in turning this into a real RPM for taroon.
+- Wrote man page.