[Unstable][PATCH 6/6] UBUNTU: [Debian]: dkms-build: zfs: support for debug symbols
Andy Whitcroft
apw at canonical.com
Thu Sep 26 15:11:25 UTC 2019
On Wed, Aug 28, 2019 at 09:26:04AM -0300, Mauricio Faria de Oliveira wrote:
> BugLink: https://bugs.launchpad.net/bugs/1840704
>
> Add support to enable debug symbols on ZFS in 'dkms-build',
> and specify the debug package directory path in the rules.
>
> It's a bit ugly that a change for a particular package is
> in the generic build script, but unfortunately this seems
> to be less intrusive than other options (eg, rely on file
> in /etc/ which needs privileged permissions on build time;
> or patch zfs-linux/dkms.conf to detect kernel build time.)
>
> And it seemed short enough not to create 'pre processors'.
>
> Signed-off-by: Mauricio Faria de Oliveira <mfo at canonical.com>
> ---
> debian/rules.d/2-binary-arch.mk | 3 ++-
> debian/scripts/dkms-build | 10 ++++++++++
> 2 files changed, 12 insertions(+), 1 deletion(-)
>
> diff --git a/debian/rules.d/2-binary-arch.mk b/debian/rules.d/2-binary-arch.mk
> index 90396689de2d..ca55df647120 100644
> --- a/debian/rules.d/2-binary-arch.mk
> +++ b/debian/rules.d/2-binary-arch.mk
> @@ -108,6 +108,7 @@ install-%: MODPUBKEY=$(builddir)/build-$*/certs/signing_key.x509
> install-%: build_dir=$(builddir)/build-$*
> install-%: dkms_dir=$(call dkms_dir_prefix,$(builddir)/build-$*)
> install-%: enable_zfs = $(call custom_override,do_zfs,$*)
> +install-%: dbgpkgdir_zfs = $(if $(filter false,$(skipdbg)),$(dbgpkgdir)/usr/lib/debug/lib/modules/$(abi_release)-$*/kernel,"")
> install-%: $(stampdir)/stamp-build-% install-headers
> @echo Debug: $@ kernel_file $(kernel_file) kernfile $(kernfile) install_file $(install_file) instfile $(instfile)
> dh_testdir
> @@ -390,7 +391,7 @@ endif
> install -d $(dkms_dir) $(dkms_dir)/headers $(dkms_dir)/build $(dkms_dir)/source
> cp -rp "$(hdrdir)" "$(indep_hdrdir)" "$(dkms_dir)/headers"
>
> - $(if $(filter true,$(enable_zfs)),$(call build_dkms, $(mods_pkg_name)-$*, $(pkgdir)/lib/modules/$(abi_release)-$*/kernel, "", zfs, pool/universe/z/zfs-linux/zfs-dkms_$(dkms_zfs_linux_version)_all.deb))
> + $(if $(filter true,$(enable_zfs)),$(call build_dkms, $(mods_pkg_name)-$*, $(pkgdir)/lib/modules/$(abi_release)-$*/kernel, $(dbgpkgdir_zfs), zfs, pool/universe/z/zfs-linux/zfs-dkms_$(dkms_zfs_linux_version)_all.deb))
>
> ifeq ($(do_dkms_nvidia),true)
> $(call build_dkms, $(bldinfo_pkg_name)-$*, $(pkgdir_bldinfo)/usr/lib/linux/$(abi_release)-$*/signatures, "", nvidia-390, pool/restricted/n/nvidia-graphics-drivers-390/nvidia-kernel-source-390_$(dkms_nvidia_390_version)_$(arch).deb pool/restricted/n/nvidia-graphics-drivers-390/nvidia-dkms-390_$(dkms_nvidia_390_version)_$(arch).deb)
> diff --git a/debian/scripts/dkms-build b/debian/scripts/dkms-build
> index f77063f7b745..ce587dcbd489 100755
> --- a/debian/scripts/dkms-build
> +++ b/debian/scripts/dkms-build
> @@ -85,10 +85,20 @@ for dkms_conf in "$package/usr/src"/*/"dkms.conf"
> do
> break
> done
> +
> # It seems some packages have a # in the name which works fine if the
> # package is installed directly, but not so much if we build it out
> # of the normal location.
> sed -i -e '/^PACKAGE_NAME=/ s/#//g' "$dkms_conf"
> +
> +# ZFS debug symbols are enabled in dkms.conf via PACKAGE_CONFIG file.
> +if [ -n "$dbgpkgdir" ] && [ "$package" = 'zfs' ]; then
> + pkg_cfg="$(dirname "$dkms_conf")/pkg_cfg"
> + echo 'ZFS_DKMS_ENABLE_DEBUGINFO=yes' >"$pkg_cfg"
> + echo 'ZFS_DKMS_DISABLE_STRIP=yes' >>"$pkg_cfg"
> + sed -i "s,^\(PACKAGE_CONFIG=\).*,\1$pkg_cfg," $dkms_conf
> +fi
> +
This is a bit vile. We have the concept of a post process step specific
to the package. Could we add a configure call out here?
> cat - <<'EOF' >>"$dkms_conf"
> POST_BUILD="ubuntu-save-objects ${dkms_tree}/${PACKAGE_NAME}/${PACKAGE_VERSION}/build ${dkms_tree}/${PACKAGE_NAME}/${PACKAGE_VERSION}/objects $POST_BUILD"
> EOF
> --
> 2.17.1
>
>
> --
> kernel-team mailing list
> kernel-team at lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/kernel-team
More information about the kernel-team
mailing list