[libvirt PATCH v2 19/56] src: conditionalize use of net/if.h
Daniel P. Berrangé
berrange at redhat.com
Tue Jan 28 16:45:46 UTC 2020
On Tue, Jan 28, 2020 at 05:42:47PM +0100, Pavel Hrdina wrote:
> On Tue, Jan 28, 2020 at 01:11:00PM +0000, Daniel P. Berrangé wrote:
> > The net/if.h is not portable so we must check for its
> > existance and avoid using it when missing. Some use
> > of net/if.h was redundant and could be removed.
> >
> > Signed-off-by: Daniel P. Berrangé <berrange at redhat.com>
> > ---
> > build-aux/syntax-check.mk | 2 +-
> > configure.ac | 1 +
> > src/util/virnetdev.c | 1 -
> > src/util/virnetdev.h | 4 +++-
> > src/util/virnetdevbridge.c | 4 +++-
> > src/util/virnetdevip.c | 4 +++-
> > src/util/virnetdevtap.c | 4 +++-
> > 7 files changed, 14 insertions(+), 6 deletions(-)
>
> Another mess with ifdefs in our code. The header net/if.h provides:
>
> struct ifreq{} which we guard with HAVE_STRUCT_IFREQ,
>
> if_nametoindex which we guard with HAVE_STRUCT_IFREQ or
> with __linux__ && HAVE_LIBNL or with IFDATA_DRIVERNAME
>
> if_indextoname which we guard with HAVE_IF_INDEXTONAME
>
> Commit <ccaf0beec84b3f55f5206a71e2f1b768cc58cdda> removed the
> HAVE_NET_IF_H guard for net/if.h in favor of the gnulib module which
> is essentially reverted by this patch.
>
> I would like to cleanup this ifdef guard mess someday but that is out of
> scope of this patch series. I just wanted to point it out.
Yeah, I find the #ifdefs in the virnetdev*.c files quite scary.
I think in many/most/all cases there we'd be better off just
doing #ifdef __Linux__ / __freebsd__, instead of testing
against countless different probed symbols.
> Reviewed-by: Pavel Hrdina <phrdina at redhat.com>
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
More information about the libvir-list
mailing list