[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 3/3] libxl: colo: only build COLO on Linux
On Tue, Apr 05, 2016 at 09:06:02PM +0100, Wei Liu wrote: > Linux's netlink is required when initialising COLO, so make sure only to > compile COLO on Linux. > > Provide necessary stub functions in case COLO is disabled. This should > fix libxl build on FreeBSD. > > Signed-off-by: Wei Liu <wei.liu2@xxxxxxxxxx> > --- > tools/libxl/Makefile | 5 ++++ > tools/libxl/libxl_no_colo.c | 62 > +++++++++++++++++++++++++++++++++++++++++++++ > 2 files changed, 67 insertions(+) > create mode 100644 tools/libxl/libxl_no_colo.c > > diff --git a/tools/libxl/Makefile b/tools/libxl/Makefile > index a433aaa..47564b3 100644 > --- a/tools/libxl/Makefile > +++ b/tools/libxl/Makefile > @@ -65,10 +65,15 @@ LIBXL_OBJS-y += libxl_no_convert_callout.o > endif > > LIBXL_OBJS-y += libxl_remus.o libxl_checkpoint_device.o > libxl_remus_disk_drbd.o > + > +ifeq ($(CONFIG_Linux),y) I think about this a bit more, this is not necessary right. The header file (linux/netlink.h) may be in a dedicated package. On Debian it is in linux-libc-dev. I should explicitly check the availability of that header file instead. ... Just after I finished the above paragraph, Congyang confirmed that COLO should depend on libnl, so whatever I wrote above is moot. I post it for the public record anyway. Wei. > LIBXL_OBJS-y += libxl_colo_restore.o libxl_colo_save.o > LIBXL_OBJS-y += libxl_colo_qdisk.o > LIBXL_OBJS-y += libxl_colo_proxy.o > LIBXL_OBJS-y += libxl_colo_nic.o > +else > +LIBXL_OBJS-y += libxl_no_colo.o > +endif > > LIBXL_OBJS-$(CONFIG_X86) += libxl_cpuid.o libxl_x86.o libxl_psr.o > LIBXL_OBJS-$(CONFIG_ARM) += libxl_nocpuid.o libxl_arm.o libxl_libfdt_compat.o > diff --git a/tools/libxl/libxl_no_colo.c b/tools/libxl/libxl_no_colo.c > new file mode 100644 > index 0000000..152f198 > --- /dev/null > +++ b/tools/libxl/libxl_no_colo.c > @@ -0,0 +1,62 @@ > +/* > + * Copyright (C) 2016 > + * Author Wei Liu <wei.liu2@xxxxxxxxxx> > + * > + * This program is free software; you can redistribute it and/or modify > + * it under the terms of the GNU Lesser General Public License as published > + * by the Free Software Foundation; version 2.1 only. with the special > + * exception on linking described in file LICENSE. > + * > + * This program is distributed in the hope that it will be useful, > + * but WITHOUT ANY WARRANTY; without even the implied warranty of > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > + * GNU Lesser General Public License for more details. > + */ > + > +#include "libxl_osdeps.h" /* must come before any other headers */ > + > +#include "libxl_internal.h" > + > +void libxl__colo_restore_setup(libxl__egc *egc, > + libxl__colo_restore_state *crs) > +{ > + STATE_AO_GC(crs->ao); > + > + LOG(ERROR, "COLO is not supported"); > + > + crs->callback(egc, crs, ERROR_FAIL); > +} > + > +void libxl__colo_restore_teardown(libxl__egc *egc, void *dcs_void, > + int ret, int retval, int errnoval) > +{ > + /* Shouldn't be here because setup already failed */ > + abort(); > +} > + > +void libxl__colo_save_setup(libxl__egc *egc, libxl__colo_save_state *css) > +{ > + libxl__domain_save_state *dss = CONTAINER_OF(css, *dss, css); > + STATE_AO_GC(dss->ao); > + > + LOG(ERROR, "COLO is not supported"); > + > + dss->callback(egc, dss, ERROR_FAIL); > +} > + > +void libxl__colo_save_teardown(libxl__egc *egc, > + libxl__colo_save_state *css, > + int rc) > +{ > + /* Shouldn't be here because setup already failed */ > + abort(); > +} > + > + > +/* > + * Local variables: > + * mode: C > + * c-basic-offset: 4 > + * indent-tabs-mode: nil > + * End: > + */ > -- > 2.1.4 > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |