Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package kexec-tools for openSUSE:Factory 
checked in at 2021-05-10 15:36:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kexec-tools (Old)
 and      /work/SRC/openSUSE:Factory/.kexec-tools.new.2988 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kexec-tools"

Mon May 10 15:36:10 2021 rev:140 rq:890016 version:2.0.22

Changes:
--------
--- /work/SRC/openSUSE:Factory/kexec-tools/kexec-tools.changes  2021-04-26 
16:38:43.281989395 +0200
+++ /work/SRC/openSUSE:Factory/.kexec-tools.new.2988/kexec-tools.changes        
2021-05-10 15:38:09.561857606 +0200
@@ -1,0 +2,7 @@
+Mon May  3 10:57:35 UTC 2021 - Petr Tesa????k <[email protected]>
+
+- Bump version to 2.0.21
+- Drop patches from upstream git:
+  * kexec-tools-video-capability.patch
+
+-------------------------------------------------------------------

Old:
----
  kexec-tools-2.0.21.tar.xz
  kexec-tools-video-capability.patch

New:
----
  kexec-tools-2.0.22.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ kexec-tools.spec ++++++
--- /var/tmp/diff_new_pack.R3Lmhg/_old  2021-05-10 15:38:10.065855613 +0200
+++ /var/tmp/diff_new_pack.R3Lmhg/_new  2021-05-10 15:38:10.069855596 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           kexec-tools
-Version:        2.0.21
+Version:        2.0.22
 Release:        0
 Summary:        Tools for loading replacement kernels into memory
 License:        GPL-2.0-or-later
@@ -29,7 +29,6 @@
 Source4:        %{name}-rpmlintrc
 Patch3:         %{name}-disable-test.patch
 Patch4:         %{name}-vmcoreinfo-in-xen.patch
-Patch9:         %{name}-video-capability.patch
 Patch10:        %{name}-SYS_getrandom.patch
 Patch11:        %{name}-remove-duplicate-ramdisk-definition.patch
 BuildRequires:  autoconf

++++++ kexec-tools-2.0.21.tar.xz -> kexec-tools-2.0.22.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kexec-tools-2.0.21/Makefile.in 
new/kexec-tools-2.0.22/Makefile.in
--- old/kexec-tools-2.0.21/Makefile.in  2018-05-29 10:30:39.000000000 +0200
+++ new/kexec-tools-2.0.22/Makefile.in  2021-04-07 21:26:01.000000000 +0200
@@ -55,6 +55,8 @@
 
 # Utilities called by the makefiles
 INSTALL                = @INSTALL@
+CHMOD          = @CHMOD@
+CD             = cd
 MKDIR          = @MKDIR@
 RM             = @RM@
 CP             = @CP@
@@ -106,6 +108,14 @@
 PKGLIBDIR=$(LIBDIR)/$(PACKAGE_NAME)
 PKGINCLUDEIR=$(INCLUDEDIR)/$(PACKAGE_NAME)
 
+ALLOWED_UNINSTALL_DIRS := \
+       $(SBINDIR) \
+       $(sbindir) $(bindir) $(libexecdir) $(datadir) $(sysconfdir) \
+       $(sharedstatedir) $(localstatedir) $(libdir) $(infodir) \
+       $(mandir)/man1 $(mandir)/man2 $(mandir)/man3 $(mandir)/man4 \
+       $(mandir)/man5 $(mandir)/man6 $(mandir)/man7 $(mandir)/man8 \
+       $(includedir) $(pkgdatadir) $(pkglibdir) $(pkgincludedir)
+
 all: targets
 
 # generic build rules
@@ -181,15 +191,19 @@
 UNINSTALL_KDUMP_MANPAGE = $(mandir)/man8/kdump.8
 UNINSTALL_KEXEC = $(sbindir)/kexec
 UNINSTALL_KEXEC_MANPAGE = $(mandir)/man8/kexec.8
+UNINSTALL_KEXEC_TEST = $(pkglibdir)/kexec_test
 UNINSTALL_VMCORE_DMESG = $(sbindir)/vmcore-dmesg
 UNINSTALL_VMCORE_DMESG_MANPAGE = $(mandir)/man8/vmcore-dmesg.8
 
 TARGETS:=$(BINARIES) $(MAN_PAGES)
 targets: $(TARGETS)
 
+UNINSTALL_TARGETS_i386:=$(UNINSTALL_KEXEC_TEST)
+UNINSTALL_TARGETS_x86_64:=$(UNINSTALL_KEXEC_TEST)
 UNINSTALL_TARGETS:=$(UNINSTALL_KDUMP) $(UNINSTALL_KDUMP_MANPAGE) \
                   $(UNINSTALL_KEXEC) $(UNINSTALL_KEXEC_MANPAGE) \
-                  $(UNINSTALL_VMCORE_DMESG) $(UNINSTALL_VMCORE_DMESG_MANPAGE)
+                  $(UNINSTALL_VMCORE_DMESG) $(UNINSTALL_VMCORE_DMESG_MANPAGE) \
+                  $(UNINSTALL_TARGETS_$(ARCH))
 uninstall-targets: $(UNINSTALL_TARGETS)
 
 Makefile: Makefile.in config.status
@@ -198,17 +212,20 @@
 configure: configure.ac
        cd $(srcdir) && autoheader && autoconf && rm -rf autom4te.cache
 
+dist: tarball
+
 tarball: $(TARBALL.gz)
 
 $(TARBALL): $(SRCS) $(GENERATED_SRCS)
-       $(RM) -f $(PACKAGE_NAME)-$(PACKAGE_VERSION)
-       $(LN) -s $(srcdir) $(PACKAGE_NAME)-$(PACKAGE_VERSION)
+       [ ! -d $(PACKAGE_NAME)-$(PACKAGE_VERSION) ] || \
+               $(CHMOD) u+w $(PACKAGE_NAME)-$(PACKAGE_VERSION)
+       $(RM) -rf $(PACKAGE_NAME)-$(PACKAGE_VERSION)
+       $(MKDIR) $(PACKAGE_NAME)-$(PACKAGE_VERSION)
+       $(TAR) -c $(SRCS) $(GENERATED_SRCS) | \
+               $(TAR) -C $(PACKAGE_NAME)-$(PACKAGE_VERSION) -x
        $(TAR) -cf $@ $(PSRCS)
