target/i386/kvm/hyperv-stub.c | 5 +++++ 1 file changed, 5 insertions(+)
Building without CONFIG_HYPERV is currently broken due to a missing
symbol 'hyperv_syndbg_query_options'. Add it to the stubs
that exist for that very reasons.
Reported-by: Michael Tokarev <mjt@tls.msk.ru>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
target/i386/kvm/hyperv-stub.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/target/i386/kvm/hyperv-stub.c b/target/i386/kvm/hyperv-stub.c
index 3263dcf05d3..5836f53c23b 100644
--- a/target/i386/kvm/hyperv-stub.c
+++ b/target/i386/kvm/hyperv-stub.c
@@ -56,3 +56,8 @@ void hyperv_x86_synic_update(X86CPU *cpu)
void hyperv_x86_set_vmbus_recommended_features_enabled(void)
{
}
+
+uint64_t hyperv_syndbg_query_options(void)
+{
+ return 0;
+}
--
2.47.0
14.11.2024 15:15, Paolo Bonzini wrote: > Building without CONFIG_HYPERV is currently broken due to a missing > symbol 'hyperv_syndbg_query_options'. Add it to the stubs > that exist for that very reasons. > > Reported-by: Michael Tokarev <mjt@tls.msk.ru> > Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Rewviewed-by: Michael Tokarev <mjt@tls.msk.ru> I'm a bit confused though, - why a stub is "better" than an #ifdef, especially in such simple cases? Restoring the #ifdef around this place fixes the build. I understand if the function in question were used in lots of places around the code, but here it's not the case. Another option would be, instead of stubs, to use: #ifndef CONFIG_SYNDBY #define hyperv_syndbg_query_options() 0 #endif which will make stubs unnecessary entirely. > --- > target/i386/kvm/hyperv-stub.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/target/i386/kvm/hyperv-stub.c b/target/i386/kvm/hyperv-stub.c > index 3263dcf05d3..5836f53c23b 100644 > --- a/target/i386/kvm/hyperv-stub.c > +++ b/target/i386/kvm/hyperv-stub.c > @@ -56,3 +56,8 @@ void hyperv_x86_synic_update(X86CPU *cpu) > void hyperv_x86_set_vmbus_recommended_features_enabled(void) > { > } > + > +uint64_t hyperv_syndbg_query_options(void) > +{ > + return 0; > +} Thanks, /mjt
On 11/14/24 13:41, Michael Tokarev wrote: > 14.11.2024 15:15, Paolo Bonzini wrote: >> Building without CONFIG_HYPERV is currently broken due to a missing >> symbol 'hyperv_syndbg_query_options'. Add it to the stubs >> that exist for that very reasons. >> >> Reported-by: Michael Tokarev <mjt@tls.msk.ru> >> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> > > Rewviewed-by: Michael Tokarev <mjt@tls.msk.ru> > > I'm a bit confused though, - why a stub is "better" than an #ifdef, > especially in such simple cases? To be honest the #ifdef was the first thing I did (#ifdef CONFIG_HYPERV). I switched to the stub just to avoid doing the same thing in two different ways. In general I prefer stubs because they put all the code in one place. For example there is a benefit, which doesn't apply here, when you have stubs with Error** arguments. Then it's easier to make the error text consistent. Paolo > Restoring the #ifdef around this place fixes the build. > I understand if the function in question were used in lots of > places around the code, but here it's not the case. > > Another option would be, instead of stubs, to use: > > #ifndef CONFIG_SYNDBY > #define hyperv_syndbg_query_options() 0 > #endif > > which will make stubs unnecessary entirely. > >> --- >> target/i386/kvm/hyperv-stub.c | 5 +++++ >> 1 file changed, 5 insertions(+) >> >> diff --git a/target/i386/kvm/hyperv-stub.c b/target/i386/kvm/hyperv- >> stub.c >> index 3263dcf05d3..5836f53c23b 100644 >> --- a/target/i386/kvm/hyperv-stub.c >> +++ b/target/i386/kvm/hyperv-stub.c >> @@ -56,3 +56,8 @@ void hyperv_x86_synic_update(X86CPU *cpu) >> void hyperv_x86_set_vmbus_recommended_features_enabled(void) >> { >> } >> + >> +uint64_t hyperv_syndbg_query_options(void) >> +{ >> + return 0; >> +} > > Thanks, > > /mjt > >
On 11/14/24 13:41, Michael Tokarev wrote: > 14.11.2024 15:15, Paolo Bonzini wrote: >> Building without CONFIG_HYPERV is currently broken due to a missing >> symbol 'hyperv_syndbg_query_options'. Add it to the stubs >> that exist for that very reasons. >> >> Reported-by: Michael Tokarev <mjt@tls.msk.ru> >> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> > > Rewviewed-by: Michael Tokarev <mjt@tls.msk.ru> > > I'm a bit confused though, - why a stub is "better" than an #ifdef, > especially in such simple cases? To be honest the #ifdef was the first thing I did (#ef > Restoring the #ifdef around this place fixes the build. > I understand if the function in question were used in lots of > places around the code, but here it's not the case. > > Another option would be, instead of stubs, to use: > > #ifndef CONFIG_SYNDBY > #define hyperv_syndbg_query_options() 0 > #endif > > which will make stubs unnecessary entirely. > >> --- >> target/i386/kvm/hyperv-stub.c | 5 +++++ >> 1 file changed, 5 insertions(+) >> >> diff --git a/target/i386/kvm/hyperv-stub.c b/target/i386/kvm/hyperv- >> stub.c >> index 3263dcf05d3..5836f53c23b 100644 >> --- a/target/i386/kvm/hyperv-stub.c >> +++ b/target/i386/kvm/hyperv-stub.c >> @@ -56,3 +56,8 @@ void hyperv_x86_synic_update(X86CPU *cpu) >> void hyperv_x86_set_vmbus_recommended_features_enabled(void) >> { >> } >> + >> +uint64_t hyperv_syndbg_query_options(void) >> +{ >> + return 0; >> +} > > Thanks, > > /mjt > >
© 2016 - 2024 Red Hat, Inc.