net: fix vhost-user mingw compilation
PATCH 1/1 net: fix vhost-user mingw compilation
Make net.o linkage expect net_init_vhost_user only when CONFIG_VHOST_NET is defined.
--- net/net.c | 4 ++++ 1 file changed, 4 insertions(+)
net/net.c +4 -0
@@ -803,7 +803,9 @@ static int (* const net_client_init_fun[NET_CLIENT_OPTIONS_KIND_MAX])( [NET_CLIENT_OPTIONS_KIND_BRIDGE] = net_init_bridge, #endif [NET_CLIENT_OPTIONS_KIND_HUBPORT ] = net_init_hubport, +#ifdef CONFIG_VHOST_NET [NET_CLIENT_OPTIONS_KIND_VHOST_USER] = net_init_vhost_user, +#endif };
@@ -837,7 +839,9 @@ static int net_client_init1(const void *object, int is_netdev, Error **errp)case NET_CLIENT_OPTIONS_KIND_BRIDGE :#endif case NET_CLIENT_OPTIONS_KIND_HUBPORT : +#ifdef CONFIG_VHOST_NET case NET_CLIENT_OPTIONS_KIND_VHOST_USER : +#endif break ;default :
Hello,
Quoted 33 lines · Nikolay Nikolaev
Make net.o linkage expect
net_init_vhost_useronly whenCONFIG_VHOST_NETis defined.Signed-off-by Nikolay Nikolaev <[email protected]>--- net/net.c | 4 ++++ 1 file changed, 4 insertions(+)net/net.c +0
-0@@ -803,7 +803,9 @@ static int (* constnet_client_init_fun[NET_CLIENT_OPTIONS_KIND_MAX])(
[NET_CLIENT_OPTIONS_KIND_BRIDGE] =net_init_bridge,
#endif
[NET_CLIENT_OPTIONS_KIND_HUBPORT] =net_init_hubport,net/net.c +4
-0+#ifdef CONFIG_VHOST_NET [NET_CLIENT_OPTIONS_KIND_VHOST_USER] = net_init_vhost_user, +#endif };@@ -837,7 +839,9 @@ static int net_client_init1(const void *object, int is_netdev, Error **errp)case NET_CLIENT_OPTIONS_KIND_BRIDGE :#endif case NET_CLIENT_OPTIONS_KIND_HUBPORT : +#ifdef CONFIG_VHOST_NET case NET_CLIENT_OPTIONS_KIND_VHOST_USER : +#endif break ;
Quoted 3 lines
default:
It turns out that configure puts CONFIG_VHOST_NET in the "wrong" place - config-target.h
echo "CONFIG_VHOST_NET=y" >> $config_target_mak
while for example:
echo "CONFIG_VHOST_SCSI=y" >> $config_host_mak
And net.c includes config-host.h, so we end up with vhost-user never enabled in net.c.
Will it be a problem if CONFIG_VHOST_NET is added to config_host_mak instead?
regards,
Nikolay Nikolaev
Quoted 46 lines · Nikolay Nikolaev
Hello,
On Wed, Jun 18, 2014 at 11:45 PM, Nikolay Nikolaev < [email protected]> wrote:
Make net.o linkage expect net_init_vhost_user only when CONFIG_VHOST_NET is defined. Signed-off-by: Nikolay Nikolaev <[email protected]> --- net/net.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/net/net.c b/net/net.c index de76e30..0c30414 100644 --- a/net/net.c +++ b/net/net.c @@ -803,7 +803,9 @@ static int (* const net_client_init_fun [NET_CLIENT_OPTIONS_KIND_MAX])( [NET_CLIENT_OPTIONS_KIND_BRIDGE] = net_init_bridge, #endif [NET_CLIENT_OPTIONS_KIND_HUBPORT] = net_init_hubport, +#ifdef CONFIG_VHOST_NET [NET_CLIENT_OPTIONS_KIND_VHOST_USER] = net_init_vhost_user, +#endif }; @@ -837,7 +839,9 @@ static int net_client_init1(const void *object, int is_netdev, Error **errp) case NET_CLIENT_OPTIONS_KIND_BRIDGE: #endif case NET_CLIENT_OPTIONS_KIND_HUBPORT: +#ifdef CONFIG_VHOST_NET case NET_CLIENT_OPTIONS_KIND_VHOST_USER: +#endif break; default:It turns out that configure puts
CONFIG_VHOST_NETin the "wrong" place -config-target.h
Quoted 8 lines
echo "
CONFIG_VHOST_NET=y" >> $config_target_makwhile for example:
echo "
CONFIG_VHOST_SCSI=y" >> $config_host_makAnd
net.cincludesconfig-host.h, so we end up with vhost-user never enabled innet.c.
Not good.
Quoted 5 lines
Will it be a problem if
CONFIG_VHOST_NETis added toconfig_host_makinstead?regards,
Nikolay Nikolaev
Try it :)
It likely won't work for linux-user, right?
Signature · 1 line
MST
Hello,
Quoted 64 lines · Michael S. Tsirkin
Quoted 22 lines · Nikolay Nikolaev
Hello,
On Wed, Jun 18, 2014 at 11:45 PM, Nikolay Nikolaev < [email protected]> wrote:
Make net.o linkage expect net_init_vhost_user only when CONFIG_VHOST_NET is defined. Signed-off-by: Nikolay Nikolaev <[email protected]> --- net/net.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/net/net.c b/net/net.c index de76e30..0c30414 100644 --- a/net/net.c +++ b/net/net.c @@ -803,7 +803,9 @@ static int (* const net_client_init_fun [NET_CLIENT_OPTIONS_KIND_MAX])( [NET_CLIENT_OPTIONS_KIND_BRIDGE] = net_init_bridge, #endifQuoted 8 lines
[NET_CLIENT_OPTIONS_KIND_HUBPORT] = net_init_hubport, +#ifdef CONFIG_VHOST_NET [NET_CLIENT_OPTIONS_KIND_VHOST_USER] = net_init_vhost_user, +#endif }; @@ -837,7 +839,9 @@ static int net_client_init1(const void *object,int
Quoted 16 lines
is_netdev, Error **errp) case NET_CLIENT_OPTIONS_KIND_BRIDGE: #endif case NET_CLIENT_OPTIONS_KIND_HUBPORT: +#ifdef CONFIG_VHOST_NET case NET_CLIENT_OPTIONS_KIND_VHOST_USER: +#endif break; default:It turns out that configure puts
CONFIG_VHOST_NETin the "wrong" place -config-target.hQuoted 7 lines
echo "
CONFIG_VHOST_NET=y" >> $config_target_makwhile for example:
echo "
CONFIG_VHOST_SCSI=y" >> $config_host_makAnd
net.cincludesconfig-host.h, so we end up with vhost-user neverenabled in
Quoted 1 line
net.c.Not good.
Quoted 1 line
Will it be a problem if
CONFIG_VHOST_NETis added toconfig_host_makinstead?
Quoted 2 lines
Quoted 9 lines
Quoted 2 lines
regards,
Nikolay NikolaevTry it :)
It likely won't work for linux-user, right?--
MST
You're right - its not working.
I ended up with this:
if test "$vhost_net" = "yes" ; then
echo "CONFIG_VHOST_NET=y" >> $config_target_mak echo "CONFIG_VHOST_NET_USER=y" >> $config_host_mak
fi
and then in net.c depend on CONFIG_VHOST_NET_USER. Is this acceptable?
I'm preparing a patchseries including the vhost-user qtest fixes, and can include this solution there if OK.
regards,
Nikolay Nikolaev
Quoted 81 lines · Nikolay Nikolaev
Hello,
On Thu, Jun 19, 2014 at 5:24 PM, Michael S. Tsirkin <[email protected]> wrote:
On Thu, Jun 19, 2014 at 05:16:44PM +0300, Nikolay Nikolaev wrote: > Hello, > > > On Wed, Jun 18, 2014 at 11:45 PM, Nikolay Nikolaev < > [email protected]> wrote: > > Make net.o linkage expect net_init_vhost_user only when > CONFIG_VHOST_NET is defined. > > Signed-off-by: Nikolay Nikolaev <[email protected]> > --- > net/net.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/net/net.c b/net/net.c > index de76e30..0c30414 100644 > --- a/net/net.c > +++ b/net/net.c > @@ -803,7 +803,9 @@ static int (* const net_client_init_fun > [NET_CLIENT_OPTIONS_KIND_MAX])( > [NET_CLIENT_OPTIONS_KIND_BRIDGE] = net_init_bridge, > #endif > [NET_CLIENT_OPTIONS_KIND_HUBPORT] = net_init_hubport, > +#ifdef CONFIG_VHOST_NET > [NET_CLIENT_OPTIONS_KIND_VHOST_USER] = net_init_vhost_user, > +#endif > }; > > > @@ -837,7 +839,9 @@ static int net_client_init1(const void *object, int > is_netdev, Error **errp) > case NET_CLIENT_OPTIONS_KIND_BRIDGE: > #endif > case NET_CLIENT_OPTIONS_KIND_HUBPORT: > +#ifdef CONFIG_VHOST_NET > case NET_CLIENT_OPTIONS_KIND_VHOST_USER: > +#endif > break; > > default: > > > > It turns out that configure puts CONFIG_VHOST_NET in the "wrong" place - > config-target.h > > echo "CONFIG_VHOST_NET=y" >> $config_target_mak > > while for example: > > echo "CONFIG_VHOST_SCSI=y" >> $config_host_mak > > And net.c includes config-host.h, so we end up with vhost-user never enabled in > net.c. Not good. > Will it be a problem if CONFIG_VHOST_NET is added to config_host_mak instead? > > > regards, > Nikolay Nikolaev Try it :) It likely won't work for linux-user, right? -- MSTYou're right - its not working.
Quoted 7 lines
I ended up with this:
if test "$vhost_net" = "yes" ; then
echo "CONFIG_VHOST_NET=y" >> $config_target_mak echo "CONFIG_VHOST_NET_USER=y" >> $config_host_mak fiand then in
net.cdepend onCONFIG_VHOST_NET_USER. Is this acceptable?
OK but
1. pls rename CONFIG_VHOST_NET_USED
2. you will make it appear many times in .mak, that's ugly, pls set a variable and output once.
Quoted 6 lines
I'm preparing a patchseries including the vhost-user qtest fixes, and can include this solution there if OK.
regards,
Nikolay Nikolaev
Quoted 4 lines · Nikolay Nikolaev
Make net.o linkage expect
net_init_vhost_useronly whenCONFIG_VHOST_NETis defined.Signed-off-by Nikolay Nikolaev <[email protected]>
Pls fix this one asap as it blocks pull request. I'll have to push vhost user out to next request otherwise ...
Quoted 28 lines
--- net/net.c | 4 ++++ 1 file changed, 4 insertions(+)net/net.c +4
-0@@ -803,7 +803,9 @@ static int (* const net_client_init_fun[NET_CLIENT_OPTIONS_KIND_MAX])( [NET_CLIENT_OPTIONS_KIND_BRIDGE] = net_init_bridge, #endif [NET_CLIENT_OPTIONS_KIND_HUBPORT ] = net_init_hubport, +#ifdef CONFIG_VHOST_NET [NET_CLIENT_OPTIONS_KIND_VHOST_USER] = net_init_vhost_user, +#endif };@@ -837,7 +839,9 @@ static int net_client_init1(const void *object, int is_netdev, Error **errp)case NET_CLIENT_OPTIONS_KIND_BRIDGE :#endif case NET_CLIENT_OPTIONS_KIND_HUBPORT : +#ifdef CONFIG_VHOST_NET case NET_CLIENT_OPTIONS_KIND_VHOST_USER : +#endif break ;default :