From ef97e3f730bb3ec57386da631430fe0553eac70dfe85a434759f8b8cd2dc6821 Mon Sep 17 00:00:00 2001 From: Jiri Bohac Date: Wed, 6 Mar 2024 17:12:19 +0000 Subject: [PATCH] Accepting request 1155728 from home:jbohac:branches:Kernel:kdump - update to 2.0.28: * LoongArch: Load vmlinux.efi to the link address * LoongArch: Fix an issue with relocatable vmlinux * m68k: fix getrandom() use with uclibc * lzma: Relax memory limit for lzma decompressor * kexec: ppc64: print help to stdout instead of stderr * kexec/loongarch64: fix 'make dist' file loss issue * crashdump/x86: set the elfcorehdr segment size for hotplug * crashdump/x86: identify elfcorehdr segment for hotplug * crashdump: exclude elfcorehdr segment from digest for hotplug * crashdump: setup general hotplug support * crashdump: introduce the hotplug command line options * kexec: define KEXEC_UPDATE_ELFCOREHDR * kexec: update manpage with explicit mention of clean kexec * zboot: add loongarch kexec_load support * zboot: enable arm64 kexec_load for zboot image - drop 6419b008fde783fd0cc2cc266bd1c9cf35e99a0e.patch, upstream - add fix-building-on-x86_64-with-binutils-2.41.patch: * fix assembling on binutils >= 2.42 - refresh kexec-tools-disable-test.patch OBS-URL: https://build.opensuse.org/request/show/1155728 OBS-URL: https://build.opensuse.org/package/show/Kernel:kdump/kexec-tools?expand=0&rev=167 --- ...b008fde783fd0cc2cc266bd1c9cf35e99a0e.patch | 112 ------------------ ...uilding-on-x86_64-with-binutils-2.41.patch | 88 ++++++++++++++ kexec-tools-2.0.27.tar.sign | Bin 566 -> 0 bytes kexec-tools-2.0.27.tar.xz | 3 - kexec-tools-2.0.28.tar.sign | Bin 0 -> 566 bytes kexec-tools-2.0.28.tar.xz | 3 + kexec-tools-disable-test.patch | 10 +- kexec-tools.changes | 24 ++++ kexec-tools.spec | 4 +- 9 files changed, 123 insertions(+), 121 deletions(-) delete mode 100644 6419b008fde783fd0cc2cc266bd1c9cf35e99a0e.patch create mode 100644 fix-building-on-x86_64-with-binutils-2.41.patch delete mode 100644 kexec-tools-2.0.27.tar.sign delete mode 100644 kexec-tools-2.0.27.tar.xz create mode 100644 kexec-tools-2.0.28.tar.sign create mode 100644 kexec-tools-2.0.28.tar.xz diff --git a/6419b008fde783fd0cc2cc266bd1c9cf35e99a0e.patch b/6419b008fde783fd0cc2cc266bd1c9cf35e99a0e.patch deleted file mode 100644 index b2f2e98..0000000 --- a/6419b008fde783fd0cc2cc266bd1c9cf35e99a0e.patch +++ /dev/null @@ -1,112 +0,0 @@ -From 6419b008fde783fd0cc2cc266bd1c9cf35e99a0e Mon Sep 17 00:00:00 2001 -From: Julien Olivain -Date: Sat, 23 Sep 2023 18:46:06 +0200 -Subject: kexec: provide a memfd_create() wrapper if not present in libc - -Commit 714fa115 "kexec/arm64: Simplify the code for zImage" introduced -a use of the memfd_create() system call, included in version -kexec-tools v2.0.27. - -This system call was introduced in kernel commit [1], first included -in kernel v3.17 (released on 2014-10-05). - -The memfd_create() glibc wrapper function was added much later in -commit [2], first included in glibc version 2.27 (released on -2018-02-01). - -This direct use memfd_create() introduced a requirement on -Kernel >= 3.17 and glibc >= 2.27. - -There is old toolchains like [3] for example (which ships gcc 7.3.1, -glibc 2.25 and includes kernel v4.10 headers), that can still be used -to build newer kernels. Even if such toolchains can be seen as -outdated, they are is still claimed as supported by recent kernel. -For example, Kernel v6.5.5 has a requirement on gcc version 5.1 and -greater. See [4]. - -Moreover, kexec-tools <= 2.0.26 could be compiled using recent -toolchains with alternative libc (e.g. uclibc-ng, musl) which are not -providing the memfd_create() wrapper. - -When compiling kexec-tools v2.0.27 with a toolchain not providing the -memfd_create() syscall wrapper, the compilation fail with message: - - kexec/kexec.c: In function 'copybuf_memfd': - kexec/kexec.c:645:7: warning: implicit declaration of function 'memfd_create'; did you mean 'SYS_memfd_create'? [-Wimplicit-function-declaration] - fd = memfd_create("kernel", MFD_ALLOW_SEALING); - ^~~~~~~~~~~~ - SYS_memfd_create - kexec/kexec.c:645:30: error: 'MFD_ALLOW_SEALING' undeclared (first use in this function); did you mean '_PC_ALLOC_SIZE_MIN'? - fd = memfd_create("kernel", MFD_ALLOW_SEALING); - ^~~~~~~~~~~~~~~~~ - _PC_ALLOC_SIZE_MIN - -In order to let kexec-tools compile in a wider range of configurations, -this commit adds a memfd_create() function check in autoconf configure -script, and adds a system call wrapper which will be used if the -function is not available. With this commit, the environment -requirement is relaxed to only kernel >= v3.17. - -Note: this issue was found in kexec-tools integration in Buildroot [5] -using the command "utils/test-pkg -a -p kexec", which tests many -toolchain/arch combinations. - -[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=9183df25fe7b194563db3fec6dc3202a5855839c -[2] https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=59d2cbb1fe4b8601d5cbd359c3806973eab6c62d -[3] https://releases.linaro.org/components/toolchain/binaries/7.3-2018.05/aarch64-linux-gnu/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz -[4] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/Documentation/process/changes.rst?h=v6.5.5#n32 -[5] https://buildroot.org/ - -Signed-off-by: Julien Olivain -Signed-off-by: Simon Horman ---- - configure.ac | 3 +++ - kexec/kexec.c | 11 +++++++++++ - 2 files changed, 14 insertions(+) - -diff --git a/configure.ac b/configure.ac -index 352eefee..602de79b 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -208,6 +208,9 @@ if test "$ac_cv_lib_xenctrl_xc_kexec_load" = yes ; then - AC_MSG_NOTICE([The kexec_status call is not available])) - fi - -+dnl Check if libc has the memfd_create() syscall wrapper -+AC_CHECK_FUNCS([memfd_create]) -+ - dnl ---Sanity checks - if test "$CC" = "no"; then AC_MSG_ERROR([cc not found]); fi - if test "$CPP" = "no"; then AC_MSG_ERROR([cpp not found]); fi -diff --git a/kexec/kexec.c b/kexec/kexec.c -index fdb4c984..08edfca2 100644 ---- a/kexec/kexec.c -+++ b/kexec/kexec.c -@@ -31,6 +31,10 @@ - #include - #include - #include -+#ifndef HAVE_MEMFD_CREATE -+#include -+#include -+#endif - #include - #include - #include -@@ -640,6 +644,13 @@ char *slurp_decompress_file(const char *filename, off_t *r_size) - return kernel_buf; - } - -+#ifndef HAVE_MEMFD_CREATE -+static int memfd_create(const char *name, unsigned int flags) -+{ -+ return syscall(SYS_memfd_create, name, flags); -+} -+#endif -+ - static int copybuf_memfd(const char *kernel_buf, size_t size) - { - int fd, count; --- -cgit - diff --git a/fix-building-on-x86_64-with-binutils-2.41.patch b/fix-building-on-x86_64-with-binutils-2.41.patch new file mode 100644 index 0000000..f5f584e --- /dev/null +++ b/fix-building-on-x86_64-with-binutils-2.41.patch @@ -0,0 +1,88 @@ +From: Michel Lind +Subject: Fix building on x86_64 with binutils 2.41 +Git-commit: 328de8e00e298f00d7ba6b25dc3950147e9642e6 +Patch-mainline: +References: +Acked-by: Jiri Bohac + +Newer versions of the GNU assembler (observed with binutils 2.41) will +complain about the ".arch i386" in files assembled with "as --64", +with the message "Error: 64bit mode not supported on 'i386'". + +Fix by moving ".arch i386" below the relevant ".code32" directive, so +that the assembler is no longer expecting 64-bit instructions to be used +by the time that the ".arch i386" directive is encountered. + +Based on similar iPXE fix: +https://github.com/ipxe/ipxe/commit/6ca597eee + +Signed-off-by: Michel Lind +Signed-off-by: Simon Horman + +diff --git a/purgatory/arch/i386/entry32-16-debug.S b/purgatory/arch/i386/entry32-16-debug.S +index 5167944..12e1164 100644 +--- a/purgatory/arch/i386/entry32-16-debug.S ++++ b/purgatory/arch/i386/entry32-16-debug.S +@@ -25,10 +25,10 @@ + .globl entry16_debug_pre32 + .globl entry16_debug_first32 + .globl entry16_debug_old_first32 +- .arch i386 + .balign 16 + entry16_debug: + .code32 ++ .arch i386 + /* Compute where I am running at (assumes esp valid) */ + call 1f + 1: popl %ebx +diff --git a/purgatory/arch/i386/entry32-16.S b/purgatory/arch/i386/entry32-16.S +index c051aab..eace095 100644 +--- a/purgatory/arch/i386/entry32-16.S ++++ b/purgatory/arch/i386/entry32-16.S +@@ -20,10 +20,10 @@ + #undef i386 + .text + .globl entry16, entry16_regs +- .arch i386 + .balign 16 + entry16: + .code32 ++ .arch i386 + /* Compute where I am running at (assumes esp valid) */ + call 1f + 1: popl %ebx +diff --git a/purgatory/arch/i386/entry32.S b/purgatory/arch/i386/entry32.S +index f7a494f..8ce9e31 100644 +--- a/purgatory/arch/i386/entry32.S ++++ b/purgatory/arch/i386/entry32.S +@@ -20,10 +20,10 @@ + #undef i386 + + .text +- .arch i386 + .globl entry32, entry32_regs + entry32: + .code32 ++ .arch i386 + + /* Setup a gdt that should that is generally usefully */ + lgdt %cs:gdt +diff --git a/purgatory/arch/i386/setup-x86.S b/purgatory/arch/i386/setup-x86.S +index 201bb2c..a212eed 100644 +--- a/purgatory/arch/i386/setup-x86.S ++++ b/purgatory/arch/i386/setup-x86.S +@@ -21,10 +21,10 @@ + #undef i386 + + .text +- .arch i386 + .globl purgatory_start + purgatory_start: + .code32 ++ .arch i386 + + /* Load a gdt so I know what the segment registers are */ + lgdt %cs:gdt +-- +2.43.0 + diff --git a/kexec-tools-2.0.27.tar.sign b/kexec-tools-2.0.27.tar.sign deleted file mode 100644 index 097cd18d65c90245dd288295b43da8e48ba8a28dac6d23b3f0f5be24f1ce28a5..0000000000000000000000000000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 566 zcmV-60?GY}0y6{v0SW*e79j-UeA%J(tiu0G{&I!a&tz$8H&4C=0%Yt`eEcs@##=YZMi8AV}?k=)cQ zegdHZPE^Lf_^j<{CxhJU$wi62xKt98L?{sJdH?Y&As3*3lsAKxc~Vrt=tl*NJthrM zcEWR_i=XnQZB!)dBD)MSP_ZafS|K)5P2cJFj-ow(EY?eh^FdQ-_7cPY^TA#Oq!a?? z`r6Uh3rQ^+7Hi&9hwCr)&J_uq{iTTQgLEVt9;ST|7$+DK{U2<`Z)z=@UoK6_zlWC; zKb>7h$E^qn*a7C7%Q$ya-93=UPq)WoR9Tg>x)+Fy^^ro~cQBkzk1u3Zpmbq_F$-hM zyN8Pb;=nfpUSY2|gU~Kf2|OJ3s$+f~A+|!Z6lguBOLCcKjS}@G0*TqsdK+!)0TWzS EZh##JGXMYp diff --git a/kexec-tools-2.0.27.tar.xz b/kexec-tools-2.0.27.tar.xz deleted file mode 100644 index ee552a7..0000000 --- a/kexec-tools-2.0.27.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:38d78bcfa33a88928324b57dc81f50c1dfc279eede45e80957ca18f4e84b8187 -size 308540 diff --git a/kexec-tools-2.0.28.tar.sign b/kexec-tools-2.0.28.tar.sign new file mode 100644 index 0000000000000000000000000000000000000000000000000000000000000000..54c38101460bf8952f1830ccc8c7e444b05a8e7e34b76a4f7f181afd3292ec95 GIT binary patch literal 566 zcmV-60?GY}0y6{v0SW*e79j-UeA%J(tiu0G{&I!a&tz$8H&4C=0%f1kh5!l)5ZBLS zX=*o5z6L`O0HqnokEmwIGm%~LA6k?hwD_&4t#r8f=siJvr=DCpflh$L;qXTyql^rT zH#!`uKgMGZWYoTQV7!;TO4g93+7qX>qPhLB!1#CtwBW3tShH3Wy4b`ph1bu{Jmeb* zC05x?aMPVOdEg1_7^U`_*Bv0C);77j8nUq{ozMeCJ7^fa8Q}`BbgMI$7hz3$Z{fL~ zUr3t0*YrnnB;Sc@x>wE`QT+hjqyDy>e7F|luhNBTB1ZL+K`U_!sh4{4y-ri$+hGx{ za!s<^^&7cbRBe0)z$Sy)A|bGIu|BiB#%Pp1Bi@W62yp-Fp3H{RH|f7LDxnu$n8uJ{ zqIpw@gP<6)%OlZ9p$-F048G$~!FlM!hUB2Z(d^qtlO)F?k|y;PKY!>qCp+Awr&an9 zw>u)xGiqT7tZaK_&2nZr^@^fwbnF@-Q~_l5GY>@@IW6^y6)CWb%G01-`6WAVXIkQx zWB849WmgitdE~njyE4VNzA+CWz|P{x_-?%x*Zwqe9JDOr z)fh3juv591?myW*xA+cdV$o1K*0#y`CD@F?@F|Zj;g^jHtn{|i__GEgAZDpD8n&4~ z&kdOtd{08FM47^pE(Z|oxy9mU*Ry}g$V-=@EhFzMTKR|^zj;*LCjFz6l0eTU98149 EE?UhS5C8xG literal 0 HcmV?d00001 diff --git a/kexec-tools-2.0.28.tar.xz b/kexec-tools-2.0.28.tar.xz new file mode 100644 index 0000000..205d3fb --- /dev/null +++ b/kexec-tools-2.0.28.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d2f0ef872f39e2fe4b1b01feb62b0001383207239b9f8041f98a95564161d053 +size 312524 diff --git a/kexec-tools-disable-test.patch b/kexec-tools-disable-test.patch index 23a3699..0a69fa7 100644 --- a/kexec-tools-disable-test.patch +++ b/kexec-tools-disable-test.patch @@ -8,10 +8,12 @@ Fedora). Also one less file for usr_merge Makefile.in | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) ---- a/Makefile.in -+++ b/Makefile.in -@@ -173,8 +173,11 @@ PSRCS:=$(foreach s, $(SRCS), $(PACKAGE_N - PGSRCS:=$(foreach s, $(GENERATED_SRCS), $(PACKAGE_NAME)-$(PACKAGE_VERSION)/$(s)) +Index: kexec-tools-2.0.28/Makefile.in +=================================================================== +--- kexec-tools-2.0.28.orig/Makefile.in ++++ kexec-tools-2.0.28/Makefile.in +@@ -181,8 +181,11 @@ TARBALL.gz=$(TARBALL).gz + SRCS:= $(dist) MAN_PAGES:=$(KEXEC_MANPAGE) $(VMCORE_DMESG_MANPAGE) -BINARIES_i386:=$(KEXEC_TEST) diff --git a/kexec-tools.changes b/kexec-tools.changes index 7a016ce..d30f2fb 100644 --- a/kexec-tools.changes +++ b/kexec-tools.changes @@ -1,3 +1,27 @@ +------------------------------------------------------------------- +Wed Mar 6 16:46:15 UTC 2024 - Jiri Bohac + +- update to 2.0.28: + * LoongArch: Load vmlinux.efi to the link address + * LoongArch: Fix an issue with relocatable vmlinux + * m68k: fix getrandom() use with uclibc + * lzma: Relax memory limit for lzma decompressor + * kexec: ppc64: print help to stdout instead of stderr + * kexec/loongarch64: fix 'make dist' file loss issue + * crashdump/x86: set the elfcorehdr segment size for hotplug + * crashdump/x86: identify elfcorehdr segment for hotplug + * crashdump: exclude elfcorehdr segment from digest for hotplug + * crashdump: setup general hotplug support + * crashdump: introduce the hotplug command line options + * kexec: define KEXEC_UPDATE_ELFCOREHDR + * kexec: update manpage with explicit mention of clean kexec + * zboot: add loongarch kexec_load support + * zboot: enable arm64 kexec_load for zboot image +- drop 6419b008fde783fd0cc2cc266bd1c9cf35e99a0e.patch, upstream +- add fix-building-on-x86_64-with-binutils-2.41.patch: + * fix assembling on binutils >= 2.42 +- refresh kexec-tools-disable-test.patch + ------------------------------------------------------------------- Fri Jan 19 16:50:42 UTC 2024 - Jiri Bohac diff --git a/kexec-tools.spec b/kexec-tools.spec index 3baba23..048d299 100644 --- a/kexec-tools.spec +++ b/kexec-tools.spec @@ -18,7 +18,7 @@ # Temporarily bump version to aid package split Name: kexec-tools -Version: 2.0.27 +Version: 2.0.28 Release: 0 Summary: Tools for loading replacement kernels into memory License: GPL-2.0-or-later @@ -29,13 +29,13 @@ Source1: https://kernel.org/pub/linux/utils/kernel/kexec/%{name}-%{versio Source2: kexec-tools.keyring Source3: kexec-load.service Source4: %{name}-rpmlintrc -Patch0: 6419b008fde783fd0cc2cc266bd1c9cf35e99a0e.patch Patch3: %{name}-disable-test.patch Patch4: %{name}-vmcoreinfo-in-xen.patch # https://patchwork.kernel.org/project/linux-riscv/patch/20190416123233.4779-1-mick@ics.forth.gr/ Patch5: %{name}-riscv64.patch Patch10: %{name}-SYS_getrandom.patch Patch11: kexec-dont-use-kexec_file_load-on-xen.patch +Patch12: fix-building-on-x86_64-with-binutils-2.41.patch BuildRequires: autoconf BuildRequires: automake BuildRequires: systemd-rpm-macros