-       $(RM) -f $(PACKAGE_NAME)-$(PACKAGE_VERSION)
-       $(LN) -sf . $(PACKAGE_NAME)-$(PACKAGE_VERSION)
        $(TAR) -rf $@ $(PGSRCS)
-       $(RM) -f $(PACKAGE_NAME)-$(PACKAGE_VERSION)
-       @echo $(dist)
+       $(RM) -rf $(PACKAGE_NAME)-$(PACKAGE_VERSION)
 
 $(TARBALL.gz): $(TARBALL)
        gzip -c < $^ > $@
@@ -242,6 +259,38 @@
        $(RM) -f include/config.h.in configure $(SPEC)
        $(RM) -rf autom4te.cache
 
+distuninstallcheck:
+       FOUND=$$(find $(distuninstallcheck_dir) ! -type d) && \
+               [ -z "$$FOUND" ] || { \
+                       echo "Unexpeced files found after uninstall:" && \
+                       echo "$$FOUND" && \
+                       exit 1; }
+
+distcheck: $(TARBALL)
+       [ ! -d $(PACKAGE_NAME)-$(PACKAGE_VERSION) ] || \
+               $(CHMOD) u+w $(PACKAGE_NAME)-$(PACKAGE_VERSION)
+       $(RM) -rf $(PACKAGE_NAME)-$(PACKAGE_VERSION)
+       $(TAR) -xf $(TARBALL)
+       $(MKDIR) $(PACKAGE_NAME)-$(PACKAGE_VERSION)/_build \
+                $(PACKAGE_NAME)-$(PACKAGE_VERSION)/_build/sub \
+                $(PACKAGE_NAME)-$(PACKAGE_VERSION)/_inst \
+                $(PACKAGE_NAME)-$(PACKAGE_VERSION)/_dest
+       $(CHMOD) a-w $(PACKAGE_NAME)-$(PACKAGE_VERSION)
+       test -d $(PACKAGE_NAME)-$(PACKAGE_VERSION)/_build
+       INSTALL_BASE=$$($(CD) $(PACKAGE_NAME)-$(PACKAGE_VERSION)/_inst && pwd | 
sed -e 's,^[^:\\/]:[\\/],/,') &&\
+               DESTDIR="$(PACKAGE_NAME)-$(PACKAGE_VERSION)/_dest" && \
+               $(CD) $(PACKAGE_NAME)-$(PACKAGE_VERSION)/_build/sub && \
+                       ../../configure \
+                       $(DISTCHECK_CONFIGURE_FLAGS) \
+                       --srcdir=../.. --prefix="$$INSTALL_BASE" && \
+               $(MAKE) $(AM_MAKEFLAGS) && \
+               $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$DESTDIR" install && \
+               $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$DESTDIR" uninstall && \
+               $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$DESTDIR" \
+                       distuninstallcheck
+       $(CHMOD) u+w $(PACKAGE_NAME)-$(PACKAGE_VERSION)
+       $(RM) -rf $(PACKAGE_NAME)-$(PACKAGE_VERSION)
+
 install: $(TARGETS)
        for file in $(TARGETS) ; do \
                if test `$(DIRNAME) $$file` =     "$(SBINDIR)" ; then \
@@ -331,71 +380,17 @@
        done
 
 uninstall:
-       UINSTALL_LIST='$(UNINSTALL_TARGETS)'; for file in $$UINSTALL_LIST ; do \
-               if test `$(DIRNAME) $$file` =     "$(sbindir)" ; then \
-                       rm -rf $$file ; \
-               fi; \
-               if test `$(DIRNAME) $$file` =     "$(bindir)" ; then \
-                       rm -rf $$file ; \
-               fi; \
-               if test `$(DIRNAME) $$file` =     "$(libexecdir)" ; then \
-                       rm -rf $$file ; \
-               fi; \
-               if test `$(DIRNAME) $$file` =     "$(datadir)" ; then \
-                       rm -rf $$file ; \
-               fi; \
-               if test `$(DIRNAME) $$file` =     "$(sysconfdir)" ; then \
-                       rm -rf $$file ; \
-               fi; \
-               if test `$(DIRNAME) $$file` =     "$(sharedstatedir)" ; then \
-                       rm -rf $$file ; \
-               fi; \
-               if test `$(DIRNAME) $$file` =     "$(localstatedir)" ; then \
-                       rm -rf $$file ; \
-               fi; \
-               if test `$(DIRNAME) $$file` =     "$(libdir)" ; then \
-                       rm -rf $$file ; \
-               fi; \
-               if test `$(DIRNAME) $$file` =     "$(infodir)" ; then \
-                       rm -rf $$file ; \
-               fi; \
-               if test `$(DIRNAME) $$file` =     "$(mandir)/man1" ; then \
-                       rm -rf $$file ; \
-               fi; \
-               if test `$(DIRNAME) $$file` =     "$(mandir)/man2" ; then \
-                       rm -rf $$file ; \
-               fi; \
-               if test `$(DIRNAME) $$file` =     "$(mandir)/man3" ; then \
-                       rm -rf $$file ; \
-               fi; \
-               if test `$(DIRNAME) $$file` =     "$(mandir)/man4" ; then \
-                       rm -rf $$file ; \
-               fi; \
-               if test `$(DIRNAME) $$file` =     "$(mandir)/man5" ; then \
-                       rm -rf $$file ; \
-               fi; \
-               if test `$(DIRNAME) $$file` =     "$(mandir)/man6" ; then \
-                       rm -rf $$file ; \
-               fi; \
-               if test `$(DIRNAME) $$file` =     "$(mandir)/man7" ; then \
-                       rm -rf $$file ; \
-               fi; \
-               if test `$(DIRNAME) $$file` =     "$(mandir)/man8" ; then \
-                       rm -rf $$file ; \
-               fi; \
-               if test `$(DIRNAME) $$file` =     "$(includedir)" ; then \
-                       rm -rf $$file ; \
-               fi; \
-               if test `$(DIRNAME) $$file` =     "$(pkgdatadir)" ; then \
-                       rm -rf $$file ; \
-               fi; \
-               if test `$(DIRNAME) $$file` =     "$(pkglibdir)" ; then \
-                       rm -rf $$file ; \
-               fi; \
-               if test `$(DIRNAME) $$file` =     "$(pkgincludedir)" ; then \
-                       rm -rf $$file ; \
-               fi; \
+       UINSTALL_LIST='$(UNINSTALL_TARGETS)'; \
+       for file in $$UINSTALL_LIST ; do \
+               DIRS='$(ALLOWED_UNINSTALL_DIRS)'; \
+               for dir in $$DIRS ; do \
+                       if test `$(DIRNAME) $$file` = "$$dir" ; then \
+                               rm -rf $(DESTDIR)/$$file ; \
+                               break ; \
+                       fi; \
+               done; \
        done
 
