On 2024-08-01 11:36:37+0000, Nathan Chancellor wrote: > 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): As nothing more is compiled, I guess this is just the additional packaging. > 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? Jose: In the vanilla PKGBUILD vmlinux is part of the linux-headers package: linux-headers /usr/lib/modules/6.10.2-arch1-1/build/vmlinux Given that you already gate the new -debug package on CONFIG_MODULES, why not add the file to that package? Then we could still discuss if it makes sense to gate vmlinux on CONFIG_MODULES or if -headers should be enabled unconditionally again. Or we wait for somebody to show up and ask for it. > 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 > >