On 16/04/2021 09:16, Jan Beulich wrote: > clang, at the very least, doesn't like unused inline functions, unless > their definitions live in a header. > > Fixes: d23d792478 ("x86: avoid building COMPAT code when !HVM && !PV32") > Reported-by: Andrew Cooper <andrew.coop...@citrix.com> > Signed-off-by: Jan Beulich <jbeul...@suse.com>
I agree this will fix the build. However, looking at the code, I'm not sure the original CONFIG_COMPAT was correct. In particular, ... > > --- a/xen/arch/x86/oprofile/backtrace.c > +++ b/xen/arch/x86/oprofile/backtrace.c > @@ -43,6 +43,7 @@ dump_hypervisor_backtrace(struct vcpu *v > return head->ebp; > } > > +#ifdef CONFIG_COMPAT > static inline int is_32bit_vcpu(struct vcpu *vcpu) > { > if (is_hvm_vcpu(vcpu)) ... this chunk of logic demonstrates that what oprofile is doing isn't related to the Xen ABI in the slightest. I think OProfile is misusing the guest handle infrastructure, and shouldn't be using it for this task. ~Andrew > @@ -50,6 +51,7 @@ static inline int is_32bit_vcpu(struct v > else > return is_pv_32bit_vcpu(vcpu); > } > +#endif