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

Re: [Xen-devel] [PATCH] xen: Don't use -nostdinc flags with CLANG



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).
> 
> 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

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


 


Rackspace

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