[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] xen: Don't use -nostdinc flags with CLANG
At 14:24 +0000 on 11 Feb (1392125052), Julien Grall wrote: > (Add George as release manager) > > On 11/02/14 13:59, Tim Deegan wrote: > > At 13:20 +0000 on 11 Feb (1392121252), Julien Grall wrote: > >> > >> > >> On 11/02/14 12:59, Tim Deegan wrote: > >>> Are you using a very old version of clang? As 06a9c7e points out, > >>> our current runes didn't work before clang v3.0. > >> > >> I'm using clang 3.5 (which have other issue to compile Xen), but I have > >> also tried 3.0 and 3.3. > >> > >>> If not, rather than chasing this around any further, I think we should > >>> abandon trying to use the compiler-provided headers even on linux. > >>> Does this patch fix your build issue? > >>> > >>> commit e7003f174e0df9192dde6fa8d33b0a20f99ce053 > >>> Author: Tim Deegan <tim@xxxxxxx> > >>> Date: Tue Feb 11 12:44:09 2014 +0000 > >>> > >>> xen: stop trying to use the system <stdarg.h> and <stdbool.h> > >> > >> With this patch, -iwithprefix include is not necessary now. I wondering > >> if we can remove it from the command line. > > > > Yes, I think so. > > > >>> We already have our own versions of the stdarg/stdbool definitions, > >>> for > >>> systems where those headers are installed in /usr/include. > >>> > >>> On linux, they're typically installed in compiler-specific paths, > >>> but > >>> finding them has proved unreliable. Drop that and use our own > >>> versions > >>> everywhere. > >>> > >>> Signed-off-by: Tim Deegan <tim@xxxxxxx> > >> > >> This patch is working fine to build xen clang 3.0, 3.3. > >> I have others issue to build with clang 3.5. > >> > >> Tested-by: Julien Grall <julien.grall@xxxxxxxxxx> > > > > Great! Assuming you'll have a series of patches to fix the clang-3.5 > > build, do you want to just take this into that series, and drop the > > -iwithprefix at the same time? > > If it's possible I'd like this patch goes in Xen 4.4 to fix build with > official version of clang (until 3.4). > > Clang 3.5 is still under development, so I don't think it's important to > have support for it in Xen 4.4. Fair enough. In that case it needs a release ack from George. It: - fixes a compile issue on some version s of clang; - might cause a regression with other compilers, but the regression is likely to be obvious (i.e. a compile-time failure). And it needs an ack from Keir, for changing common code. v2 is below, removing "-iwithprefix". I've kept your tested-by; hope that's OK. Cheers, Tim. commit 1d62fcb9ad8d2b409ac2cf0e8a3824e19ca3313f Author: Tim Deegan <tim@xxxxxxx> Date: Tue Feb 11 12:44:09 2014 +0000 xen: stop trying to use the system <stdarg.h> and <stdbool.h> We already have our own versions of the stdarg/stdbool definitions, for systems where those headers are installed in /usr/include. On linux, they're typically installed in compiler-specific paths, but finding them has proved unreliable. Drop that and use our own versions everywhere. Signed-off-by: Tim Deegan <tim@xxxxxxx> Tested-by: Julien Grall <julien.grall@xxxxxxxxxx> diff --git a/xen/Rules.mk b/xen/Rules.mk index df1428f..3a6cec5 100644 --- a/xen/Rules.mk +++ b/xen/Rules.mk @@ -44,10 +44,7 @@ ALL_OBJS-$(x86) += $(BASEDIR)/crypto/built_in.o CFLAGS += -fno-builtin -fno-common CFLAGS += -Werror -Wredundant-decls -Wno-pointer-arith CFLAGS += -pipe -g -D__XEN__ -include $(BASEDIR)/include/xen/config.h -# Solaris puts stdarg.h &c in the system include directory. -ifneq ($(XEN_OS),SunOS) -CFLAGS += -nostdinc -iwithprefix include -endif +CFLAGS += -nostdinc CFLAGS-$(XSM_ENABLE) += -DXSM_ENABLE CFLAGS-$(FLASK_ENABLE) += -DFLASK_ENABLE -DXSM_MAGIC=0xf97cff8c diff --git a/xen/include/xen/stdarg.h b/xen/include/xen/stdarg.h index d1b2540..0283f06 100644 --- a/xen/include/xen/stdarg.h +++ b/xen/include/xen/stdarg.h @@ -1,23 +1,21 @@ #ifndef __XEN_STDARG_H__ #define __XEN_STDARG_H__ -#if defined(__OpenBSD__) || defined(__NetBSD__) || defined(__FreeBSD__) - typedef __builtin_va_list va_list; -# ifdef __GNUC__ -# define __GNUC_PREREQ__(x, y) \ - ((__GNUC__ == (x) && __GNUC_MINOR__ >= (y)) || \ - (__GNUC__ > (x))) -# else -# define __GNUC_PREREQ__(x, y) 0 -# endif -# if !__GNUC_PREREQ__(4, 5) -# define __builtin_va_start(ap, last) __builtin_stdarg_start((ap), (last)) -# endif -# define va_start(ap, last) __builtin_va_start((ap), (last)) -# define va_end(ap) __builtin_va_end(ap) -# define va_arg __builtin_va_arg +#ifdef __GNUC__ +# define __GNUC_PREREQ__(x, y) \ + ((__GNUC__ == (x) && __GNUC_MINOR__ >= (y)) || \ + (__GNUC__ > (x))) #else -# include <stdarg.h> +# define __GNUC_PREREQ__(x, y) 0 #endif +#if !__GNUC_PREREQ__(4, 5) +# define __builtin_va_start(ap, last) __builtin_stdarg_start((ap), (last)) +#endif + +typedef __builtin_va_list va_list; +#define va_start(ap, last) __builtin_va_start((ap), (last)) +#define va_end(ap) __builtin_va_end(ap) +#define va_arg __builtin_va_arg + #endif /* __XEN_STDARG_H__ */ diff --git a/xen/include/xen/stdbool.h b/xen/include/xen/stdbool.h index f0faedf..b0947a6 100644 --- a/xen/include/xen/stdbool.h +++ b/xen/include/xen/stdbool.h @@ -1,13 +1,9 @@ #ifndef __XEN_STDBOOL_H__ #define __XEN_STDBOOL_H__ -#if defined(__OpenBSD__) || defined(__NetBSD__) || defined(__FreeBSD__) -# define bool _Bool -# define true 1 -# define false 0 -# define __bool_true_false_are_defined 1 -#else -# include <stdbool.h> -#endif +#define bool _Bool +#define true 1 +#define false 0 +#define __bool_true_false_are_defined 1 #endif /* __XEN_STDBOOL_H__ */ _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |