net: add mmsghdr struct check for L2TPV3
The mmsghdr struct is only introduced in Linux 2.6.32; add a configure check for it and disable L2TPV3 on hosts which are too old to provide it, rather than simply failing to compile. Reported-by: chenliang <chenliang88@huawei.com> Signed-off-by: Gonglei <arei.gonglei@huawei.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Message-id: 1404219488-11196-1-git-send-email-arei.gonglei@huawei.com [PMM: cleaned up commit message and corrected kernel version number] Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
596742db33
commit
015a33bd05
|
@ -1711,6 +1711,19 @@ else
|
||||||
echo big/little test failed
|
echo big/little test failed
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
##########################################
|
||||||
|
# L2TPV3 probe
|
||||||
|
|
||||||
|
cat > $TMPC <<EOF
|
||||||
|
#include <sys/socket.h>
|
||||||
|
int main(void) { return sizeof(struct mmsghdr); }
|
||||||
|
EOF
|
||||||
|
if compile_prog "" "" ; then
|
||||||
|
l2tpv3=yes
|
||||||
|
else
|
||||||
|
l2tpv3=no
|
||||||
|
fi
|
||||||
|
|
||||||
##########################################
|
##########################################
|
||||||
# pkg-config probe
|
# pkg-config probe
|
||||||
|
|
||||||
|
@ -4343,6 +4356,9 @@ fi
|
||||||
if test "$netmap" = "yes" ; then
|
if test "$netmap" = "yes" ; then
|
||||||
echo "CONFIG_NETMAP=y" >> $config_host_mak
|
echo "CONFIG_NETMAP=y" >> $config_host_mak
|
||||||
fi
|
fi
|
||||||
|
if test "$l2tpv3" = "yes" ; then
|
||||||
|
echo "CONFIG_L2TPV3=y" >> $config_host_mak
|
||||||
|
fi
|
||||||
if test "$cap_ng" = "yes" ; then
|
if test "$cap_ng" = "yes" ; then
|
||||||
echo "CONFIG_LIBCAP=y" >> $config_host_mak
|
echo "CONFIG_LIBCAP=y" >> $config_host_mak
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -2,7 +2,7 @@ common-obj-y = net.o queue.o checksum.o util.o hub.o
|
||||||
common-obj-y += socket.o
|
common-obj-y += socket.o
|
||||||
common-obj-y += dump.o
|
common-obj-y += dump.o
|
||||||
common-obj-y += eth.o
|
common-obj-y += eth.o
|
||||||
common-obj-$(CONFIG_LINUX) += l2tpv3.o
|
common-obj-$(CONFIG_L2TPV3) += l2tpv3.o
|
||||||
common-obj-$(CONFIG_POSIX) += tap.o vhost-user.o
|
common-obj-$(CONFIG_POSIX) += tap.o vhost-user.o
|
||||||
common-obj-$(CONFIG_LINUX) += tap-linux.o
|
common-obj-$(CONFIG_LINUX) += tap-linux.o
|
||||||
common-obj-$(CONFIG_WIN32) += tap-win32.o
|
common-obj-$(CONFIG_WIN32) += tap-win32.o
|
||||||
|
|
|
@ -806,7 +806,7 @@ static int (* const net_client_init_fun[NET_CLIENT_OPTIONS_KIND_MAX])(
|
||||||
#ifdef CONFIG_VHOST_NET_USED
|
#ifdef CONFIG_VHOST_NET_USED
|
||||||
[NET_CLIENT_OPTIONS_KIND_VHOST_USER] = net_init_vhost_user,
|
[NET_CLIENT_OPTIONS_KIND_VHOST_USER] = net_init_vhost_user,
|
||||||
#endif
|
#endif
|
||||||
#ifdef CONFIG_LINUX
|
#ifdef CONFIG_L2TPV3
|
||||||
[NET_CLIENT_OPTIONS_KIND_L2TPV3] = net_init_l2tpv3,
|
[NET_CLIENT_OPTIONS_KIND_L2TPV3] = net_init_l2tpv3,
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
@ -845,7 +845,7 @@ static int net_client_init1(const void *object, int is_netdev, Error **errp)
|
||||||
#ifdef CONFIG_VHOST_NET_USED
|
#ifdef CONFIG_VHOST_NET_USED
|
||||||
case NET_CLIENT_OPTIONS_KIND_VHOST_USER:
|
case NET_CLIENT_OPTIONS_KIND_VHOST_USER:
|
||||||
#endif
|
#endif
|
||||||
#ifdef CONFIG_LINUX
|
#ifdef CONFIG_L2TPV3
|
||||||
case NET_CLIENT_OPTIONS_KIND_L2TPV3:
|
case NET_CLIENT_OPTIONS_KIND_L2TPV3:
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue