Hello community,

here is the log from the commit of package kexec-tools for openSUSE:Factory 
checked in at 2014-02-11 11:39:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kexec-tools (Old)
 and      /work/SRC/openSUSE:Factory/.kexec-tools.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kexec-tools"

Changes:
--------
--- /work/SRC/openSUSE:Factory/kexec-tools/kexec-tools.changes  2014-01-15 
19:35:50.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kexec-tools.new/kexec-tools.changes     
2014-02-11 11:39:33.000000000 +0100
@@ -1,0 +2,31 @@
+Wed Feb  5 17:53:56 UTC 2014 - to...@suse.com
+
+- Update to version 2.0.5
+  Drop patch 'device-tree-buffer-overflows.patch' (upstream)
+  Drop patch '0001-kexec-fs2dt-fix-endianess-conversion.patch' (upstream)
+- Rename aarch64 patch to 'kexec-tools-enable-aarch64.patch' and rebase to 
+  version from Linaro git.
+- Add 'kexec-tools-enable-aarch64-fixup.patch' to solve arm libfdt breakage
+  with Linaro patch.
+- Enable ppc64le
+- Refresh patches for context.
+- Add following patches (pending upstream):
+  'kexec-tools-i386-bzimage_efi.patch' to fix i386 breakage.
+  'kexec-tools-xen-e820-redefinition.patch' to fix xen/820 breakage.
+
+-------------------------------------------------------------------
+Tue Feb  4 13:00:37 UTC 2014 - dmuel...@suse.com
+
+- add 0001-kexec-fs2dt-fix-endianess-conversion.patch:
+  * fix ppc64 and arm
+- refresh device-tree-buffer-overflows.patch with the version
+  that went upstream
+
+-------------------------------------------------------------------
+Mon Feb  3 14:17:09 UTC 2014 - dmuel...@suse.com
+
+- enable build for arm / aarch64 
+- add kexec-aarch64.patch
+- add device-tree-buffer-overflows.patch
+
+-------------------------------------------------------------------

Old:
----
  kexec-tools-2.0.4-rpmlintrc
  kexec-tools-2.0.4.tar.bz2

New:
----
  kexec-tools-2.0.5.tar.xz
  kexec-tools-enable-aarch64-fixup.patch
  kexec-tools-enable-aarch64.patch
  kexec-tools-i386-bzimage_efi.patch
  kexec-tools-rpmlintrc
  kexec-tools-xen-e820-redefinition.patch

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

Other differences:
------------------
++++++ kexec-tools.spec ++++++
--- /var/tmp/diff_new_pack.67kXbX/_old  2014-02-11 11:39:34.000000000 +0100
+++ /var/tmp/diff_new_pack.67kXbX/_new  2014-02-11 11:39:34.000000000 +0100
@@ -26,16 +26,20 @@
 Summary:        Tools for fast kernel loading
 License:        GPL-2.0+
 Group:          System/Kernel
-Version:        2.0.4
+Version:        2.0.5
 Release:        0
-Source:         
ftp://kernel.org/pub/linux/utils/kernel/kexec/%{name}-%{version}.tar.bz2
+Source:         
ftp://kernel.org/pub/linux/utils/kernel/kexec/%{name}-%{version}.tar.xz
 Source1:        kexec-bootloader
 Source2:        kexec-bootloader.8.txt
 Source3:        kexec.init
-Source4:        %{name}-%{version}-rpmlintrc
+Source4:        %{name}-rpmlintrc
 Patch1:         %{name}-xen-static.patch
 Patch2:         %{name}-xen-balloon-up.patch
 Patch3:         %{name}-disable-test.patch
+Patch4:         %{name}-enable-aarch64.patch
+Patch5:         %{name}-xen-e820-redefinition.patch
+Patch6:         %{name}-enable-aarch64-fixup.patch
+Patch7:         %{name}-i386-bzimage_efi.patch
 Url:            
ftp://kernel.org/pub/linux/utils/kernel/kexec/%{name}-%{version}.tar.bz2
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 #!BuildIgnore:  fop
@@ -48,7 +52,7 @@
 %ifarch         x86_64
 BuildRequires:  xen-devel
 %endif
