[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] libs/gnttab: introduce BUILD_BUG_ON



On Wed, Jul 13, 2016 at 01:32:10PM +0200, Paulina Szubarczyk wrote:
> 
> 
> On 07/13/2016 11:25 AM, Wei Liu wrote:
> >The implementation is taken from libxc.
> >
> >Signed-off-by: Wei Liu <wei.liu2@xxxxxxxxxx>
> >---
> >Cc: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
> >Cc: Paulina Szubarczyk <paulinaszubarczyk@xxxxxxxxx>
> >
> >I could have put it in a header file accessible to all libraries under
> >libs but this construct is only relevant to xengnttab library at the
> >moment so it's put under gnttab/private.h. It can be easily moved to
> >a common place when other libraries under libs require it.
> >
> >This patch is necessary to unblock Paulina on her gnttab copy work.
> >---
> >  tools/libs/gnttab/private.h | 7 +++++++
> >  1 file changed, 7 insertions(+)
> >
> >diff --git a/tools/libs/gnttab/private.h b/tools/libs/gnttab/private.h
> >index d286c86..da487f2 100644
> >--- a/tools/libs/gnttab/private.h
> >+++ b/tools/libs/gnttab/private.h
> >@@ -4,6 +4,13 @@
> >  #include <xentoollog.h>
> >  #include <xengnttab.h>
> >
> >+/* Force a compilation error if condition is true */
> >+#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)
> >+#define BUILD_BUG_ON(p) ({ _Static_assert(!(p), "!(" #p ")"); })
> >+#else
> >+#define BUILD_BUG_ON(p) ((void)sizeof(struct { int:-!!(p); }))
> >+#endif
> >+
> >  struct xengntdev_handle {
> >      xentoollog_logger *logger, *logger_tofree;
> >      int fd;
> >
> Hi Wei,
> 
> thank you for the help with the grant copy patch. I have just rebuild Xen
> and there is a conflict with definition of BUILD_BUG_ON for mini-os build:
> 
> In file included from minios.c:33:0:
> private.h:9:0: error: "BUILD_BUG_ON" redefined [-Werror]
>  #define BUILD_BUG_ON(p) ({ _Static_assert(!(p), "!(" #p ")"); })
>  ^
> In file included from minios.c:25:0:
> xen/extras/mini-os-remote/include/lib.h:58:0: note: this is the location of
> the previous definition
>  #define BUILD_BUG_ON(cond) ({ _Static_assert(!(cond), "!(" #cond ")"); })
>  ^
> I thought about wrapping the code in #ifndef BUILD_BUG_ON #endif.

We could use a prefix to the one used in gnttab.

Maybe call it XENGNTTAB_BUILD_BUG_ON for now?

All these are just cosmetic. You can modify my patch to use the name
above and continue your work. When we finally decide what it should be
called you can easily modify your code to adapt.

Wei.

> 
> Paulina

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.