From: Philipp Rudo <pr...@redhat.com>

[redhat] spec: package decompressor vmlinux for s390

On s390 more and more code from the early boot stage is moved to the
decompressor. With this the code complexity and thus the chances to
introduce bugs increases. In order to be able to debug these early boot
bugs package the decompressors vmlinux together with the other debuginfo
for s390.

This change requires kernel commit 7a84ffc0471f ("s390/boot: add
build-id to decompressor") to work.

Upstream Status: RHEL only

Signed-off-by: Philipp Rudo <pr...@redhat.com>

diff a/redhat/kernel.spec.template b/redhat/kernel.spec.template
--- a/redhat/kernel.spec.template
+++ b/redhat/kernel.spec.template
@@ -396,6 +396,7 @@ Summary: The Linux kernel
 %define hdrarch s390
 %define all_arch_configs kernel-%{version}-s390x.config
 %define kernel_image arch/s390/boot/bzImage
+%define vmlinux_decompressor arch/s390/boot/compressed/vmlinux
 %endif
 
 %ifarch %{arm}
@@ -1796,6 +1797,16 @@ BuildKernel() {
     #
     mkdir -p $RPM_BUILD_ROOT%{debuginfodir}/lib/modules/$KernelVer
     cp vmlinux $RPM_BUILD_ROOT%{debuginfodir}/lib/modules/$KernelVer
+    if [ -n "%{vmlinux_decompressor}" ]; then
+           eu-readelf -n  %{vmlinux_decompressor} | grep "Build ID" | awk 
'{print $NF}' > vmlinux.decompressor.id
+           # Without build-id the build will fail. But for s390 the build-id
+           # wasn't added before 5.11. In case it is missing prefer not
+           # packaging the debuginfo over a build failure.
+           if [ -s vmlinux.decompressor.id ]; then
+                   cp vmlinux.decompressor.id 
$RPM_BUILD_ROOT/lib/modules/$KernelVer/build/vmlinux.decompressor.id
+                   cp %{vmlinux_decompressor} 
$RPM_BUILD_ROOT%{debuginfodir}/lib/modules/$KernelVer/vmlinux.decompressor
+           fi
+    fi
 %endif
 
     find $RPM_BUILD_ROOT/lib/modules/$KernelVer -name "*.ko" -type f >modnames

--
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/883
_______________________________________________
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org

Reply via email to