-ExclusiveArch:  %ix86 x86_64 ia64 ppc ppc64 s390 s390x arm sh mips mipsel
+ExclusiveArch:  ppc64le aarch64 %ix86 x86_64 ia64 ppc ppc64 s390 s390x %arm sh 
mips mipsel
 
 %description
 Kexec is a user space utility for loading another kernel and asking the
@@ -61,6 +65,10 @@
 %patch1 -p1
 %patch2 -p1
 %patch3 -p1
+%patch4 -p1
+%patch5 -p1
+%patch6 -p1
+%patch7 -p1
 
 %build
 # disable as-needed
@@ -71,14 +79,12 @@
 %endif
 autoreconf -f
 CFLAGS=$RPM_OPT_FLAGS BUILD_CFLAGS=$RPM_OPT_FLAGS \
-%configure \
 %ifarch ppc
-        --host=powerpc64-suse-linux \
-        --build=powerpc64-suse-linux \
+%configure --host=powerpc64-suse-linux --build=powerpc64-suse-linux 
+%else
+%configure
 %endif
-#      --libdir=/%_lib || true
 make
-# manpage
 cp %{S:1} .
 cp %{S:2} .
 cp %{S:3} .
@@ -111,7 +117,6 @@
 %{fillup_and_insserv -n kexec kexec}
 %endif
 #
-#%preun
 
 %postun
 %if 0%{?suse_version} >= 1110

++++++ kexec-tools-enable-aarch64-fixup.patch ++++++
From: Tony Jones <to...@suse.de>
Subject: fixup aarch64 libfdt
Upstream: no

LIBS change had global scope,  fix.

---
 kexec/arch/arm64/Makefile |    9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

--- a/kexec/arch/arm64/Makefile
+++ b/kexec/arch/arm64/Makefile
@@ -2,9 +2,14 @@
 arm64_FS2DT += kexec/fs2dt.c
 arm64_FS2DT_INCLUDE += -include $(srcdir)/kexec/arch/arm64/kexec-arm64.h
 
+libfdt_SRCS += $(LIBFDT_SRCS:%=kexec/libfdt/%)
+
 arm64_KEXEC_SRCS += \
        kexec/arch/arm64/kexec-arm64.c \
-       kexec/arch/arm64/kexec-elf-arm64.c
+       kexec/arch/arm64/kexec-elf-arm64.c \
+       $(libfdt_SRCS)
+
+arm64_CPPFLAGS = -I$(srcdir)/kexec/libfdt
 
 arm64_ARCH_REUSE_INITRD =
 arm64_ADD_SEGMENT =
@@ -13,5 +18,3 @@ arm64_VIRT_TO_PHYS =
 dist += $(arm64_KEXEC_SRCS) \
        kexec/arch/arm64/Makefile \
        kexec/arch/arm64/kexec-arm64.h
-
-LIBS += -lfdt
++++++ kexec-tools-enable-aarch64.patch ++++++
From: Geoff Levand <ge...@infradead.org>
Date: Mon, 15 Jul 2013 23:32:36 +0000 (-0700)
Subject: Add arm64 support
Git-repo: https://git.linaro.org/people/geoff.levand/kexec-tools.git
Git-commit: 44a50d00fa02dbb43d19a267039b53422a11eb6
Signed-off-by: Dirk Müller <dmuel...@suse.com>

    Add arm64 support
    
    Signed-off-by: Geoff Levand <ge...@infradead.org>

diff --git a/configure.ac b/configure.ac
index 31d1bbe..c6e8bd6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -35,6 +35,9 @@ case $target_cpu in
                ARCH="ppc64"
                SUBARCH="LE"
                ;;
+       aarch64 )
+               ARCH="arm64"
+               ;;
        arm* )
                ARCH="arm"
                ;;
diff --git a/kexec/Makefile b/kexec/Makefile
index 7d3175b..9777ec3 100644
--- a/kexec/Makefile
+++ b/kexec/Makefile
@@ -71,6 +71,7 @@ KEXEC_SRCS                    += $($(ARCH)_FS2DT)
 
 include $(srcdir)/kexec/arch/alpha/Makefile
 include $(srcdir)/kexec/arch/arm/Makefile
+include $(srcdir)/kexec/arch/arm64/Makefile
 include $(srcdir)/kexec/arch/i386/Makefile
 include $(srcdir)/kexec/arch/ia64/Makefile
 include $(srcdir)/kexec/arch/m68k/Makefile
diff --git a/kexec/arch/arm64/Makefile b/kexec/arch/arm64/Makefile
new file mode 100644
index 0000000..8b7f8a5
--- /dev/null
+++ b/kexec/arch/arm64/Makefile
@@ -0,0 +1,17 @@
+
+arm64_FS2DT += kexec/fs2dt.c
+arm64_FS2DT_INCLUDE += -include $(srcdir)/kexec/arch/arm64/kexec-arm64.h
+
+arm64_KEXEC_SRCS += \
+       kexec/arch/arm64/kexec-arm64.c \
+       kexec/arch/arm64/kexec-elf-arm64.c
+
+arm64_ARCH_REUSE_INITRD =
+arm64_ADD_SEGMENT =
+arm64_VIRT_TO_PHYS =
+
+dist += $(arm64_KEXEC_SRCS) \
+       kexec/arch/arm64/Makefile \
+       kexec/arch/arm64/kexec-arm64.h
+
+LIBS += -lfdt
diff --git a/kexec/arch/arm64/include/arch/options.h 
b/kexec/arch/arm64/include/arch/options.h
new file mode 100644
index 0000000..c9a0287
--- /dev/null
+++ b/kexec/arch/arm64/include/arch/options.h
@@ -0,0 +1,30 @@
+#ifndef KEXEC_ARCH_ARM64_OPTIONS_H
+#define KEXEC_ARCH_ARM64_OPTIONS_H
+
+#define OPT_APPEND     ((OPT_MAX)+0)
+#define OPT_RAMDISK    ((OPT_MAX)+1)
+#define OPT_DTB                ((OPT_MAX)+2)
+#define OPT_ARCH_MAX   ((OPT_MAX)+3)
+
+#define KEXEC_ARCH_OPTIONS \
+       KEXEC_OPTIONS \
+       { "append",       1, NULL, OPT_APPEND }, \
+       { "command-line", 1, NULL, OPT_APPEND }, \
+       { "dtb",          1, NULL, OPT_DTB }, \
+       { "initrd",       1, NULL, OPT_RAMDISK }, \
+       { "ramdisk",      1, NULL, OPT_RAMDISK }, \
+
+#define KEXEC_ARCH_OPT_STR KEXEC_OPT_STR /* Only accept long arch options. */
+
+#define KEXEC_ALL_OPTIONS KEXEC_ARCH_OPTIONS
+#define KEXEC_ALL_OPT_STR KEXEC_ARCH_OPT_STR
+
+struct arm64_opts {
+       const char *command_line;
+       const char *ramdisk;
+       const char *dtb;
+};
+
+struct arm64_opts arm64_opts;
+
+#endif /* KEXEC_ARCH_ARM64_OPTIONS_H */
diff --git a/kexec/arch/arm64/kexec-arm64.c b/kexec/arch/arm64/kexec-arm64.c
new file mode 100644
index 0000000..e02c38d
--- /dev/null
+++ b/kexec/arch/arm64/kexec-arm64.c
@@ -0,0 +1,228 @@
+/*
+ * ARM64 kexec support.
+ */
+
+#define _GNU_SOURCE
+
+#include <errno.h>
+#include <getopt.h>
+#include <stddef.h>
+
+//#include <linux/kexec.h>
+
+#include "../../kexec.h"
+#include "../../kexec-syscall.h"
+#include "kexec-arm64.h"
+#include "arch/options.h"
+
+/* Global varables the core kexec routines expect. */
+
+unsigned char reuse_initrd;
+off_t initrd_base = 0;
+off_t initrd_size = 0;
+
+struct memory_ranges usablemem_rgns = {
+};
+
+const struct arch_map_entry arches[] = {
+       { "aarch64", KEXEC_ARCH_ARM64 },
+       { NULL, 0 },
+};
+
+/* arm64 global varables. */
+
+struct arm64_opts arm64_opts;
+
+void arch_usage(void)
+{
+       fprintf(stderr, "%s:%d: ->\n", __func__, __LINE__);
+
+       printf(
+"     --append=STRING       Set the kernel command line to STRING.\n"
+"     --command-line=STRING Set the kernel command line to STRING.\n"
+"     --dtb=FILE            Use FILE as the device tree blob.\n"
+"     --initrd=FILE         Use FILE as the kernel initial ramdisk.\n"
+"     --ramdisk=FILE        Use FILE as the kernel initial ramdisk.\n");
+
+       fprintf(stderr, "%s:%d: <-\n", __func__, __LINE__);
+}
+
+int arch_process_options(int argc, char **argv)
+{
+       static const char short_options[] = KEXEC_OPT_STR "";
+       static const struct option options[] = {
+               KEXEC_ARCH_OPTIONS
+               { 0 }
+       };
+       int opt;
+
+       for (opt = 0; opt != -1; ) {
+               opt = getopt_long(argc, argv, short_options, options, 0);
+
+               switch (opt) {
+               case OPT_APPEND:
+                       arm64_opts.command_line = optarg;
+                       break;
+               case OPT_RAMDISK:
+                       arm64_opts.ramdisk = optarg;
+                       break;
+               case OPT_DTB:
+                       arm64_opts.dtb = optarg;
+                       break;
+               default:
+                       break; /* Ignore core and unknown options */
+               }
+       }
+
+       dbgprintf("%s:%d: command_line: %s\n", __func__, __LINE__,
+               arm64_opts.command_line);
+       dbgprintf("%s:%d: ramdisk: %s\n", __func__, __LINE__,
+               arm64_opts.ramdisk);
+       dbgprintf("%s:%d: dtb: %s\n", __func__, __LINE__, arm64_opts.dtb);
+
+       return 0;
+}
+
+int is_crashkernel_mem_reserved(void)
+{
+       return 0; /* TODO: kdump not implemented yet. */
+}
+
+void arch_reuse_initrd(void)
+{
+       reuse_initrd = 1;
+}
+
+void arch_update_purgatory(struct kexec_info *UNUSED(info))
+{
+       fprintf(stderr, "%s:%d: do\n", __func__, __LINE__);
+}
+
+unsigned long virt_to_phys(unsigned long addr)
+{
+       fprintf(stderr, "%s:%d: %016lx -> %016lx\n", __func__, __LINE__, addr,
+               addr + 0x080000000UL);
+       return addr + 0x080000000UL;
+}
+
+void add_segment(struct kexec_info *info, const void *buf, size_t bufsz,
+       unsigned long base, size_t memsz)
+{
+       fprintf(stderr, "%s:%d: ->\n", __func__, __LINE__);
+       add_segment_phys_virt(info, buf, bufsz, base, memsz, 1);
+       fprintf(stderr, "%s:%d: <-\n", __func__, __LINE__);
+}
+
+static int get_memory_ranges_1(struct memory_range **range, int *ranges,
+                       unsigned long kexec_flags)
+{
+       static struct memory_range memory_range[KEXEC_SEGMENT_MAX];
+       const char *iomem;
+       int range_count = 0;
+       char line[MAX_LINE];
+       FILE *fp;
+
+       iomem = proc_iomem();
+       fp = fopen(iomem, "r");
+
+       if (!fp) {
+               fprintf(stderr, "Cannot open %s: %s\n",
+                       iomem, strerror(errno));
+               return -1;
+       }
+
+       dbgprintf("memory ranges:\n");
+
+       while(fgets(line, sizeof(line), fp) != 0) {
+               struct memory_range r;
+               char *str;
+               int consumed;
+
+               if (range_count >= KEXEC_SEGMENT_MAX)
+                       break;
+
+               if (sscanf(line, "%Lx-%Lx : %n", &r.start, &r.end, &consumed)
+                       != 2)
+                       continue;
+
+               str = line + consumed;
+               r.end++;
+
+               if (memcmp(str, "System RAM\n", 11)) {
+                       dbgprintf(" Skip: %016Lx - %016Lx : %s", r.start, r.end,
+                               str);
+                       continue;
+               }
+
+               r.type = RANGE_RAM;
+               memory_range[range_count] = r;
+               range_count++;
+
+               dbgprintf(" Add:  %016Lx - %016Lx : %s", r.start, r.end, str);
+       }
+
+       fclose(fp);
+       *range = memory_range;
+       *ranges = range_count;
+
+       return 0;
+}
+
+static int get_memory_ranges_2(struct memory_range **range, int *ranges,
+                     unsigned long UNUSED(kexec_flags))
+{
+       static struct memory_range memory_range[2];
+
+       memory_range[0].start = 0x080000000;
+       memory_range[0].end   = 0x100000000;
+       memory_range[0].type = RANGE_RAM;
+
+       memory_range[1].start = 0x900000000;
+       memory_range[1].end   = 0x880000000;
+       memory_range[1].type = RANGE_RAM;
+
+       *range = memory_range;
+       *ranges = sizeof(memory_range) / sizeof(memory_range[0]);
+
+       return 0;
+}
+
+int get_memory_ranges(struct memory_range **range, int *ranges,
+                       unsigned long kexec_flags)
+{
+       /* FIXME: Should get this info from device tree. */
+       
+       return get_memory_ranges_1(range, ranges, kexec_flags);
+}
+
+struct file_type file_type[] = {
+       { "elf-arm64", elf_arm64_probe, elf_arm64_load, elf_arm64_usage },
+};
+
+int file_types = sizeof(file_type) / sizeof(file_type[0]);
+
+int arch_compat_trampoline(struct kexec_info *info)
+{
+       fprintf(stderr, "%s:%d: do\n", __func__, __LINE__);
+       return 0;
+}
+
+
+int machine_verify_elf_rel(struct mem_ehdr *ehdr)
+{
+       (void)ehdr;
+
+       fprintf(stderr, "%s:%d: do\n", __func__, __LINE__);
+       return 0;
+}
+
+void machine_apply_elf_rel(struct mem_ehdr *ehdr, unsigned long r_type,
+       void *location, unsigned long address, unsigned long value)
+{
+       (void)ehdr;
+       (void)r_type;
+       (void)location;
+       (void)address;
+       (void)value;
+       fprintf(stderr, "%s:%d: do\n", __func__, __LINE__);
+}
diff --git a/kexec/arch/arm64/kexec-arm64.h b/kexec/arch/arm64/kexec-arm64.h
new file mode 100644
index 0000000..673d525
--- /dev/null
+++ b/kexec/arch/arm64/kexec-arm64.h
@@ -0,0 +1,28 @@
+/*
+ * ARM64 kexec support.
+ */
+
+#if !defined(KEXEC_ARM64_H)
+#define KEXEC_ARM64_H
+
+/* #include <linux/kexec.h> FIXME: this is broken */
+#include <sys/types.h>
+
+#include "../../kexec.h"
+
+#define KEXEC_SEGMENT_MAX 16 /* FIXME: this should come from <linux/kexec.h> */
+
+#define BOOT_BLOCK_VERSION 17
+#define BOOT_BLOCK_LAST_COMP_VERSION 16
+#define COMMAND_LINE_SIZE 512
+
+int elf_arm64_probe(const char *buf, off_t len);
+int elf_arm64_load(int argc, char **argv, const char *buf, off_t len,
+       struct kexec_info *info);
+void elf_arm64_usage(void);
+
+struct memory_ranges usablemem_rgns;
+off_t initrd_base;
+off_t initrd_size;
+
+#endif
diff --git a/kexec/arch/arm64/kexec-elf-arm64.c 
b/kexec/arch/arm64/kexec-elf-arm64.c
new file mode 100644
index 0000000..b267a15
--- /dev/null
+++ b/kexec/arch/arm64/kexec-elf-arm64.c
@@ -0,0 +1,147 @@
+/*
+ * ARM64 kexec support.
+ */
+
+#define _GNU_SOURCE
+
+#include <elf.h>
+#include <getopt.h>
+#include <libfdt.h>
+
+#include "kexec-arm64.h"
+
+#include "../../kexec-syscall.h"
+#include "../../fs2dt.h"
+
+#include "arch/options.h"
+
+#if !defined(EM_AARCH64)
+# define EM_AARCH64 183
+#endif
+
+int elf_arm64_probe(const char *buf, off_t len)
+{
+       int result;
+       struct mem_ehdr ehdr;
+
+       fprintf(stderr, "%s:%d: ->\n", __func__, __LINE__);
+       
+       result = build_elf_exec_info(buf, len, &ehdr, 0);
+
+       if (result < 0) {
+               dbgprintf("Not an ELF executable\n");
+               goto out;
+       }
+
+       if (ehdr.e_machine != EM_AARCH64) {
+               dbgprintf("Not an AARCH64 executable\n");
+               result = -1;
+               goto out;
+       }
+
+       result = 0;
+
+out:
+       free_elf_info(&ehdr);
+       fprintf(stderr, "%s:%d: <-\n", __func__, __LINE__);
+       return result;
+}
+
+static off_t round_up(off_t v)
+{
+       return _ALIGN_DOWN(v + getpagesize(), getpagesize());
+}
+
+int elf_arm64_load(int argc, char **argv, const char *buf, off_t len,
+                       struct kexec_info *info)
+{
+       char *dtb_buf;
+       off_t dtb_base;
+       off_t dtb_size;
+       struct mem_ehdr ehdr;
+       int result;
+       //unsigned int command_line_len = strlen(arm64_opts.command_line) + 1;
+
+       fprintf(stderr, "%s:%d: ->\n", __func__, __LINE__);
+
+       if (info->kexec_flags & KEXEC_ON_CRASH) {
+               fprintf(stderr, "kexec: kdump not yet supported on arm64\n");
+               return -1;
+       }
+
+       result = build_elf_exec_info(buf, len, &ehdr, 0);
+
+       if (result < 0) {
+               free_elf_info(&ehdr);
+               fprintf(stderr, "%s:%d: build_elf_exec_info failed\n", __func__,
+                       __LINE__);
+               return result;
+       }
+
+       elf_exec_build_load(info, &ehdr, buf, len, 0);
+
+       info->entry = (void*)0x80080000UL;  // FIXME
+
+       initrd_base = 0;
+       initrd_size = 0;
+
+       if (arm64_opts.ramdisk) {
+               char *buf;
+
+               buf = slurp_file(arm64_opts.ramdisk, &initrd_size);
+               
+               if (!buf)
+                       fprintf(stderr, "kexec: empty ramdisk file\n");
+               else {
+                       initrd_base = locate_hole(info, initrd_size, 0, 0, -1, 
-1);
+
+                       add_segment_phys_virt(info, buf, initrd_size, 
initrd_base,
+                               initrd_size, 0);
+               }
+       }
+
+       fprintf(stderr, "%s:%d: initrd_base: %lx, initrd_size: %lx\n", __func__,
+               __LINE__, (unsigned long)initrd_base, (unsigned 
long)initrd_size);
+
+       if (arm64_opts.dtb)
+               dtb_buf = slurp_file(arm64_opts.dtb, &dtb_size);
+       else
+               create_flatten_tree(&dtb_buf, &dtb_size,
+                       arm64_opts.command_line);
+
+       fprintf(stderr, "%s:%d: dt magic: %x : %x\n", __func__, __LINE__,
+               fdt32_to_cpu(*(uint32_t*)dtb_buf), *(uint32_t*)dtb_buf);
+
+       result = fdt_check_header(dtb_buf);
+       
+       if (result) {
+               fprintf(stderr, "Invalid FDT.\n");
+               return -1;
+       }
+
+       if (arm64_opts.command_line) {
+               // FIXME: need to handle command line...
+               fprintf(stderr, "%s:%d: command line support TODO\n", __func__, 
__LINE__);
+       }
+
+if (1) {
+       dtb_base = (unsigned long)info->entry + round_up(0xA43FA0); // computed 
kernel mem size.
+
+       fprintf(stderr, "%s:%d: dtb_base: %lx, dtb_size: %lx\n", __func__,
+               __LINE__, (unsigned long)dtb_base, (unsigned long)dtb_size);
+} else {
+       dtb_base = locate_hole(info, dtb_size, 0, 0, -1, -1);
+
+       fprintf(stderr, "%s:%d: dtb_base: %lx, dtb_size: %lx\n", __func__,
+               __LINE__, (unsigned long)dtb_base, (unsigned long)dtb_size);
+}
+       add_segment_phys_virt(info, dtb_buf, dtb_size, dtb_base, dtb_size, 0);
+
+       fprintf(stderr, "%s:%d: <-\n", __func__, __LINE__);
+       return 0;
+}
+
+void elf_arm64_usage(void)
+{
+       fprintf(stderr, "%s:%d\n", __func__, __LINE__);
+}
diff --git a/kexec/kexec-syscall.h b/kexec/kexec-syscall.h
index 6238044..ccca19c 100644
--- a/kexec/kexec-syscall.h
+++ b/kexec/kexec-syscall.h
@@ -39,8 +39,8 @@
 #ifdef __s390__
 #define __NR_kexec_load                277
 #endif
