|
[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 |