diff options
author | Gonglei <arei.gonglei@huawei.com> | 2014-07-01 20:58:08 +0800 |
---|---|---|
committer | Peter Maydell <peter.maydell@linaro.org> | 2014-07-01 17:42:23 +0100 |
commit | 015a33bd05b7fd69f400d4e0e4a9925af9292548 (patch) | |
tree | a1ac8883dc8ccff13eb6e129880f0aab7e2d87a6 | |
parent | 596742db3341390dfd386ec434165e0118cfc0f8 (diff) |
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>
-rwxr-xr-x | configure | 16 | ||||
-rw-r--r-- | net/Makefile.objs | 2 | ||||
-rw-r--r-- | net/net.c | 4 |
3 files changed, 19 insertions, 3 deletions
@@ -1712,6 +1712,19 @@ else 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 if ! has "$pkg_config_exe"; then @@ -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 diff --git a/net/Makefile.objs b/net/Makefile.objs index a06ba59dad..ec19cb31d9 100644 --- a/net/Makefile.objs +++ b/net/Makefile.objs @@ -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; |