From mboxrd@z Thu Jan 1 00:00:00 1970 From: George Dunlap Subject: Re: [PATCH] xen: Don't use -nostdinc flags with CLANG Date: Thu, 13 Feb 2014 11:46:33 +0000 Message-ID: <52FCB099.7000902@eu.citrix.com> References: <1392074974-1488-1-git-send-email-julien.grall@linaro.org> <20140211085317.GB92054@deinos.phlegethon.org> <52FA17E3.9070105@linaro.org> <20140211123515.GD97288@deinos.phlegethon.org> <52FA1945.8010400@linaro.org> <20140211125928.GE97288@deinos.phlegethon.org> <52FA23B4.5060203@linaro.org> <20140211135926.GB10482@deinos.phlegethon.org> <52FA328C.4000103@linaro.org> <20140211143346.GE10482@deinos.phlegethon.org> <20140213112419.GB82703@deinos.phlegethon.org> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1WDukj-0008QZ-Lo for xen-devel@lists.xenproject.org; Thu, 13 Feb 2014 11:46:50 +0000 In-Reply-To: <20140213112419.GB82703@deinos.phlegethon.org> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Tim Deegan , george.dunlap@citrix.com Cc: xen-devel@lists.xenproject.org, Julien Grall , keir@xen.org, Ian.Jackson@eu.citrix.com, ian.campbell@citrix.com List-Id: xen-devel@lists.xenproject.org On 02/13/2014 11:24 AM, Tim Deegan wrote: > George: ping. > > At 15:33 +0100 on 11 Feb (1392129226), Tim Deegan wrote: >> At 14:24 +0000 on 11 Feb (1392125052), Julien Grall wrote: >>> 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). So the main risk would be if stgarg.h contained something like the "__GNUC_PREREQ__(4, 5)" #ifdef-ery that we missed. Without this patch, we know it doesn't compile on the latest version of clang. I think that's probably worse than the risk of potentially not compiling on some compiler that doesn't end up being tested before the release: Release-acked-by: George Dunlap >> >> 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 >> Date: Tue Feb 11 12:44:09 2014 +0000 >> >> xen: stop trying to use the system and >> >> 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 >> Tested-by: Julien Grall >> >> 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 >> +# 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 >> -#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@lists.xen.org >> http://lists.xen.org/xen-devel