On 22.01.2024 15:46, Anthony PERARD wrote: > On Mon, Jan 22, 2024 at 12:39:55PM +0100, Michal Orzel wrote: >> At the moment, trying to run xencov read/reset (calling SYSCTL_coverage_op >> under the hood) results in a crash. This is due to a profiler trying to >> access data in the .init.* sections (libfdt for Arm and libelf for x86) >> that are stripped after boot. Normally, the build system compiles any >> *.init.o file without COV_FLAGS. However, these two libraries are >> handled differently as sections will be renamed to init after linking. >> >> To override COV_FLAGS to empty for these libraries, lib{fdt,elf}.o were >> added to nocov-y. This worked until e321576f4047 ("xen/build: start using >> if_changed") that added lib{fdt,elf}-temp.o and their deps to extra-y. >> This way, even though these objects appear as prerequisites of >> lib{fdt,elf}.o and the settings should propagate to them, make can also >> build them as a prerequisite of __build, in which case COV_FLAGS would >> still have the unwanted flags. Fix it by switching to $(targets) instead. >> >> Also, for libfdt, append libfdt.o to nocov-y only if CONFIG_OVERLAY_DTB >> is not set. Otherwise, there is no section renaming and we should be able >> to run the coverage. >> >> Fixes: e321576f4047 ("xen/build: start using if_changed") >> Signed-off-by: Michal Orzel <michal.or...@amd.com> > > Reviewed-by: Anthony PERARD <anthony.per...@citrix.com>
Acked-by: Jan Beulich <jbeul...@suse.com>