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
16
configure
vendored
16
configure
vendored
@ -1711,6 +1711,19 @@ else
|
||||
echo big/little test failed
|
||||
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
|
||||
|
||||
@ -4343,6 +4356,9 @@ fi
|
||||
if test "$netmap" = "yes" ; then
|
||||
echo "CONFIG_NETMAP=y" >> $config_host_mak
|
||||
fi
|
||||
if test "$l2tpv3" = "yes" ; then
|
||||
echo "CONFIG_L2TPV3=y" >> $config_host_mak
|
||||
fi
|
||||
if test "$cap_ng" = "yes" ; then
|
||||
echo "CONFIG_LIBCAP=y" >> $config_host_mak
|
||||
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 += dump.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_LINUX) += tap-linux.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
|
||||
[NET_CLIENT_OPTIONS_KIND_VHOST_USER] = net_init_vhost_user,
|
||||
#endif
|
||||
#ifdef CONFIG_LINUX
|
||||
#ifdef CONFIG_L2TPV3
|
||||
[NET_CLIENT_OPTIONS_KIND_L2TPV3] = net_init_l2tpv3,
|
||||
#endif
|
||||
};
|
||||
@ -845,7 +845,7 @@ static int net_client_init1(const void *object, int is_netdev, Error **errp)
|
||||
#ifdef CONFIG_VHOST_NET_USED
|
||||
case NET_CLIENT_OPTIONS_KIND_VHOST_USER:
|
||||
#endif
|
||||
#ifdef CONFIG_LINUX
|
||||
#ifdef CONFIG_L2TPV3
|
||||
case NET_CLIENT_OPTIONS_KIND_L2TPV3:
|
||||
#endif
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user