-#ifdef __arm__
-#define __NR_kexec_load                __NR_SYSCALL_BASE + 347  
+#if defined(__arm__) || defined(__arm64__)
+#define __NR_kexec_load                __NR_SYSCALL_BASE + 347
 #endif
 #if defined(__mips__)
 #define __NR_kexec_load                4311
@@ -76,6 +76,8 @@ static inline long kexec_load(void *entry, unsigned long 
nr_segments,
 #define KEXEC_ARCH_PPC64   (21 << 16)
 #define KEXEC_ARCH_IA_64   (50 << 16)
 #define KEXEC_ARCH_ARM     (40 << 16)
+#define KEXEC_ARCH_ARM64   (183 << 16)
+/* #define KEXEC_ARCH_AARCH64 (183 << 16) */
 #define KEXEC_ARCH_S390    (22 << 16)
 #define KEXEC_ARCH_SH      (42 << 16)
 #define KEXEC_ARCH_MIPS_LE (10 << 16)
@@ -121,5 +123,8 @@ static inline long kexec_load(void *entry, unsigned long 
nr_segments,
 #ifdef __m68k__
 #define KEXEC_ARCH_NATIVE      KEXEC_ARCH_68K
 #endif
+#if defined(__arm64__)
+#define KEXEC_ARCH_NATIVE      KEXEC_ARCH_ARM64
+#endif
 
 #endif /* KEXEC_SYSCALL_H */
++++++ kexec-tools-i386-bzimage_efi.patch ++++++
From: Tony Jones <to...@suse.de>
Subject: fix build error on i386
Upstream: pending

Commit 9c200a85de2245a850546fded96a1977b84ad24d referenced 
'bzImage_support_efi_boot' without matching 32-bit definition.

Signed-off-by: Tony Jones <to...@suse.de>
---
 kexec/arch/i386/kexec-bzImage.c |    1 +
 1 file changed, 1 insertion(+)

--- a/kexec/arch/i386/kexec-bzImage.c
+++ b/kexec/arch/i386/kexec-bzImage.c
@@ -40,6 +40,7 @@
 #include <arch/options.h>
 
 static const int probe_debug = 0;
+int bzImage_support_efi_boot = 0;
 
 int bzImage_probe(const char *buf, off_t len)
 {
++++++ kexec-tools-rpmlintrc ++++++
#
# The name for the init script is correct. kexec-tools is no name
# for an init script.
addFilter(".*incoherent-init-script-name.*");

#
# $null is a valid dependency.
addFilter(".*init-script-undefined-dependency.*");

#
# It does not make any sense to stop the "service" kexec on removal.
# kexec is no service but an init script to run kexec when rebooting.
# Stopping it here would lead to a very unexpected behaviour on reboot. :)
addFilter(".*init-script-without-%stop_on_removal-preun.*");

# :mode=python:
++++++ kexec-tools-xen-balloon-up.patch ++++++
--- /var/tmp/diff_new_pack.67kXbX/_old  2014-02-11 11:39:34.000000000 +0100
+++ /var/tmp/diff_new_pack.67kXbX/_new  2014-02-11 11:39:34.000000000 +0100
@@ -5,8 +5,8 @@
 
 ---
  kexec/crashdump-xen.c |  118 
+++++++++++++++++++++++++++++++++++++++++++++++---
- kexec/crashdump.h     |    1 
  kexec/kexec.c         |    6 ++
+ kexec/kexec.h         |    1 
  3 files changed, 119 insertions(+), 6 deletions(-)
 
 --- a/kexec/crashdump-xen.c
@@ -177,19 +177,9 @@
  unsigned long xen_architecture(struct crash_elf_info *elf_info)
  {
        unsigned long machine = elf_info->machine;
---- a/kexec/crashdump.h
-+++ b/kexec/crashdump.h
-@@ -57,6 +57,7 @@ unsigned long phys_to_virt(struct crash_
-                          unsigned long paddr);
- 
- int xen_present(void);
-+int xen_balloon_up(void);
- unsigned long xen_architecture(struct crash_elf_info *elf_info);
- int xen_get_nr_phys_cpus(void);
- int xen_get_note(int cpu, uint64_t *addr, uint64_t *len);
 --- a/kexec/kexec.c
 +++ b/kexec/kexec.c
-@@ -1054,6 +1054,7 @@ int main(int argc, char *argv[])
+@@ -1071,6 +1071,7 @@ int main(int argc, char *argv[])
        int do_shutdown = 1;
        int do_sync = 1;
        int do_ifdown = 0;
@@ -197,7 +187,7 @@
        int do_unload = 0;
        int do_reuse_initrd = 0;
        void *entry = 0;
-@@ -1088,6 +1089,7 @@ int main(int argc, char *argv[])
+@@ -1105,6 +1106,7 @@ int main(int argc, char *argv[])
                        do_shutdown = 0;
                        do_sync = 1;
                        do_ifdown = 1;
@@ -205,7 +195,7 @@
                        do_exec = 1;
                        break;
                case OPT_LOAD:
-@@ -1106,6 +1108,7 @@ int main(int argc, char *argv[])
+@@ -1123,6 +1125,7 @@ int main(int argc, char *argv[])
                        do_shutdown = 0;
                        do_sync = 1;
                        do_ifdown = 1;
@@ -213,7 +203,7 @@
                        do_exec = 1;
                        break;
                case OPT_LOAD_JUMP_BACK_HELPER:
-@@ -1228,6 +1231,9 @@ int main(int argc, char *argv[])
+@@ -1246,6 +1249,9 @@ int main(int argc, char *argv[])
        if ((result == 0) && do_ifdown) {
                ifdown();
        }
@@ -223,3 +213,12 @@
        if ((result == 0) && do_exec) {
                result = my_exec();
        }
+--- a/kexec/kexec.h
++++ b/kexec/kexec.h
+@@ -293,5 +293,6 @@ int xen_present(void);
+ int xen_kexec_load(struct kexec_info *info);
+ int xen_kexec_unload(uint64_t kexec_flags);
+ void xen_kexec_exec(void);
++int xen_balloon_up(void);
+ 
+ #endif /* KEXEC_H */

++++++ kexec-tools-xen-e820-redefinition.patch ++++++
From: Tony Jones <to...@suse.de>
Subject: fix redefinition error for e820
Upstream: pending

Our xenctrl.h duplicates e820 definition.

---
 kexec/arch/i386/crashdump-x86.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

--- a/kexec/arch/i386/crashdump-x86.c
+++ b/kexec/arch/i386/crashdump-x86.c
@@ -41,12 +41,13 @@
 #include "../../crashdump.h"
 #include "kexec-x86.h"
 #include "crashdump-x86.h"
-#include "x86-linux-setup.h"
 
 #ifdef HAVE_LIBXENCTRL
 #include <xenctrl.h>
 #endif /* HAVE_LIBXENCTRL */
 
+#include "x86-linux-setup.h"
+
 #include <x86/x86-linux.h>
 
 extern struct arch_options_t arch_options;
++++++ kexec-tools-xen-static.patch ++++++
--- /var/tmp/diff_new_pack.67kXbX/_old  2014-02-11 11:39:34.000000000 +0100
+++ /var/tmp/diff_new_pack.67kXbX/_new  2014-02-11 11:39:34.000000000 +0100
@@ -18,9 +18,9 @@
  dnl find Xen control stack libraries
  if test "$with_xen" = yes ; then
        AC_CHECK_HEADER(xenctrl.h,
--              AC_CHECK_LIB(xenctrl, xc_version, ,
-+              AC_CHECK_LIB(xenctrl, xc_version,
+-              AC_CHECK_LIB(xenctrl, xc_kexec_load, ,
++              AC_CHECK_LIB(xenctrl, xc_kexec_load,
 +              [[LIBS="$LIBS -Wl,-Bstatic -lxenctrl -Wl,-Bdynamic"]]
                AC_MSG_NOTICE([Xen support disabled])))
-       if test "$ac_cv_lib_xenctrl_xc_version" = yes ; then
-               AC_CHECK_FUNCS(xc_get_machine_memory_map)
+ fi
+ 

-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to