-.PHONY: echo install uninstall all targets uninstall-targets clean dist-clean 
distclean \
-       maintainer-clean maintainerclean tarball rpm
+.PHONY: echo install uninstall distuninstallcheck all targets \
+       uninstall-targets clean dist-clean distclean distcheck \
+       maintainer-clean maintainerclean dist tarball rpm
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kexec-tools-2.0.21/configure 
new/kexec-tools-2.0.22/configure
--- old/kexec-tools-2.0.21/configure    2020-12-17 13:17:55.000000000 +0100
+++ new/kexec-tools-2.0.22/configure    2021-05-02 10:09:56.000000000 +0200
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for kexec-tools 2.0.21.
+# Generated by GNU Autoconf 2.69 for kexec-tools 2.0.22.
 #
 #
 # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -577,8 +577,8 @@
 # Identity of this package.
 PACKAGE_NAME='kexec-tools'
 PACKAGE_TARNAME='kexec-tools'
-PACKAGE_VERSION='2.0.21'
-PACKAGE_STRING='kexec-tools 2.0.21'
+PACKAGE_VERSION='2.0.22'
+PACKAGE_STRING='kexec-tools 2.0.22'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL=''
 
@@ -639,6 +639,7 @@
 CP
 RM
 MKDIR
+CHMOD
 INSTALL_DATA
 INSTALL_SCRIPT
 INSTALL_PROGRAM
