These allow an x86_64 hypervisor to build on FreeBSD 9.1/amd64.
- like OpenBSD, needs a different arch passed to ld.
- like OpenBSD, sdtarg.h and stdbool.h are in /usr/include
Signed-off-by: Tim Deegan <tim@xen.org>
---
config/x86_64.mk | 4 ++++
xen/include/xen/stdarg.h | 2 +-
xen/include/xen/stdbool.h | 2 +-
3 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/config/x86_64.mk b/config/x86_64.mk
index 70c0d8d..d925b23 100644
--- a/config/x86_64.mk
+++ b/config/x86_64.mk
@@ -20,5 +20,9 @@ EFI_DIR ?= /usr/lib64/efi
ifeq ($(XEN_OS),OpenBSD)
LDFLAGS_DIRECT += -melf_x86_64_obsd
else
+ifeq ($(XEN_OS),FreeBSD)
+LDFLAGS_DIRECT += -melf_x86_64_fbsd
+else
LDFLAGS_DIRECT += -melf_x86_64
endif
+endif
diff --git a/xen/include/xen/stdarg.h b/xen/include/xen/stdarg.h
index ade7a65..d1b2540 100644
--- a/xen/include/xen/stdarg.h
+++ b/xen/include/xen/stdarg.h
@@ -1,7 +1,7 @@
#ifndef __XEN_STDARG_H__
#define __XEN_STDARG_H__
-#if defined(__OpenBSD__) || defined (__NetBSD__)
+#if defined(__OpenBSD__) || defined(__NetBSD__) || defined(__FreeBSD__)
typedef __builtin_va_list va_list;
# ifdef __GNUC__
# define __GNUC_PREREQ__(x, y) \
diff --git a/xen/include/xen/stdbool.h b/xen/include/xen/stdbool.h
index 2eecd52..f0faedf 100644
--- a/xen/include/xen/stdbool.h
+++ b/xen/include/xen/stdbool.h
@@ -1,7 +1,7 @@
#ifndef __XEN_STDBOOL_H__
#define __XEN_STDBOOL_H__
-#if defined(__OpenBSD__) || defined(__NetBSD__)
+#if defined(__OpenBSD__) || defined(__NetBSD__) || defined(__FreeBSD__)
# define bool _Bool
# define true 1
# define false 0
--
1.7.10.4
Jan Beulich
2013-Aug-16 08:33 UTC
Re: [PATCH] xen/x86: hypervisor build fixes for FreeBSD.
>>> On 15.08.13 at 17:44, Tim Deegan <tim@xen.org> wrote: > These allow an x86_64 hypervisor to build on FreeBSD 9.1/amd64. > - like OpenBSD, needs a different arch passed to ld. > - like OpenBSD, sdtarg.h and stdbool.h are in /usr/includeWhat a mess (assuming that''s still GNU ld and gcc). But anyway, this looks okay to me (but giving a Reviewed-by would be sort of odd, considering that I know nothing about all these BSDs). Jan
Keir Fraser
2013-Aug-16 15:25 UTC
Re: [PATCH] xen/x86: hypervisor build fixes for FreeBSD.
On 15/08/2013 16:44, "Tim Deegan" <tim@xen.org> wrote:> These allow an x86_64 hypervisor to build on FreeBSD 9.1/amd64. > - like OpenBSD, needs a different arch passed to ld. > - like OpenBSD, sdtarg.h and stdbool.h are in /usr/include > > Signed-off-by: Tim Deegan <tim@xen.org>Acked-by: Keir Fraser <keir@xen.org>> --- > config/x86_64.mk | 4 ++++ > xen/include/xen/stdarg.h | 2 +- > xen/include/xen/stdbool.h | 2 +- > 3 files changed, 6 insertions(+), 2 deletions(-) > > diff --git a/config/x86_64.mk b/config/x86_64.mk > index 70c0d8d..d925b23 100644 > --- a/config/x86_64.mk > +++ b/config/x86_64.mk > @@ -20,5 +20,9 @@ EFI_DIR ?= /usr/lib64/efi > ifeq ($(XEN_OS),OpenBSD) > LDFLAGS_DIRECT += -melf_x86_64_obsd > else > +ifeq ($(XEN_OS),FreeBSD) > +LDFLAGS_DIRECT += -melf_x86_64_fbsd > +else > LDFLAGS_DIRECT += -melf_x86_64 > endif > +endif > diff --git a/xen/include/xen/stdarg.h b/xen/include/xen/stdarg.h > index ade7a65..d1b2540 100644 > --- a/xen/include/xen/stdarg.h > +++ b/xen/include/xen/stdarg.h > @@ -1,7 +1,7 @@ > #ifndef __XEN_STDARG_H__ > #define __XEN_STDARG_H__ > > -#if defined(__OpenBSD__) || defined (__NetBSD__) > +#if defined(__OpenBSD__) || defined(__NetBSD__) || defined(__FreeBSD__) > typedef __builtin_va_list va_list; > # ifdef __GNUC__ > # define __GNUC_PREREQ__(x, y) \ > diff --git a/xen/include/xen/stdbool.h b/xen/include/xen/stdbool.h > index 2eecd52..f0faedf 100644 > --- a/xen/include/xen/stdbool.h > +++ b/xen/include/xen/stdbool.h > @@ -1,7 +1,7 @@ > #ifndef __XEN_STDBOOL_H__ > #define __XEN_STDBOOL_H__ > > -#if defined(__OpenBSD__) || defined(__NetBSD__) > +#if defined(__OpenBSD__) || defined(__NetBSD__) || defined(__FreeBSD__) > # define bool _Bool > # define true 1 > # define false 0
Roger Pau Monné
2013-Aug-26 15:06 UTC
Re: [PATCH] xen/x86: hypervisor build fixes for FreeBSD.
On 15/08/13 17:44, Tim Deegan wrote:> These allow an x86_64 hypervisor to build on FreeBSD 9.1/amd64. > - like OpenBSD, needs a different arch passed to ld. > - like OpenBSD, sdtarg.h and stdbool.h are in /usr/includeJust for curiosity, have you tried this with -current FreeBSD (10)? I''m specifically asking this because -current has switched to clang.
At 17:06 +0200 on 26 Aug (1377536819), Roger Pau Monn? wrote:> On 15/08/13 17:44, Tim Deegan wrote: > > These allow an x86_64 hypervisor to build on FreeBSD 9.1/amd64. > > - like OpenBSD, needs a different arch passed to ld. > > - like OpenBSD, sdtarg.h and stdbool.h are in /usr/include > > Just for curiosity, have you tried this with -current FreeBSD (10)? I''m > specifically asking this because -current has switched to clang.No - although I do use FreeBSD for some things I didn''t have a v10 image to try. I might give it a go if I get a moment. :) Clang will build the hypervisor (if you use ''make xen clang=y'') but IIRC it might not build the tools without some more work. The tools build uses autoconf now so on the one hand it should be possible for ./configure to DTRT, but on the other hand I really don''t want to get involved in any autotools wrangling. :) Cheers, Tim.