Thanks Jan.. On Thu, Mar 26, 2015 at 12:14 AM, Ján Tomko <jtomko@xxxxxxxxxx> wrote: > On Wed, Mar 25, 2015 at 07:33:41PM +0530, Shivaprasad G Bhat wrote: >> Move the struct and enum definitions from device_conf.h to >> virnetdev.h thus avoiding the file inclusion. >> >> The wrong reference of conf files from util/ is allowed >> in Makefile.am for now. The reason being, >> The change in Makefile.am for libvirt_util_la_CFLAGS to remove >> conf from the utils would require corresponding inclusion in util files >> to specify the paths explicitly. This would result in syntax-check failures >> (prohibit_cross_inclusion) which need to be worked around until >> there are patches reworking the incorrect inclusion. >> >> The syntax-check failure workaround seems dangerous as that might mask some >> easily resolvable failures. So dont touch the Makefile.am for now. Resolve >> the wrong inclusions in separate patches. >> >> Signed-off-by: Shivaprasad G Bhat <sbhat@xxxxxxxxxxxxxxxxxx> >> --- >> src/conf/device_conf.h | 38 +------------------------------------- >> src/util/virnetdev.h | 38 +++++++++++++++++++++++++++++++++++++- >> 2 files changed, 38 insertions(+), 38 deletions(-) > > I like the cleanup, but it fails to build for me: > In file included from ./util/virnetdev.h:30:0, > from conf/device_conf.h:34, > from conf/domain_conf.h:48, > from conf/domain_capabilities.h:27, > from conf/domain_capabilities.c:25: > ./util/virnetlink.h:33:27: fatal error: netlink/msg.h: No such file or directory > # include <netlink/msg.h> > ^ > compilation terminated. > Makefile:7320: recipe for target 'conf/libvirt_conf_la-domain_capabilities.lo' failed > > > It seems a change in the makefile will be necessary if we want to > include virnetdev in conf/ > It seems, the compilation fails only if the libnl-devel is not installed but libnl3-devel is installed. The /usr/include/netlink/msg.h part of libnl-devel helps the compilation with default include paths. Without that package it fails. Adding LIBNL_CFLAGS to AM_CFLAGS seems to fix it. Let me post the working changes in next version. Regards, Shiva > Jan > >> >> diff --git a/src/conf/device_conf.h b/src/conf/device_conf.h >> index 7ea90f6..a650189 100644 >> --- a/src/conf/device_conf.h >> +++ b/src/conf/device_conf.h >> @@ -31,19 +31,7 @@ >> # include "virutil.h" >> # include "virthread.h" >> # include "virbuffer.h" >> - >> -typedef enum { >> - VIR_INTERFACE_STATE_UNKNOWN = 1, >> - VIR_INTERFACE_STATE_NOT_PRESENT, >> - VIR_INTERFACE_STATE_DOWN, >> - VIR_INTERFACE_STATE_LOWER_LAYER_DOWN, >> - VIR_INTERFACE_STATE_TESTING, >> - VIR_INTERFACE_STATE_DORMANT, >> - VIR_INTERFACE_STATE_UP, >> - VIR_INTERFACE_STATE_LAST >> -} virInterfaceState; >> - >> -VIR_ENUM_DECL(virInterfaceState) >> +# include "virnetdev.h" >> >> typedef struct _virDevicePCIAddress virDevicePCIAddress; >> typedef virDevicePCIAddress *virDevicePCIAddressPtr; >> @@ -55,30 +43,6 @@ struct _virDevicePCIAddress { >> int multi; /* virTristateSwitch */ >> }; >> >> -typedef struct _virInterfaceLink virInterfaceLink; >> -typedef virInterfaceLink *virInterfaceLinkPtr; >> -struct _virInterfaceLink { >> - virInterfaceState state; /* link state */ >> - unsigned int speed; /* link speed in Mbits per second */ >> -}; >> - >> -typedef enum { >> - VIR_NET_DEV_FEAT_GRXCSUM, >> - VIR_NET_DEV_FEAT_GTXCSUM, >> - VIR_NET_DEV_FEAT_GSG, >> - VIR_NET_DEV_FEAT_GTSO, >> - VIR_NET_DEV_FEAT_GGSO, >> - VIR_NET_DEV_FEAT_GGRO, >> - VIR_NET_DEV_FEAT_LRO, >> - VIR_NET_DEV_FEAT_RXVLAN, >> - VIR_NET_DEV_FEAT_TXVLAN, >> - VIR_NET_DEV_FEAT_NTUPLE, >> - VIR_NET_DEV_FEAT_RXHASH, >> - VIR_NET_DEV_FEAT_LAST >> -} virNetDevFeature; >> - >> -VIR_ENUM_DECL(virNetDevFeature) >> - >> int virDevicePCIAddressIsValid(virDevicePCIAddressPtr addr); >> >> int virDevicePCIAddressParseXML(xmlNodePtr node, >> diff --git a/src/util/virnetdev.h b/src/util/virnetdev.h >> index 856127b..8aab96b 100644 >> --- a/src/util/virnetdev.h >> +++ b/src/util/virnetdev.h >> @@ -30,7 +30,6 @@ >> # include "virnetlink.h" >> # include "virmacaddr.h" >> # include "virpci.h" >> -# include "device_conf.h" >> >> # ifdef HAVE_STRUCT_IFREQ >> typedef struct ifreq virIfreq; >> @@ -74,6 +73,43 @@ struct _virNetDevRxFilter { >> } vlan; >> }; >> >> +typedef enum { >> + VIR_NET_DEV_FEAT_GRXCSUM, >> + VIR_NET_DEV_FEAT_GTXCSUM, >> + VIR_NET_DEV_FEAT_GSG, >> + VIR_NET_DEV_FEAT_GTSO, >> + VIR_NET_DEV_FEAT_GGSO, >> + VIR_NET_DEV_FEAT_GGRO, >> + VIR_NET_DEV_FEAT_LRO, >> + VIR_NET_DEV_FEAT_RXVLAN, >> + VIR_NET_DEV_FEAT_TXVLAN, >> + VIR_NET_DEV_FEAT_NTUPLE, >> + VIR_NET_DEV_FEAT_RXHASH, >> + VIR_NET_DEV_FEAT_LAST >> +} virNetDevFeature; >> + >> +VIR_ENUM_DECL(virNetDevFeature) >> + >> +typedef enum { >> + VIR_INTERFACE_STATE_UNKNOWN = 1, >> + VIR_INTERFACE_STATE_NOT_PRESENT, >> + VIR_INTERFACE_STATE_DOWN, >> + VIR_INTERFACE_STATE_LOWER_LAYER_DOWN, >> + VIR_INTERFACE_STATE_TESTING, >> + VIR_INTERFACE_STATE_DORMANT, >> + VIR_INTERFACE_STATE_UP, >> + VIR_INTERFACE_STATE_LAST >> +} virInterfaceState; >> + >> +VIR_ENUM_DECL(virInterfaceState) >> + >> +typedef struct _virInterfaceLink virInterfaceLink; >> +typedef virInterfaceLink *virInterfaceLinkPtr; >> +struct _virInterfaceLink { >> + virInterfaceState state; /* link state */ >> + unsigned int speed; /* link speed in Mbits per second */ >> +}; >> + >> int virNetDevSetupControl(const char *ifname, >> virIfreq *ifr) >> ATTRIBUTE_RETURN_CHECK; >> >> -- >> libvir-list mailing list >> libvir-list@xxxxxxxxxx >> https://www.redhat.com/mailman/listinfo/libvir-list -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list