On Tue, Sep 10, 2024 at 10:44 AM Uday Shankar <ushankar@xxxxxxxxxxxxxxx> wrote: > > None of the RPMs created by make rpm-pkg appear to contain vmlinux debug > symbols (though debug symbols for modules are left in the .ko files in > the kernel-%{KERNELRELEASE} package). This causes issues when trying to > run tools like systemtap against kernels produced via make rpm-pkg. Add > the vmlinux debug symbols to the kernel-%{KERNELRELEASE} package (at > /lib/modules/${KERNELRELEASE}/vmlinux.debug). > > Signed-off-by: Uday Shankar <ushankar@xxxxxxxxxxxxxxx> > --- > scripts/package/kernel.spec | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/scripts/package/kernel.spec b/scripts/package/kernel.spec > index ac3e5ac01d8a..f5d6ce95b4f0 100644 > --- a/scripts/package/kernel.spec > +++ b/scripts/package/kernel.spec > @@ -60,6 +60,15 @@ cp $(%{make} %{makeflags} -s image_name) %{buildroot}/lib/modules/%{KERNELRELEAS > # DEPMOD=true makes depmod no-op. We do not package depmod-generated files. > %{make} %{makeflags} INSTALL_MOD_PATH=%{buildroot} DEPMOD=true modules_install > %{make} %{makeflags} INSTALL_HDR_PATH=%{buildroot}/usr headers_install > +( > + # eu-strip tries to truncate its output file, which does not end > + # well with -o /dev/null. so output to a junk temp file instead > + tmp=$(mktemp) > + trap "rm -f $tmp" 0 > + eu-strip --remove-comment \ > + -f %{buildroot}/lib/modules/%{KERNELRELEASE}/vmlinux.debug \ > + -o $tmp vmlinux > +) I agree with Nathan. Please check what Fedora does. Adding the debug info to the normal kernel package would be frowned upon because it grows the package size, whereas many people do not need it. As far as I understood, in Fedora, *-debuginfo package has it under /usr/lib/debug/. [vagrant@fedora39 ~]$ rpm -ql kernel-debuginfo | grep vmlinux /usr/lib/debug/lib/modules/6.10.9-100.fc39.x86_64/scripts/gdb/__pycache__/vmlinux-gdb.cpython-312.opt-1.pyc /usr/lib/debug/lib/modules/6.10.9-100.fc39.x86_64/scripts/gdb/__pycache__/vmlinux-gdb.cpython-312.pyc /usr/lib/debug/lib/modules/6.10.9-100.fc39.x86_64/scripts/gdb/vmlinux-gdb.py /usr/lib/debug/lib/modules/6.10.9-100.fc39.x86_64/vmlinux /usr/lib/debug/lib/modules/6.10.9-100.fc39.x86_64/vmlinux-gdb.py [vagrant@fedora39 ~]$ file /usr/lib/debug/lib/modules/6.10.9-100.fc39.x86_64/vmlinux /usr/lib/debug/lib/modules/6.10.9-100.fc39.x86_64/vmlinux: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, BuildID[sha1]=109fc8dfd9c144def507008951ee8a26eef39086, with debug_info, not stripped > cp System.map %{buildroot}/lib/modules/%{KERNELRELEASE} > cp .config %{buildroot}/lib/modules/%{KERNELRELEASE}/config > if %{make} %{makeflags} run-command KBUILD_RUN_COMMAND='test -d ${srctree}/arch/${SRCARCH}/boot/dts' 2>/dev/null; then > > base-commit: e3bf4ec9d54ed96fb3eb7dd53edcc9452897604d > -- > 2.34.1 > -- Best Regards Masahiro Yamada