Hi Jose, On Thu, Aug 01, 2024 at 07:29:40AM -0600, Jose Fernandez wrote: > Add a new -debug package to the pacman PKGBUILD that will contain the > vmlinux image for debugging purposes. This package depends on the > -headers package and will be installed in /usr/src/debug/${pkgbase}. > > The vmlinux image is needed to debug core dumps with tools like crash. > > Signed-off-by: Jose Fernandez <jose.fernandez@xxxxxxxxx> > Reviewed-by: Peter Jung <ptr1337@xxxxxxxxxxx> This appears to add a non-trivial amount of time to the build when benchmarking with Arch Linux's configuration (I measure 9% with hyperfine): Benchmark 1: pacman-pkg @ 21b136cc63d2 ("minmax: fix up min3() and max3() too") Time (mean ± σ): 579.541 s ± 0.585 s [User: 22156.731 s, System: 3681.698 s] Range (min … max): 578.894 s … 580.033 s 3 runs Benchmark 2: pacman-pkg @ c5af4db0563b ("kbuild: add debug package to pacman PKGBUILD") Time (mean ± σ): 633.419 s ± 0.972 s [User: 22247.886 s, System: 3673.879 s] Range (min … max): 632.302 s … 634.070 s 3 runs Summary pacman-pkg @ 21b136cc63d2 ("minmax: fix up min3() and max3() too") ran 1.09 ± 0.00 times faster than pacman-pkg @ c5af4db0563b ("kbuild: add debug package to pacman PKGBUILD") It would be nice to add some option to avoid building this package for developers who may not want it (I know I personally would not want it with that penalty because I do a lot of bisects) or maybe adding a target to build this package with the rest like 'pacman-pkg-with-dbg' or something? Also, couldn't vmlinux be obtained from vmlinuz that already exists in the main package via scripts/extract-vmlinux? Cheers, Nathan > --- > scripts/package/PKGBUILD | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/scripts/package/PKGBUILD b/scripts/package/PKGBUILD > index 663ce300dd06..beda3db21863 100644 > --- a/scripts/package/PKGBUILD > +++ b/scripts/package/PKGBUILD > @@ -6,6 +6,7 @@ pkgbase=${PACMAN_PKGBASE:-linux-upstream} > pkgname=("${pkgbase}" "${pkgbase}-api-headers") > if grep -q CONFIG_MODULES=y include/config/auto.conf; then > pkgname+=("${pkgbase}-headers") > + pkgname+=("${pkgbase}-debug") > fi > pkgver="${KERNELRELEASE//-/_}" > # The PKGBUILD is evaluated multiple times. > @@ -89,6 +90,15 @@ _package-headers() { > ln -sr "${builddir}" "${pkgdir}/usr/src/${pkgbase}" > } > > +_package-debug(){ > + pkgdesc="Non-stripped vmlinux file for the ${pkgdesc} kernel" > + depends=(${pkgbase}-headers) > + > + cd "${objtree}" > + mkdir -p "$pkgdir/usr/src/debug/${pkgbase}" > + install -Dt "$pkgdir/usr/src/debug/${pkgbase}" -m644 vmlinux > +} > + > _package-api-headers() { > pkgdesc="Kernel headers sanitized for use in userspace" > provides=(linux-api-headers) > -- > 2.46.0 >