From 5d0124019c0a6f42315ad9f479bd3f287820e618 Mon Sep 17 00:00:00 2001 From: Jakub Bogusz Date: Sun, 1 Sep 2019 17:12:40 +0200 Subject: [PATCH] - updated to 2.0.20 - added fix-broken-multiboot2-buliding-for-i386 patch from Fedora --- ...-broken-multiboot2-buliding-for-i386.patch | 88 +++++++++++++++++++ kexec-tools.spec | 7 +- 2 files changed, 93 insertions(+), 2 deletions(-) create mode 100644 kexec-tools-fix-broken-multiboot2-buliding-for-i386.patch diff --git a/kexec-tools-fix-broken-multiboot2-buliding-for-i386.patch b/kexec-tools-fix-broken-multiboot2-buliding-for-i386.patch new file mode 100644 index 0000000..3f0fb33 --- /dev/null +++ b/kexec-tools-fix-broken-multiboot2-buliding-for-i386.patch @@ -0,0 +1,88 @@ +From 940c3a1e1a304fbecc850c593a272215b0f52eab Mon Sep 17 00:00:00 2001 +From: Kairui Song +Date: Wed, 31 Jul 2019 16:30:47 +0800 +Subject: [PATCH] x86: Fix broken multiboot2 buliding for i386 + +When building for i386, an error occured: + +kexec/arch/i386/kexec-x86.c:39:22: error: 'multiboot2_x86_probe' +undeclared here (not in a function); did you mean 'multiboot_x86_probe'? +39 | { "multiboot2-x86", multiboot2_x86_probe, multiboot2_x86_load, + | ^~~~~~~~~~~~~~~~~~~~ + | multiboot_x86_probe + +kexec/arch/i386/kexec-x86.c:39:44: error: 'multiboot2_x86_load' +undeclared here (not in a function); did you mean 'multiboot_x86_load'? +39 | { "multiboot2-x86", multiboot2_x86_probe, multiboot2_x86_load, + | ^~~~~~~~~~~~~~~~~~~ + | multiboot_x86_load +kexec/arch/i386/kexec-x86.c:40:4: error: 'multiboot2_x86_usage' + undeclared here (not in a function); did you mean 'multiboot_x86_usage'? +40 | multiboot2_x86_usage }, + | ^~~~~~~~~~~~~~~~~~~~ + | multiboot_x86_usage + +Fix this issue by putting the definition in the right header, also tidy +up Makefile. + +Fixes: 22a2ed55132e ("x86: Support multiboot2 images") +Signed-off-by: Kairui Song +--- + kexec/arch/i386/Makefile | 2 +- + kexec/arch/i386/kexec-x86.h | 5 +++++ + kexec/arch/x86_64/kexec-x86_64.h | 5 ----- + 3 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/kexec/arch/i386/Makefile b/kexec/arch/i386/Makefile +index 105cefd..f486103 100644 +--- a/kexec/arch/i386/Makefile ++++ b/kexec/arch/i386/Makefile +@@ -7,6 +7,7 @@ i386_KEXEC_SRCS += kexec/arch/i386/kexec-elf-x86.c + i386_KEXEC_SRCS += kexec/arch/i386/kexec-elf-rel-x86.c + i386_KEXEC_SRCS += kexec/arch/i386/kexec-bzImage.c + i386_KEXEC_SRCS += kexec/arch/i386/kexec-multiboot-x86.c ++i386_KEXEC_SRCS += kexec/arch/i386/kexec-mb2-x86.c + i386_KEXEC_SRCS += kexec/arch/i386/kexec-beoboot-x86.c + i386_KEXEC_SRCS += kexec/arch/i386/kexec-nbi.c + i386_KEXEC_SRCS += kexec/arch/i386/x86-linux-setup.c +@@ -14,7 +15,6 @@ i386_KEXEC_SRCS += kexec/arch/i386/crashdump-x86.c + + dist += kexec/arch/i386/Makefile $(i386_KEXEC_SRCS) \ + kexec/arch/i386/crashdump-x86.h \ +- kexec/arch/i386/kexec-mb2-x86.c \ + kexec/arch/i386/kexec-x86.h \ + kexec/arch/i386/x86-linux-setup.h \ + kexec/arch/i386/include/arch/options.h +diff --git a/kexec/arch/i386/kexec-x86.h b/kexec/arch/i386/kexec-x86.h +index 1b58c3b..16d0f6c 100644 +--- a/kexec/arch/i386/kexec-x86.h ++++ b/kexec/arch/i386/kexec-x86.h +@@ -60,6 +60,11 @@ int multiboot_x86_load(int argc, char **argv, const char *buf, off_t len, + struct kexec_info *info); + void multiboot_x86_usage(void); + ++int multiboot2_x86_load(int argc, char **argv, const char *buf, off_t len, ++ struct kexec_info *info); ++void multiboot2_x86_usage(void); ++int multiboot2_x86_probe(const char *buf, off_t buf_len); ++ + int elf_x86_probe(const char *buf, off_t len); + int elf_x86_load(int argc, char **argv, const char *buf, off_t len, + struct kexec_info *info); +diff --git a/kexec/arch/x86_64/kexec-x86_64.h b/kexec/arch/x86_64/kexec-x86_64.h +index 21c3a73..4cdeffb 100644 +--- a/kexec/arch/x86_64/kexec-x86_64.h ++++ b/kexec/arch/x86_64/kexec-x86_64.h +@@ -33,9 +33,4 @@ int bzImage64_load(int argc, char **argv, const char *buf, off_t len, + struct kexec_info *info); + void bzImage64_usage(void); + +-int multiboot2_x86_load(int argc, char **argv, const char *buf, off_t len, +- struct kexec_info *info); +-void multiboot2_x86_usage(void); +-int multiboot2_x86_probe(const char *buf, off_t buf_len); +- + #endif /* KEXEC_X86_64_H */ +-- +2.21.0 + diff --git a/kexec-tools.spec b/kexec-tools.spec index 6687c1a..d64f92e 100644 --- a/kexec-tools.spec +++ b/kexec-tools.spec @@ -11,17 +11,19 @@ Summary: Tool for starting new kernel without reboot Summary(pl.UTF-8): Narzędzie pozwalające załadować nowe jądro bez konieczności restartu Name: kexec-tools -Version: 2.0.19 +Version: 2.0.20 Release: 1 License: GPL v2 Group: Applications/System Source0: https://www.kernel.org/pub/linux/utils/kernel/kexec/%{name}-%{version}.tar.xz -# Source0-md5: d399dc099fac5f384b429f09d79b2608 +# Source0-md5: 3b3ee68064648b1b9e86ad93b1c50644 Source1: kexec.init Source2: kexec.sysconfig Patch0: %{name}-xen.patch # from http://patchwork.openembedded.org/patch/90971/raw/ Patch1: %{name}-x32.patch +# https://src.fedoraproject.org/rpms/kexec-tools/raw/master/f/kexec-tools-2.0.20-fix-broken-multiboot2-buliding-for-i386.patch +Patch2: %{name}-fix-broken-multiboot2-buliding-for-i386.patch URL: https://www.kernel.org/pub/linux/utils/kernel/kexec/ BuildRequires: autoconf >= 2.50 BuildRequires: rpmbuild(macros) >= 1.228 @@ -53,6 +55,7 @@ działać na każdej architekturze. %setup -q %patch0 -p1 %patch1 -p1 +%patch2 -p1 %build %{__autoconf} -- 2.44.0