@@ -1279,7 +1280,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures kexec-tools 2.0.21 to adapt to many kinds of systems.
+\`configure' configures kexec-tools 2.0.22 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1346,7 +1347,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of kexec-tools 2.0.21:";;
+     short | recursive ) echo "Configuration of kexec-tools 2.0.22:";;
    esac
   cat <<\_ACEOF
 
@@ -1436,7 +1437,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-kexec-tools configure 2.0.21
+kexec-tools configure 2.0.22
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1734,7 +1735,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by kexec-tools $as_me 2.0.21, which was
+It was created by kexec-tools $as_me 2.0.22, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -4006,6 +4007,44 @@
 
 test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
 
+# Extract the first word of "chmod", so it can be a program name with args.
+set dummy chmod; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CHMOD+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CHMOD"; then
+  ac_cv_prog_CHMOD="$CHMOD" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CHMOD="chmod"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" 
>&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  test -z "$ac_cv_prog_CHMOD" && ac_cv_prog_CHMOD=""no""
+fi
+fi
+CHMOD=$ac_cv_prog_CHMOD
+if test -n "$CHMOD"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CHMOD" >&5
+$as_echo "$CHMOD" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
 # Extract the first word of "mkdir", so it can be a program name with args.
 set dummy mkdir; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
@@ -5512,7 +5551,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by kexec-tools $as_me 2.0.21, which was
+This file was extended by kexec-tools $as_me 2.0.22, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -5574,7 +5613,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-kexec-tools config.status 2.0.21
+kexec-tools config.status 2.0.22
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kexec-tools-2.0.21/configure.ac 
new/kexec-tools-2.0.22/configure.ac
--- old/kexec-tools-2.0.21/configure.ac 2020-12-17 13:16:14.000000000 +0100
+++ new/kexec-tools-2.0.22/configure.ac 2021-05-02 09:50:30.000000000 +0200
@@ -4,7 +4,7 @@
 dnl 
 
 dnl ---Required
-AC_INIT(kexec-tools, 2.0.21)
+AC_INIT(kexec-tools, 2.0.22)
 AC_CONFIG_AUX_DIR(./config)
 AC_CONFIG_HEADERS([include/config.h])
 AC_LANG(C)
@@ -151,6 +151,7 @@
 
 dnl Find the helper functions
 AC_PROG_INSTALL
+AC_CHECK_PROG([CHMOD],    chmod,    chmod,    "no", [$PATH])
 AC_CHECK_PROG([MKDIR],    mkdir,    mkdir,    "no", [$PATH])
 AC_CHECK_PROG([RM],       rm,       rm,       "no", [$PATH])
 AC_CHECK_PROG([CP],       cp,       cp,       "no", [$PATH])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kexec-tools-2.0.21/include/config.h 
new/kexec-tools-2.0.22/include/config.h
--- old/kexec-tools-2.0.21/include/config.h     2020-12-17 13:16:32.000000000 
+0100
+++ new/kexec-tools-2.0.22/include/config.h     2021-05-02 10:09:57.000000000 
+0200
@@ -56,7 +56,7 @@
 #define PACKAGE_NAME "kexec-tools"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "kexec-tools 2.0.21"
+#define PACKAGE_STRING "kexec-tools 2.0.22"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "kexec-tools"
@@ -65,7 +65,7 @@
 #define PACKAGE_URL ""
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "2.0.21"
+#define PACKAGE_VERSION "2.0.22"
 
 /* Define to 1 if you have the ANSI C header files. */
 #define STDC_HEADERS 1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kexec-tools-2.0.21/kexec/Makefile 
new/kexec-tools-2.0.22/kexec/Makefile
--- old/kexec-tools-2.0.21/kexec/Makefile       2019-10-01 12:46:44.000000000 
+0200
+++ new/kexec-tools-2.0.22/kexec/Makefile       2021-04-17 09:15:15.000000000 
+0200
@@ -22,7 +22,6 @@
 KEXEC_SRCS_base += kexec/crashdump.c
 KEXEC_SRCS_base += kexec/crashdump-xen.c
 KEXEC_SRCS_base += kexec/phys_arch.c
-KEXEC_SRCS_base += kexec/kernel_version.c
 KEXEC_SRCS_base += kexec/lzma.c
 KEXEC_SRCS_base += kexec/zlib.c
 KEXEC_SRCS_base += kexec/kexec-xen.c
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kexec-tools-2.0.21/kexec/arch/arm/kexec-zImage-arm.c 
new/kexec-tools-2.0.22/kexec/arch/arm/kexec-zImage-arm.c
--- old/kexec-tools-2.0.21/kexec/arch/arm/kexec-zImage-arm.c    2020-06-06 
15:22:30.000000000 +0200
+++ new/kexec-tools-2.0.22/kexec/arch/arm/kexec-zImage-arm.c    2021-04-17 
09:20:37.000000000 +0200
@@ -382,6 +382,7 @@
        unsigned int atag_offset = 0x1000; /* 4k offset from memory start */
        unsigned int extra_size = 0x8000; /* TEXT_OFFSET */
        const struct zimage_tag *tag;
+       size_t kernel_buf_size;
        size_t kernel_mem_size;
        const char *command_line;
        char *modified_cmdline = NULL;
@@ -538,6 +539,15 @@
        }
 
        /*
+        * Save the length of the compressed kernel image w/o the appended DTB.
+        * This will be required later on when the kernel image contained
+        * in the zImage will be loaded into a kernel memory segment.
+        * And we want to load ONLY the compressed kernel image from the zImage
+        * and discard the appended DTB.
+        */
+       kernel_buf_size = len;
+
+       /*
         * Always extend the zImage by four bytes to ensure that an appended
         * DTB image always sees an initialised value after _edata.
         */
@@ -759,7 +769,7 @@
                add_segment(info, dtb_buf, dtb_length, dtb_offset, dtb_length);
        }
 
-       add_segment(info, buf, len, kernel_base, kernel_mem_size);
+       add_segment(info, buf, kernel_buf_size, kernel_base, kernel_mem_size);
 
        info->entry = (void*)kernel_base;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kexec-tools-2.0.21/kexec/arch/i386/crashdump-x86.c 
new/kexec-tools-2.0.22/kexec/arch/i386/crashdump-x86.c
--- old/kexec-tools-2.0.21/kexec/arch/i386/crashdump-x86.c      2020-09-29 
18:14:33.000000000 +0200
+++ new/kexec-tools-2.0.22/kexec/arch/i386/crashdump-x86.c      2021-04-17 
09:15:15.000000000 +0200
@@ -55,16 +55,8 @@
        int kv;
 
        if (elf_info->machine == EM_X86_64) {
-               kv = kernel_version();
-               if (kv < 0)
-                       return -1;
-
-               if (kv < KERNEL_VERSION(2, 6, 27))
-                       elf_info->page_offset = X86_64_PAGE_OFFSET_PRE_2_6_27;
-               else if (kv < KERNEL_VERSION(4, 20, 0))
-                       elf_info->page_offset = X86_64_PAGE_OFFSET_PRE_4_20_0;
-               else
-                       elf_info->page_offset = X86_64_PAGE_OFFSET;
+               /* get_kernel_vaddr_and_size will override this */
+               elf_info->page_offset = X86_64_PAGE_OFFSET;
        }
        else if (elf_info->machine == EM_386) {
                elf_info->page_offset = X86_PAGE_OFFSET;
@@ -151,17 +143,15 @@
 
        /* Search for the real PAGE_OFFSET when KASLR memory randomization
         * is enabled */
-       if (get_kernel_sym("page_offset_base") != 0) {
-               for(phdr = ehdr.e_phdr; phdr != end_phdr; phdr++) {
-                       if (phdr->p_type == PT_LOAD) {
-                               vaddr = phdr->p_vaddr & pud_mask;
-                               if (lowest_vaddr == 0 || lowest_vaddr > vaddr)
-                                       lowest_vaddr = vaddr;
-                       }
+       for(phdr = ehdr.e_phdr; phdr != end_phdr; phdr++) {
+               if (phdr->p_type == PT_LOAD) {
+                       vaddr = phdr->p_vaddr & pud_mask;
+                       if (lowest_vaddr == 0 || lowest_vaddr > vaddr)
+                               lowest_vaddr = vaddr;
                }
-               if (lowest_vaddr != 0)
-                       elf_info->page_offset = lowest_vaddr;
        }
+       if (lowest_vaddr != 0)
+               elf_info->page_offset = lowest_vaddr;
 
        /* Traverse through the Elf headers and find the region where
         * _stext symbol is located in. That's where kernel is mapped */
@@ -271,8 +261,14 @@
                str = line + consumed;
                dbgprintf("%016llx-%016llx : %s",
                        start, end, str);
-               /* Only Dumping memory of type System RAM. */
-               if (memcmp(str, "System RAM\n", 11) == 0) {
+               /*
+                * We want to dump any System RAM -- memory regions currently
+                * used by the kernel. In the usual case, this is "System RAM"
+                * on the top level. However, we can also have "System RAM
+                * (virtio_mem)" below virtio devices or "System RAM (kmem)"
+                * below "Persistent Memory".
+                */
+               if (strstr(str, "System RAM")) {
                        type = RANGE_RAM;
                } else if (memcmp(str, "ACPI Tables\n", 12) == 0) {
                        /*
@@ -349,8 +345,8 @@
 static int get_crash_memory_ranges_xen(struct memory_range **range,
                                        int *ranges, unsigned long lowmem_limit)
 {
+       struct e820entry *e820entries;
        int j, rc, ret = -1;
-       struct e820entry e820entries[CRASH_MAX_MEMORY_RANGES];
        unsigned int i;
        xc_interface *xc;
 
@@ -361,6 +357,8 @@
                return -1;
        }
 
+       e820entries = xmalloc(sizeof(*e820entries) * CRASH_MAX_MEMORY_RANGES);
+
        rc = xc_get_machine_memory_map(xc, e820entries, 
CRASH_MAX_MEMORY_RANGES);
 
        if (rc < 0) {
@@ -389,7 +387,7 @@
 
 err:
        xc_interface_close(xc);
-
+       free(e820entries);
        return ret;
 }
 #else
@@ -475,9 +473,18 @@
        int i, j, nr_entries = 0, tidx = 0, align = 1024;
        unsigned long long mstart, mend;
 
-       /* Do alignment check if it's RANGE_RAM */
-       if ((type == RANGE_RAM) && ((addr%align) || (size%align)))
-               return -1;
+       /* Shrink to 1KiB alignment if needed. */
+       if (type == RANGE_RAM && ((addr%align) || (size%align))) {
+               unsigned long long end = addr + size;
+
+               printf("%s: RAM chunk %#llx - %#llx unaligned\n", __func__, 
addr, end);
+               addr = _ALIGN_UP(addr, align);
+               end = _ALIGN_DOWN(end, align);
+               if (addr >= end)
+                       return -1;
+               size = end - addr;
+               printf("%s: RAM chunk shrunk to %#llx - %#llx\n", __func__, 
addr, end);
+       }
 
        /* Make sure at least one entry in list is free. */
        for (i = 0; i < CRASH_MAX_MEMMAP_NR;  i++) {
@@ -982,7 +989,7 @@
        cmdline_add_elfcorehdr(mod_cmdline, elfcorehdr);
 
        /* Inform second kernel about the presence of ACPI tables. */
-       for (i = 0; i < CRASH_MAX_MEMORY_RANGES; i++) {
+       for (i = 0; i < nr_ranges; i++) {
                unsigned long start, end, size, type;
                if ( !( mem_range[i].type == RANGE_ACPI
                        || mem_range[i].type == RANGE_ACPI_NVS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kexec-tools-2.0.21/kexec/arch/i386/crashdump-x86.h 
new/kexec-tools-2.0.22/kexec/arch/i386/crashdump-x86.h
--- old/kexec-tools-2.0.21/kexec/arch/i386/crashdump-x86.h      2019-09-16 
09:22:42.000000000 +0200
+++ new/kexec-tools-2.0.22/kexec/arch/i386/crashdump-x86.h      2021-04-02 
12:09:36.000000000 +0200
@@ -22,7 +22,8 @@
 #define X86_64_KERNEL_TEXT_SIZE  (512UL*1024*1024)
 
 #define CRASH_MAX_MEMMAP_NR    1024
-#define CRASH_MAX_MEMORY_RANGES        (MAX_MEMORY_RANGES + 2)
+
+#define CRASH_MAX_MEMORY_RANGES        32768
 
 /* Backup Region, First 640K of System RAM. */
 #define BACKUP_SRC_START       0x00000000
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kexec-tools-2.0.21/kexec/arch/i386/kexec-x86-common.c 
new/kexec-tools-2.0.22/kexec/arch/i386/kexec-x86-common.c
--- old/kexec-tools-2.0.21/kexec/arch/i386/kexec-x86-common.c   2020-04-01 
14:48:56.000000000 +0200
+++ new/kexec-tools-2.0.22/kexec/arch/i386/kexec-x86-common.c   2021-04-07 
21:26:41.000000000 +0200
@@ -48,6 +48,12 @@
 #define E820_PRAM         12
 #endif
 
+/*
+ * The real mode IVT ends at 0x400.
+ * See https://wiki.osdev.org/Interrupt_Vector_Table.
+ */
+#define REALMODE_IVT_END 0x400
+
 static struct memory_range memory_range[MAX_MEMORY_RANGES];
 
 /**
@@ -360,8 +366,8 @@
        /* Don't report the interrupt table as ram */
        for (i = 0; i < *ranges; i++) {
                if ((*range)[i].type == RANGE_RAM &&
-                               ((*range)[i].start < 0x100)) {
-                       (*range)[i].start = 0x100;
+                               ((*range)[i].start < REALMODE_IVT_END)) {
+                       (*range)[i].start = REALMODE_IVT_END;
                        break;
                }
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kexec-tools-2.0.21/kexec/arch/i386/x86-linux-setup.c 
new/kexec-tools-2.0.22/kexec/arch/i386/x86-linux-setup.c
--- old/kexec-tools-2.0.21/kexec/arch/i386/x86-linux-setup.c    2020-11-16 
11:59:20.000000000 +0100
+++ new/kexec-tools-2.0.22/kexec/arch/i386/x86-linux-setup.c    2021-04-02 
12:09:36.000000000 +0200
@@ -37,6 +37,10 @@
 #include "x86-linux-setup.h"
 #include "../../kexec/kexec-syscall.h"
 
+#ifndef VIDEO_CAPABILITY_64BIT_BASE
+#define VIDEO_CAPABILITY_64BIT_BASE (1 << 1)   /* Frame buffer base is 64-bit 
*/
+#endif
+
 void init_linux_parameters(struct x86_linux_param_header *real_mode)
 {
        /* Fill in the values that are usually provided by the kernel. */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kexec-tools-2.0.21/kexec/arch/mips/crashdump-mips.c 
new/kexec-tools-2.0.22/kexec/arch/mips/crashdump-mips.c
--- old/kexec-tools-2.0.21/kexec/arch/mips/crashdump-mips.c     2020-12-09 
13:47:27.000000000 +0100
+++ new/kexec-tools-2.0.22/kexec/arch/mips/crashdump-mips.c     2021-04-02 
12:09:36.000000000 +0200
@@ -401,7 +401,7 @@
         * kernel's available memory
         */
        cmdline_add_mem(mod_cmdline, crash_reserved_mem.start,
-               crash_reserved_mem.end - crash_reserved_mem.start);
+               crash_reserved_mem.end - crash_reserved_mem.start + 1);
        cmdline_add_elfcorehdr(mod_cmdline, elfcorehdr);
 
        dbgprintf("CRASH MEMORY RANGES:\n");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kexec-tools-2.0.21/kexec/arch/mips/include/arch/options.h 
new/kexec-tools-2.0.22/kexec/arch/mips/include/arch/options.h
--- old/kexec-tools-2.0.21/kexec/arch/mips/include/arch/options.h       
2016-12-20 09:28:23.000000000 +0100
+++ new/kexec-tools-2.0.22/kexec/arch/mips/include/arch/options.h       
2021-04-02 12:09:36.000000000 +0200
@@ -1,10 +1,11 @@
 #ifndef KEXEC_ARCH_MIPS_OPTIONS_H
 #define KEXEC_ARCH_MIPS_OPTIONS_H
 
-#define OPT_ARCH_MAX   (OPT_MAX+0)
-#define OPT_APPEND     (OPT_ARCH_MAX+0)
-#define OPT_DTB                (OPT_ARCH_MAX+1)
-#define OPT_RAMDISK    (OPT_ARCH_MAX+2)
+#define OPT_ARCH_MAX           (OPT_MAX+0)
+#define OPT_APPEND             (OPT_ARCH_MAX+0)
+#define OPT_DTB                (OPT_ARCH_MAX+1)
+#define OPT_RAMDISK            (OPT_ARCH_MAX+2)
+#define OPT_REUSE_CMDLINE      (OPT_ARCH_MAX+3)
 
 /* Options relevant to the architecture (excluding loader-specific ones),
  * in this case none:
@@ -14,7 +15,8 @@
        {"command-line", 1, 0, OPT_APPEND}, \
        {"append",       1, 0, OPT_APPEND}, \
        {"dtb",         1, 0, OPT_DTB }, \
-       {"initrd",      1, 0, OPT_RAMDISK },
+       {"initrd",      1, 0, OPT_RAMDISK }, \
+       { "reuse-cmdline", 0, NULL, OPT_REUSE_CMDLINE },
 
 
 #define KEXEC_ARCH_OPT_STR KEXEC_OPT_STR ""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kexec-tools-2.0.21/kexec/arch/mips/kexec-mips.c 
new/kexec-tools-2.0.22/kexec/arch/mips/kexec-mips.c
--- old/kexec-tools-2.0.21/kexec/arch/mips/kexec-mips.c 2017-10-18 
07:15:24.000000000 +0200
+++ new/kexec-tools-2.0.22/kexec/arch/mips/kexec-mips.c 2021-04-02 
12:09:36.000000000 +0200
@@ -3,7 +3,7 @@
  * Copyright (C) 2007 Francesco Chiechi, Alessandro Rubini
  * Copyright (C) 2007 Tvblob s.r.l.
  *
- * derived from ../ppc/kexec-mips.c
+ * derived from ../ppc/kexec-ppc.c
  * Copyright (C) 2004, 2005 Albert Herranz
  *
  * This source code is licensed under the GNU General Public License,
@@ -89,6 +89,7 @@
        "    --append=STRING       Set the kernel command line to STRING.\n"
        "    --dtb=FILE            Use FILE as the device tree blob.\n"
        "    --initrd=FILE         Use FILE as initial ramdisk.\n"
+       "    --reuse-cmdline       Use kernel command line from running 
system.\n"
        );
 }
 
@@ -115,6 +116,9 @@
                case OPT_APPEND:
                        arch_options.command_line = optarg;
                        break;
+               case OPT_REUSE_CMDLINE:
+                       arch_options.command_line = get_command_line();
+                       break;
                case OPT_DTB:
                        arch_options.dtb_file = optarg;
                        break;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kexec-tools-2.0.21/kexec/arch/ppc/crashdump-powerpc.c 
new/kexec-tools-2.0.22/kexec/arch/ppc/crashdump-powerpc.c
--- old/kexec-tools-2.0.21/kexec/arch/ppc/crashdump-powerpc.c   2017-08-10 
09:28:22.000000000 +0200
+++ new/kexec-tools-2.0.22/kexec/arch/ppc/crashdump-powerpc.c   2021-04-17 
09:15:15.000000000 +0200
@@ -255,8 +255,7 @@
        int cmdline_size;
        int cmdlen = strlen(cmdline) + strlen(str);
 
-       cmdline_size = (kernel_version() < KERNEL_VERSION(3, 15, 0) ?
-                       512 : COMMAND_LINE_SIZE);
+       cmdline_size = COMMAND_LINE_SIZE;
        if (cmdlen > (cmdline_size - 1))
                die("Command line overflow\n");
        strcat(cmdline, str);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kexec-tools-2.0.21/kexec/arch/ppc64/crashdump-ppc64.c 
new/kexec-tools-2.0.22/kexec/arch/ppc64/crashdump-ppc64.c
--- old/kexec-tools-2.0.21/kexec/arch/ppc64/crashdump-ppc64.c   2020-09-29 
18:14:33.000000000 +0200
+++ new/kexec-tools-2.0.22/kexec/arch/ppc64/crashdump-ppc64.c   2021-04-17 
09:15:15.000000000 +0200
@@ -478,8 +478,7 @@
        strcat(str, byte);
        len = strlen(str);
        cmdlen = strlen(cmdline) + len;
-       cmdline_size = (kernel_version() < KERNEL_VERSION(3, 15, 0) ?
-                       512 : COMMAND_LINE_SIZE);
+       cmdline_size = COMMAND_LINE_SIZE;
        if (cmdlen > (cmdline_size - 1))
                die("Command line overflow\n");
        strcat(cmdline, str);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kexec-tools-2.0.21/kexec/kernel_version.c 
new/kexec-tools-2.0.22/kexec/kernel_version.c
--- old/kexec-tools-2.0.21/kexec/kernel_version.c       2016-12-09 
10:42:06.000000000 +0100
+++ new/kexec-tools-2.0.22/kexec/kernel_version.c       1970-01-01 
01:00:00.000000000 +0100
@@ -1,57 +0,0 @@
-#include "kexec.h"
-#include <errno.h>
-#include <string.h>
-#include <sys/utsname.h>
-#include <string.h>
-#include <limits.h>
-#include <stdlib.h>
-
-long kernel_version(void)
-{
-       struct utsname utsname;
-       unsigned long major, minor, patch;
-       char *p;
-
-       if (uname(&utsname) < 0) {
-               fprintf(stderr, "uname failed: %s\n", strerror(errno));
-               return -1;
-       }
-
-       p = utsname.release;
-       major = strtoul(p, &p, 10);
-       if (major == ULONG_MAX) {
-               fprintf(stderr, "strtoul failed: %s\n", strerror(errno));
-               return -1;
-       }
-
-       if (*p++ != '.') {
-               fprintf(stderr, "Unsupported utsname.release: %s\n",
-                       utsname.release);
-               return -1;
-       }
-
-       minor = strtoul(p, &p, 10);
-       if (minor == ULONG_MAX) {
-               fprintf(stderr, "strtoul failed: %s\n", strerror(errno));
-               return -1;
-       }
-
-       /* There may or may not be a patch level for this kernel */
-       if (*p++ == '.') {
-               patch = strtoul(p, &p, 10);
-               if (patch == ULONG_MAX) {
-                       fprintf(stderr, "strtoul failed: %s\n",strerror(errno));
-                       return -1;
-               }
-       } else {
-               patch = 0;
-       }
-
-       if (major >= 256 || minor >= 256 || patch >= 256) {
-               fprintf(stderr, "Unsupported utsname.release: %s\n",
-                       utsname.release);
-               return -1;
-       }
-
-       return KERNEL_VERSION(major, minor, patch);
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kexec-tools-2.0.21/kexec/kexec-xen.c 
new/kexec-tools-2.0.22/kexec/kexec-xen.c
--- old/kexec-tools-2.0.21/kexec/kexec-xen.c    2020-04-07 13:55:42.000000000 
+0200
+++ new/kexec-tools-2.0.22/kexec/kexec-xen.c    2021-04-02 12:09:36.000000000 
+0200
@@ -91,6 +91,17 @@
        return rc;
 }
 
+static uint8_t xen_get_kexec_type(unsigned long kexec_flags)
+{
+       if (kexec_flags & KEXEC_ON_CRASH)
+               return KEXEC_TYPE_CRASH;
+
+       if (kexec_flags & KEXEC_LIVE_UPDATE)
+               return KEXEC_TYPE_LIVE_UPDATE;
+
+       return KEXEC_TYPE_DEFAULT;
+}
+
 #define IDENTMAP_1MiB (1024 * 1024)
 
 int xen_kexec_load(struct kexec_info *info)
@@ -177,12 +188,7 @@
                seg++;
        }
 
-       if (info->kexec_flags & KEXEC_ON_CRASH)
-               type = KEXEC_TYPE_CRASH;
-       else if (info->kexec_flags & KEXEC_LIVE_UPDATE )
-               type = KEXEC_TYPE_LIVE_UPDATE;
-       else
-               type = KEXEC_TYPE_DEFAULT;
+       type = xen_get_kexec_type(info->kexec_flags);
 
        arch = (info->kexec_flags & KEXEC_ARCH_MASK) >> 16;
 #if defined(__i386__) || defined(__x86_64__)
@@ -211,8 +217,7 @@
        if (!xch)
                return -1;
 
-       type = (kexec_flags & KEXEC_ON_CRASH) ? KEXEC_TYPE_CRASH
-               : KEXEC_TYPE_DEFAULT;
+       type = xen_get_kexec_type(kexec_flags);
 
        ret = xc_kexec_unload(xch, type);
 
@@ -232,7 +237,7 @@
        if (!xch)
                return -1;
 
-       type = (kexec_flags & KEXEC_ON_CRASH) ? KEXEC_TYPE_CRASH : 
KEXEC_TYPE_DEFAULT;
+       type = xen_get_kexec_type(kexec_flags);
 
        ret = xc_kexec_status(xch, type);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kexec-tools-2.0.21/kexec/kexec.8 
new/kexec-tools-2.0.22/kexec/kexec.8
--- old/kexec-tools-2.0.21/kexec/kexec.8        2019-07-03 09:56:22.000000000 
+0200
+++ new/kexec-tools-2.0.22/kexec/kexec.8        2021-04-02 12:09:36.000000000 
+0200
@@ -108,9 +108,9 @@
 Enable debugging messages.
 .TP
 .B \-S\ (\-\-status)
-Return 0 if the type (by default crash) is loaded. Can be used in conjuction
-with -l or -p to toggle the type. Note this option supersedes other options
-and it will
+Return 1 if the type (by default crash) is loaded, 0 if not. Can be used in
+conjuction with -l or -p to toggle the type. Note this option supersedes other
+options and it will
 .BR not\ load\ or\ unload\ the\ kernel.
 .TP
 .B \-e\ (\-\-exec)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kexec-tools-2.0.21/kexec/kexec.c 
new/kexec-tools-2.0.22/kexec/kexec.c
--- old/kexec-tools-2.0.21/kexec/kexec.c        2020-09-29 18:12:05.000000000 
+0200
+++ new/kexec-tools-2.0.22/kexec/kexec.c        2021-04-02 12:09:36.000000000 
+0200
@@ -1040,7 +1040,8 @@
               "                      syscall is not supported or the kernel 
did not\n"
               "                      understand the image\n"
               " -d, --debug          Enable debugging to help spot a 
failure.\n"
-              " -S, --status         Return 0 if the type (by default crash) 
is loaded.\n"
+              " -S, --status         Return 1 if the type (by default crash) 
is loaded,\n"
+              "                      0 if not.\n"
               "\n"
               "Supported kernel file types and options: \n");
        for (i = 0; i < file_types; i++) {
@@ -1189,7 +1190,8 @@
 
        xen_get_kexec_range(KEXEC_RANGE_MA_LIVEUPDATE, &lu_start, &lu_end);
        lu_sizeM = (lu_end - lu_start) / (1024 * 1024) + 1;
-       sprintf(buf, " liveupdate=%luM@0x%lx", lu_sizeM, lu_start);
+       sprintf(buf, " liveupdate=%lluM@0x%llx", (unsigned long long)lu_sizeM,
+               (unsigned long long)lu_start);
        len = strlen(*base) + strlen(buf) + 1;
        str = xmalloc(len);
        sprintf(str, "%s%s", *base, buf);
@@ -1335,6 +1337,7 @@
 
 int main(int argc, char *argv[])
 {
+       int has_opt_load = 0;
        int do_load = 1;
        int do_exec = 0;
        int do_load_jump_back_helper = 0;
@@ -1392,6 +1395,7 @@
                        do_exec = 1;
                        break;
                case OPT_LOAD:
+                       has_opt_load = 1;
                        do_load = 1;
                        do_exec = 0;
                        do_shutdown = 0;
@@ -1511,7 +1515,7 @@
                do_sync = 0;
 
        if (do_status) {
-               if (kexec_flags == 0)
+               if (kexec_flags == 0 && !has_opt_load)
                        kexec_flags = KEXEC_ON_CRASH;
                do_load = 0;
                do_reuse_initrd = 0;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kexec-tools-2.0.21/kexec/kexec.h 
new/kexec-tools-2.0.22/kexec/kexec.h
--- old/kexec-tools-2.0.21/kexec/kexec.h        2020-09-25 08:07:30.000000000 
+0200
+++ new/kexec-tools-2.0.22/kexec/kexec.h        2021-04-17 09:15:15.000000000 
+0200
@@ -179,10 +179,6 @@
 extern const struct arch_map_entry arches[];
 long physical_arch(void);
 
-#define KERNEL_VERSION(major, minor, patch) \
-       (((major) << 16) | ((minor) << 8) | patch)
-long kernel_version(void);
-
 void usage(void);
 int get_memory_ranges(struct memory_range **range, int *ranges,
                                                unsigned long kexec_flags);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kexec-tools-2.0.21/kexec-tools.spec 
new/kexec-tools-2.0.22/kexec-tools.spec
--- old/kexec-tools-2.0.21/kexec-tools.spec     2020-12-17 13:17:55.000000000 
+0100
+++ new/kexec-tools-2.0.22/kexec-tools.spec     2021-05-02 10:10:56.000000000 
+0200
@@ -1,6 +1,6 @@
 Summary: Load one kernel from another
 Name: kexec-tools
-Version: 2.0.21
+Version: 2.0.22
 Release: 0
 License: GPL
 Group: Development/Tools
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kexec-tools-2.0.21/util_lib/elf_info.c 
new/kexec-tools-2.0.22/util_lib/elf_info.c
--- old/kexec-tools-2.0.21/util_lib/elf_info.c  2020-11-30 17:33:25.000000000 
+0100
+++ new/kexec-tools-2.0.22/util_lib/elf_info.c  2021-04-02 12:09:36.000000000 
+0200
@@ -920,8 +920,8 @@
 
 #define DESC_SV_BITS           (sizeof(uint64_t) * 8)
 #define DESC_FLAGS_SHIFT       (DESC_SV_BITS - 2)
-#define DESC_FLAGS_MASK                (3UL << DESC_FLAGS_SHIFT)
-#define DESC_STATE(sv)         (3UL & (sv >> DESC_FLAGS_SHIFT))
+#define DESC_FLAGS_MASK                (3ULL << DESC_FLAGS_SHIFT)
+#define DESC_STATE(sv)         (3ULL & (sv >> DESC_FLAGS_SHIFT))
 #define DESC_ID_MASK           (~DESC_FLAGS_MASK)
 #define DESC_ID(sv)            ((sv) & DESC_ID_MASK)
 
@@ -1092,13 +1092,13 @@
        kaddr = read_file_pointer(fd, vaddr_to_offset(prb_vaddr));
        m.prb = calloc(1, printk_ringbuffer_sz);
        if (!m.prb) {
-               fprintf(stderr, "Failed to malloc %lu bytes for prb: %s\n",
+               fprintf(stderr, "Failed to malloc %zu bytes for prb: %s\n",
                        printk_ringbuffer_sz, strerror(errno));
                exit(64);
        }
        ret = pread(fd, m.prb, printk_ringbuffer_sz, vaddr_to_offset(kaddr));
        if (ret != printk_ringbuffer_sz) {
-               fprintf(stderr, "Failed to read prb of size %lu bytes: %s\n",
+               fprintf(stderr, "Failed to read prb of size %zu bytes: %s\n",
                        printk_ringbuffer_sz, strerror(errno));
                exit(65);
        }

++++++ kexec-tools-remove-duplicate-ramdisk-definition.patch ++++++
--- /var/tmp/diff_new_pack.R3Lmhg/_old  2021-05-10 15:38:10.277854773 +0200
+++ /var/tmp/diff_new_pack.R3Lmhg/_new  2021-05-10 15:38:10.277854773 +0200
@@ -1,6 +1,7 @@
 From: Petr Tesarik <[email protected]>
 Subject: Remove duplicate definition of ramdisk
-Upstream: not yet, sent on 2021-04-26
+Upstream: merged
+Git-commit: 5e7ce27626a44428c01e0e5ab3fe60ef98ca788c
 
 The ramdisk variable is defined in kexec/arch/ppc/kexec-ppc.c. This
 other definition is not needed and breaks build with -fno-common.

Reply via email to