Skip to contentSkip to conversation

Add Xen target support

PATCH Superseded Alistair Francis 3 participants 11 messages Feb 6, 2016 – Mar 9, 2016

v1 of 3 Superseded Latest is v3 →

lore
Share & tools
lore
#0 lore raw

cover Add Xen target support

This is based on an original patch by Maxime Ripard which never seemed to be accepted. The XEN_TARGET is hard coded in this patch as I don't know how else to set the target. Otherwise it works.

Test on AArch64 targets only.

Alistair Francis (2):
Update libaio to 0.3.110
Add Xen 4.6

 package/Config.in                |   1 +
 package/libaio/0001-arches.patch | 671 ---------------------------------------
 package/libaio/Config.in         |   2 +-
 package/libaio/libaio.hash       |   4 +-
 package/libaio/libaio.mk         |   2 +-
 package/xen/Config.in            |  31 ++
 package/xen/xen.hash             |   2 +
 package/xen/xen.mk               |  49 +++
 8 files changed, 87 insertions(+), 675 deletions(-)
 delete mode 100644 package/libaio/0001-arches.patch
 create mode 100644 package/xen/Config.in
 create mode 100644 package/xen/xen.hash
 create mode 100644 package/xen/xen.mk
Signature · 1 line
2.5.0
#1 lore raw

PATCH 1/2 Update libaio to 0.3.110

Update libaio from 0.3.108 to 0.3.110. This adds AArch64 support.

---
 package/libaio/0001-arches.patch | 671 ---------------------------------------
 package/libaio/Config.in         |   2 +-
 package/libaio/libaio.hash       |   4 +-
 package/libaio/libaio.mk         |   2 +-
 4 files changed, 4 insertions(+), 675 deletions(-)
 delete mode 100644 package/libaio/0001-arches.patch
package/libaio/0001-arches.patch deleted +0 -671
deleted file mode 100644
index c85568c..0000000
@@ -1,671 +0,0 @@
-Patch borrowed from OpenEmbedded, available at
-recipes/libaio/libaio-0.3.106/00_arches.patch in their source
-tree. The patch has been adapted to remove the ARM-related
-definitions, since they have been merged in later versions of libaio.
-
-The patch adds various architecture specific definitions (syscall
-number and macros) for m68k, MIPS, PA/RISC and Sparc. Amongst these,
-Buildroot mostly only cares about MIPS, but it was just easier to take
-the whole OpenEmbedded patch.
-
-Signed-off-by: Thomas Petazzoni <[email protected]>
----
- src/libaio.h         |   24 +++++
- src/syscall-m68k.h   |   78 +++++++++++++++++
- src/syscall-mips.h   |  223 +++++++++++++++++++++++++++++++++++++++++++++++++++
- src/syscall-parisc.h |  146 +++++++++++++++++++++++++++++++++
- src/syscall-sparc.h  |  130 +++++++++++++++++++++++++++++
- src/syscall.h        |    8 +
- 7 files changed, 725 insertions(+)
-
-Index: libaio-0.3.109/src/libaio.h
-===================================================================
---- libaio-0.3.109.orig/src/libaio.h
-+++ libaio-0.3.109/src/libaio.h
-@@ -83,6 +83,30 @@
- #define PADDEDptr(x, y)	x; unsigned y
- #define PADDEDul(x, y)	unsigned long x; unsigned y
- #  endif
-+#elif defined(__m68k__) /* big endian, 32 bits */
-+#define PADDED(x, y)	unsigned y; x
-+#define PADDEDptr(x, y)	unsigned y; x
-+#define PADDEDul(x, y)	unsigned y; unsigned long x
-+#elif defined(__sparc__) /* big endian, 32 bits */
-+#define PADDED(x, y)	unsigned y; x
-+#define PADDEDptr(x, y)	unsigned y; x
-+#define PADDEDul(x, y)	unsigned y; unsigned long x
-+#elif defined(__hppa__) /* big endian, 32 bits */
-+#define PADDED(x, y)	unsigned y; x
-+#define PADDEDptr(x, y)	unsigned y; x
-+#define PADDEDul(x, y)	unsigned y; unsigned long x
-+#elif defined(__mips__)
-+#  if defined (__MIPSEB__) /* big endian, 32 bits */
-+#define PADDED(x, y)	unsigned y; x
-+#define PADDEDptr(x, y)	unsigned y; x
-+#define PADDEDul(x, y)	unsigned y; unsigned long x
-+#  elif defined(__MIPSEL__) /* little endian, 32 bits */
-+#define PADDED(x, y)	x; unsigned y
-+#define PADDEDptr(x, y)	x; unsigned y
-+#define PADDEDul(x, y)	unsigned long x; unsigned y
-+#  else
-+#    error "neither mipseb nor mipsel?"
-+#  endif
- #else
- #error	endian?
- #endif
-Index: libaio-0.3.109/src/syscall-m68k.h
-===================================================================
---- /dev/null
-+++ libaio-0.3.109/src/syscall-m68k.h
-@@ -0,0 +1,78 @@
-+#define __NR_io_setup		241
-+#define __NR_io_destroy		242
-+#define __NR_io_getevents	243
-+#define __NR_io_submit		244
-+#define __NR_io_cancel		245
-+
-+#define io_syscall1(type,fname,sname,atype,a) \
-+type fname(atype a) \
-+{ \
-+register long __res __asm__ ("%d0") = __NR_##sname; \
-+register long __a __asm__ ("%d1") = (long)(a); \
-+__asm__ __volatile__ ("trap  #0" \
-+		      : "+d" (__res) \
-+		      : "d" (__a)  ); \
-+return (type) __res; \
-+}
-+
-+#define io_syscall2(type,fname,sname,atype,a,btype,b) \
-+type fname(atype a,btype b) \
-+{ \
-+register long __res __asm__ ("%d0") = __NR_##sname; \
-+register long __a __asm__ ("%d1") = (long)(a); \
-+register long __b __asm__ ("%d2") = (long)(b); \
-+__asm__ __volatile__ ("trap  #0" \
-+		      : "+d" (__res) \
-+		      : "d" (__a), "d" (__b) \
-+		     ); \
-+return (type) __res; \
-+}
-+
-+#define io_syscall3(type,fname,sname,atype,a,btype,b,ctype,c) \
-+type fname(atype a,btype b,ctype c) \
-+{ \
-+register long __res __asm__ ("%d0") = __NR_##sname; \
-+register long __a __asm__ ("%d1") = (long)(a); \
-+register long __b __asm__ ("%d2") = (long)(b); \
-+register long __c __asm__ ("%d3") = (long)(c); \
-+__asm__ __volatile__ ("trap  #0" \
-+		      : "+d" (__res) \
-+		      : "d" (__a), "d" (__b), \
-+			"d" (__c) \
-+		     ); \
-+return (type) __res; \
-+}
-+
-+#define io_syscall4(type,fname,sname,atype,a,btype,b,ctype,c,dtype,d) \
-+type fname (atype a, btype b, ctype c, dtype d) \
-+{ \
-+register long __res __asm__ ("%d0") = __NR_##sname; \
-+register long __a __asm__ ("%d1") = (long)(a); \
-+register long __b __asm__ ("%d2") = (long)(b); \
-+register long __c __asm__ ("%d3") = (long)(c); \
-+register long __d __asm__ ("%d4") = (long)(d); \
-+__asm__ __volatile__ ("trap  #0" \
-+		      : "+d" (__res) \
-+		      : "d" (__a), "d" (__b), \
-+			"d" (__c), "d" (__d)  \
-+		     ); \
-+return (type) __res; \
-+}
-+
-+#define io_syscall5(type,fname,sname,atype,a,btype,b,ctype,c,dtype,d,etype,e) \
-+type fname (atype a,btype b,ctype c,dtype d,etype e) \
-+{ \
-+register long __res __asm__ ("%d0") = __NR_##sname; \
-+register long __a __asm__ ("%d1") = (long)(a); \
-+register long __b __asm__ ("%d2") = (long)(b); \
-+register long __c __asm__ ("%d3") = (long)(c); \
-+register long __d __asm__ ("%d4") = (long)(d); \
-+register long __e __asm__ ("%d5") = (long)(e); \
-+__asm__ __volatile__ ("trap  #0" \
-+		      : "+d" (__res) \
-+		      : "d" (__a), "d" (__b), \
-+			"d" (__c), "d" (__d), "d" (__e)  \
-+		     ); \
-+return (type) __res; \
-+}
-+
-Index: libaio-0.3.109/src/syscall-mips.h
-===================================================================
---- /dev/null
-+++ libaio-0.3.109/src/syscall-mips.h
-@@ -0,0 +1,223 @@
-+/*
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License.  See the file "COPYING" in the main directory of this archive
-+ * for more details.
-+ *
-+ * Copyright (C) 1995, 96, 97, 98, 99, 2000 by Ralf Baechle
-+ * Copyright (C) 1999, 2000 Silicon Graphics, Inc.
-+ *
-+ * Changed system calls macros _syscall5 - _syscall7 to push args 5 to 7 onto
-+ * the stack. Robin Farine for ACN S.A, Copyright (C) 1996 by ACN S.A
-+ */
-+
-+#ifndef _MIPS_SIM_ABI32
-+#define _MIPS_SIM_ABI32			1
-+#define _MIPS_SIM_NABI32		2
-+#define _MIPS_SIM_ABI64			3
-+#endif
-+
-+#if _MIPS_SIM == _MIPS_SIM_ABI32
-+
-+/*
-+ * Linux o32 style syscalls are in the range from 4000 to 4999.
-+ */
-+#define __NR_Linux			4000
-+#define __NR_io_setup			(__NR_Linux + 241)
-+#define __NR_io_destroy			(__NR_Linux + 242)
-+#define __NR_io_getevents		(__NR_Linux + 243)
-+#define __NR_io_submit			(__NR_Linux + 244)
-+#define __NR_io_cancel			(__NR_Linux + 245)
-+
-+#endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */
-+
-+#if _MIPS_SIM == _MIPS_SIM_ABI64
-+
-+/*
-+ * Linux 64-bit syscalls are in the range from 5000 to 5999.
-+ */
-+#define __NR_Linux			5000
-+#define __NR_io_setup			(__NR_Linux + 200)
-+#define __NR_io_destroy			(__NR_Linux + 201)
-+#define __NR_io_getevents		(__NR_Linux + 202)
-+#define __NR_io_submit			(__NR_Linux + 203)
-+#define __NR_io_cancel			(__NR_Linux + 204)
-+#endif /* _MIPS_SIM == _MIPS_SIM_ABI64 */
-+
-+#if _MIPS_SIM == _MIPS_SIM_NABI32
-+
-+/*
-+ * Linux N32 syscalls are in the range from 6000 to 6999.
-+ */
-+#define __NR_Linux			6000
-+#define __NR_io_setup			(__NR_Linux + 200)
-+#define __NR_io_destroy			(__NR_Linux + 201)
-+#define __NR_io_getevents		(__NR_Linux + 202)
-+#define __NR_io_submit			(__NR_Linux + 203)
-+#define __NR_io_cancel			(__NR_Linux + 204)
-+#endif /* _MIPS_SIM == _MIPS_SIM_NABI32 */
-+
-+#define io_syscall1(type,fname,sname,atype,a) \
-+type fname(atype a) \
-+{ \
-+	register unsigned long __a0 asm("$4") = (unsigned long) a; \
-+	register unsigned long __a3 asm("$7"); \
-+	unsigned long __v0; \
-+	\
-+	__asm__ volatile ( \
-+	".set\tnoreorder\n\t" \
-+	"li\t$2, %3\t\t\t# " #fname "\n\t" \
-+	"syscall\n\t" \
-+	"move\t%0, $2\n\t" \
-+	".set\treorder" \
-+	: "=&r" (__v0), "=r" (__a3) \
-+	: "r" (__a0), "i" (__NR_##sname) \
-+	: "$2", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", \
-+	  "memory"); \
-+	\
-+	if (__a3 == 0) \
-+		return (type) __v0; \
-+	return (type) -1; \
-+}
-+
-+#define io_syscall2(type,fname,sname,atype,a,btype,b) \
-+type fname(atype a, btype b) \
-+{ \
-+	register unsigned long __a0 asm("$4") = (unsigned long) a; \
-+	register unsigned long __a1 asm("$5") = (unsigned long) b; \
-+	register unsigned long __a3 asm("$7"); \
-+	unsigned long __v0; \
-+	\
-+	__asm__ volatile ( \
-+	".set\tnoreorder\n\t" \
-+	"li\t$2, %4\t\t\t# " #fname "\n\t" \
-+	"syscall\n\t" \
-+	"move\t%0, $2\n\t" \
-+	".set\treorder" \
-+	: "=&r" (__v0), "=r" (__a3) \
-+	: "r" (__a0), "r" (__a1), "i" (__NR_##sname) \
-+	: "$2", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", \
-+	  "memory"); \
-+	\
-+	if (__a3 == 0) \
-+		return (type) __v0; \
-+	return (type) -1; \
-+}
-+
-+#define io_syscall3(type,fname,sname,atype,a,btype,b,ctype,c) \
-+type fname(atype a, btype b, ctype c) \
-+{ \
-+	register unsigned long __a0 asm("$4") = (unsigned long) a; \
-+	register unsigned long __a1 asm("$5") = (unsigned long) b; \
-+	register unsigned long __a2 asm("$6") = (unsigned long) c; \
-+	register unsigned long __a3 asm("$7"); \
-+	unsigned long __v0; \
-+	\
-+	__asm__ volatile ( \
-+	".set\tnoreorder\n\t" \
-+	"li\t$2, %5\t\t\t# " #fname "\n\t" \
-+	"syscall\n\t" \
-+	"move\t%0, $2\n\t" \
-+	".set\treorder" \
-+	: "=&r" (__v0), "=r" (__a3) \
-+	: "r" (__a0), "r" (__a1), "r" (__a2), "i" (__NR_##sname) \
-+	: "$2", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", \
-+	  "memory"); \
-+	\
-+	if (__a3 == 0) \
-+		return (type) __v0; \
-+	return (type) -1; \
-+}
-+
-+#define io_syscall4(type,fname,sname,atype,a,btype,b,ctype,c,dtype,d) \
-+type fname(atype a, btype b, ctype c, dtype d) \
-+{ \
-+	register unsigned long __a0 asm("$4") = (unsigned long) a; \
-+	register unsigned long __a1 asm("$5") = (unsigned long) b; \
-+	register unsigned long __a2 asm("$6") = (unsigned long) c; \
-+	register unsigned long __a3 asm("$7") = (unsigned long) d; \
-+	unsigned long __v0; \
-+	\
-+	__asm__ volatile ( \
-+	".set\tnoreorder\n\t" \
-+	"li\t$2, %5\t\t\t# " #fname "\n\t" \
-+	"syscall\n\t" \
-+	"move\t%0, $2\n\t" \
-+	".set\treorder" \
-+	: "=&r" (__v0), "+r" (__a3) \
-+	: "r" (__a0), "r" (__a1), "r" (__a2), "i" (__NR_##sname) \
-+	: "$2", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", \
-+	  "memory"); \
-+	\
-+	if (__a3 == 0) \
-+		return (type) __v0; \
-+	return (type) -1; \
-+}
-+
-+#if (_MIPS_SIM == _MIPS_SIM_ABI32)
-+
-+/*
-+ * Using those means your brain needs more than an oil change ;-)
-+ */
-+
-+#define io_syscall5(type,fname,sname,atype,a,btype,b,ctype,c,dtype,d,etype,e) \
-+type fname(atype a, btype b, ctype c, dtype d, etype e) \
-+{ \
-+	register unsigned long __a0 asm("$4") = (unsigned long) a; \
-+	register unsigned long __a1 asm("$5") = (unsigned long) b; \
-+	register unsigned long __a2 asm("$6") = (unsigned long) c; \
-+	register unsigned long __a3 asm("$7") = (unsigned long) d; \
-+	unsigned long __v0; \
-+	\
-+	__asm__ volatile ( \
-+	".set\tnoreorder\n\t" \
-+	"lw\t$2, %6\n\t" \
-+	"subu\t$29, 32\n\t" \
-+	"sw\t$2, 16($29)\n\t" \
-+	"li\t$2, %5\t\t\t# " #fname "\n\t" \
-+	"syscall\n\t" \
-+	"move\t%0, $2\n\t" \
-+	"addiu\t$29, 32\n\t" \
-+	".set\treorder" \
-+	: "=&r" (__v0), "+r" (__a3) \
-+	: "r" (__a0), "r" (__a1), "r" (__a2), "i" (__NR_##sname), \
-+	  "m" ((unsigned long)e) \
-+	: "$2", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", \
-+	  "memory"); \
-+	\
-+	if (__a3 == 0) \
-+		return (type) __v0; \
-+	return (type) -1; \
-+}
-+
-+#endif /* (_MIPS_SIM == _MIPS_SIM_ABI32) */
-+
-+#if (_MIPS_SIM == _MIPS_SIM_NABI32) || (_MIPS_SIM == _MIPS_SIM_ABI64)
-+
-+#define io_syscall5(type,fname,sname,atype,a,btype,b,ctype,c,dtype,d,etype,e) \
-+type fname (atype a,btype b,ctype c,dtype d,etype e) \
-+{ \
-+	register unsigned long __a0 asm("$4") = (unsigned long) a; \
-+	register unsigned long __a1 asm("$5") = (unsigned long) b; \
-+	register unsigned long __a2 asm("$6") = (unsigned long) c; \
-+	register unsigned long __a3 asm("$7") = (unsigned long) d; \
-+	register unsigned long __a4 asm("$8") = (unsigned long) e; \
-+	unsigned long __v0; \
-+	\
-+	__asm__ volatile ( \
-+	".set\tnoreorder\n\t" \
-+	"li\t$2, %6\t\t\t# " #fname "\n\t" \
-+	"syscall\n\t" \
-+	"move\t%0, $2\n\t" \
-+	".set\treorder" \
-+	: "=&r" (__v0), "+r" (__a3) \
-+	: "r" (__a0), "r" (__a1), "r" (__a2), "r" (__a4), "i" (__NR_##sname) \
-+	: "$2", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", \
-+	  "memory"); \
-+	\
-+	if (__a3 == 0) \
-+		return (type) __v0; \
-+	return (type) -1; \
-+}
-+
-+#endif /* (_MIPS_SIM == _MIPS_SIM_NABI32) || (_MIPS_SIM == _MIPS_SIM_ABI64) */
-+
-Index: libaio-0.3.109/src/syscall-parisc.h
-===================================================================
---- /dev/null
-+++ libaio-0.3.109/src/syscall-parisc.h
-@@ -0,0 +1,146 @@
-+/*
-+ * Linux system call numbers.
-+ *
-+ * Cary Coutant says that we should just use another syscall gateway
-+ * page to avoid clashing with the HPUX space, and I think he's right:
-+ * it will would keep a branch out of our syscall entry path, at the
-+ * very least.  If we decide to change it later, we can ``just'' tweak
-+ * the LINUX_GATEWAY_ADDR define at the bottom and make __NR_Linux be
-+ * 1024 or something.  Oh, and recompile libc. =)
-+ *
-+ * 64-bit HPUX binaries get the syscall gateway address passed in a register
-+ * from the kernel at startup, which seems a sane strategy.
-+ */
-+
-+#define __NR_Linux                0
-+#define __NR_io_setup           (__NR_Linux + 215)
-+#define __NR_io_destroy         (__NR_Linux + 216)
-+#define __NR_io_getevents       (__NR_Linux + 217)
-+#define __NR_io_submit          (__NR_Linux + 218)
-+#define __NR_io_cancel          (__NR_Linux + 219)
-+
-+#define SYS_ify(syscall_name)   __NR_##syscall_name
-+
-+/* Assume all syscalls are done from PIC code just to be
-+ * safe. The worst case scenario is that you lose a register
-+ * and save/restore r19 across the syscall. */
-+#define PIC
-+
-+/* Definition taken from glibc 2.3.3
-+ * sysdeps/unix/sysv/linux/hppa/sysdep.h
-+ */
-+
-+#ifdef PIC
-+/* WARNING: CANNOT BE USED IN A NOP! */
-+# define K_STW_ASM_PIC	"       copy %%r19, %%r4\n"
-+# define K_LDW_ASM_PIC	"       copy %%r4, %%r19\n"
-+# define K_USING_GR4	"%r4",
-+#else
-+# define K_STW_ASM_PIC	" \n"
-+# define K_LDW_ASM_PIC	" \n"
-+# define K_USING_GR4
-+#endif
-+
-+/* GCC has to be warned that a syscall may clobber all the ABI
-+   registers listed as "caller-saves", see page 8, Table 2
-+   in section 2.2.6 of the PA-RISC RUN-TIME architecture
-+   document. However! r28 is the result and will conflict with
-+   the clobber list so it is left out. Also the input arguments
-+   registers r20 -> r26 will conflict with the list so they
-+   are treated specially. Although r19 is clobbered by the syscall
-+   we cannot say this because it would violate ABI, thus we say
-+   r4 is clobbered and use that register to save/restore r19
-+   across the syscall. */
-+
-+#define K_CALL_CLOB_REGS "%r1", "%r2", K_USING_GR4 \
-+			 "%r20", "%r29", "%r31"
-+
-+#undef K_INLINE_SYSCALL
-+#define K_INLINE_SYSCALL(name, nr, args...)	({			\
-+	long __sys_res;							\
-+	{								\
-+		register unsigned long __res __asm__("r28");		\
-+		K_LOAD_ARGS_##nr(args)					\
-+		/* FIXME: HACK stw/ldw r19 around syscall */		\
-+		__asm__ volatile(					\
-+			K_STW_ASM_PIC					\
-+			"	ble  0x100(%%sr2, %%r0)\n"		\
-+			"	ldi %1, %%r20\n"			\
-+			K_LDW_ASM_PIC					\
-+			: "=r" (__res)					\
-+			: "i" (SYS_ify(name)) K_ASM_ARGS_##nr		\
-+			: "memory", K_CALL_CLOB_REGS K_CLOB_ARGS_##nr	\
-+		);							\
-+		__sys_res = (long)__res;				\
-+	}								\
-+	__sys_res;							\
-+})
-+
-+#define K_LOAD_ARGS_0()
-+#define K_LOAD_ARGS_1(r26)					\
-+	register unsigned long __r26 __asm__("r26") = (unsigned long)(r26);   \
-+	K_LOAD_ARGS_0()
-+#define K_LOAD_ARGS_2(r26,r25)					\
-+	register unsigned long __r25 __asm__("r25") = (unsigned long)(r25);   \
-+	K_LOAD_ARGS_1(r26)
-+#define K_LOAD_ARGS_3(r26,r25,r24)				\
-+	register unsigned long __r24 __asm__("r24") = (unsigned long)(r24);   \
-+	K_LOAD_ARGS_2(r26,r25)
-+#define K_LOAD_ARGS_4(r26,r25,r24,r23)				\
-+	register unsigned long __r23 __asm__("r23") = (unsigned long)(r23);   \
-+	K_LOAD_ARGS_3(r26,r25,r24)
-+#define K_LOAD_ARGS_5(r26,r25,r24,r23,r22)			\
-+	register unsigned long __r22 __asm__("r22") = (unsigned long)(r22);   \
-+	K_LOAD_ARGS_4(r26,r25,r24,r23)
-+#define K_LOAD_ARGS_6(r26,r25,r24,r23,r22,r21)			\
-+	register unsigned long __r21 __asm__("r21") = (unsigned long)(r21);   \
-+	K_LOAD_ARGS_5(r26,r25,r24,r23,r22)
-+
-+/* Even with zero args we use r20 for the syscall number */
-+#define K_ASM_ARGS_0
-+#define K_ASM_ARGS_1 K_ASM_ARGS_0, "r" (__r26)
-+#define K_ASM_ARGS_2 K_ASM_ARGS_1, "r" (__r25)
-+#define K_ASM_ARGS_3 K_ASM_ARGS_2, "r" (__r24)
-+#define K_ASM_ARGS_4 K_ASM_ARGS_3, "r" (__r23)
-+#define K_ASM_ARGS_5 K_ASM_ARGS_4, "r" (__r22)
-+#define K_ASM_ARGS_6 K_ASM_ARGS_5, "r" (__r21)
-+
-+/* The registers not listed as inputs but clobbered */
-+#define K_CLOB_ARGS_6
-+#define K_CLOB_ARGS_5 K_CLOB_ARGS_6, "%r21"
-+#define K_CLOB_ARGS_4 K_CLOB_ARGS_5, "%r22"
-+#define K_CLOB_ARGS_3 K_CLOB_ARGS_4, "%r23"
-+#define K_CLOB_ARGS_2 K_CLOB_ARGS_3, "%r24"
-+#define K_CLOB_ARGS_1 K_CLOB_ARGS_2, "%r25"
-+#define K_CLOB_ARGS_0 K_CLOB_ARGS_1, "%r26"
-+
-+#define io_syscall1(type,fname,sname,type1,arg1)			\
-+type fname(type1 arg1)							\
-+{									\
-+    return K_INLINE_SYSCALL(sname, 1, arg1);				\
-+}
-+
-+#define io_syscall2(type,fname,sname,type1,arg1,type2,arg2)		\
-+type fname(type1 arg1, type2 arg2)					\
-+{									\
-+    return K_INLINE_SYSCALL(sname, 2, arg1, arg2);			\
-+}
-+
-+#define io_syscall3(type,fname,sname,type1,arg1,type2,arg2,type3,arg3)	\
-+type fname(type1 arg1, type2 arg2, type3 arg3)				\
-+{									\
-+    return K_INLINE_SYSCALL(sname, 3, arg1, arg2, arg3);		\
-+}
-+
-+#define io_syscall4(type,fname,sname,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \
-+type fname(type1 arg1, type2 arg2, type3 arg3, type4 arg4)		\
-+{									\
-+    return K_INLINE_SYSCALL(sname, 4, arg1, arg2, arg3, arg4);		\
-+}
-+
-+#define io_syscall5(type,fname,sname,type1,arg1,type2,arg2,type3,arg3,type4,arg4,type5,arg5) \
-+type fname(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5)	\
-+{									\
-+    return K_INLINE_SYSCALL(sname, 5, arg1, arg2, arg3, arg4, arg5);	\
-+}
-+
-Index: libaio-0.3.109/src/syscall-sparc.h
-===================================================================
---- /dev/null
-+++ libaio-0.3.109/src/syscall-sparc.h
-@@ -0,0 +1,130 @@
-+/* $Id: unistd.h,v 1.74 2002/02/08 03:57:18 davem Exp $ */
-+
-+/*
-+ * System calls under the Sparc.
-+ *
-+ * Don't be scared by the ugly clobbers, it is the only way I can
-+ * think of right now to force the arguments into fixed registers
-+ * before the trap into the system call with gcc 'asm' statements.
-+ *
-+ * Copyright (C) 1995 David S. Miller (davem at caip.rutgers.edu)
-+ *
-+ * SunOS compatibility based upon preliminary work which is:
-+ *
-+ * Copyright (C) 1995 Adrian M. Rodriguez (adrian at remus.rutgers.edu)
-+ */
-+
-+
-+#define __NR_io_setup		268
-+#define __NR_io_destroy		269
-+#define __NR_io_submit		270
-+#define __NR_io_cancel		271
-+#define __NR_io_getevents	272
-+
-+
-+#define io_syscall1(type,fname,sname,type1,arg1) \
-+type fname(type1 arg1) \
-+{ \
-+long __res; \
-+register long __g1 __asm__ ("g1") = __NR_##sname; \
-+register long __o0 __asm__ ("o0") = (long)(arg1); \
-+__asm__ __volatile__ ("t 0x10\n\t" \
-+		      "bcc 1f\n\t" \
-+		      "mov %%o0, %0\n\t" \
-+		      "sub %%g0, %%o0, %0\n\t" \
-+		      "1:\n\t" \
-+		      : "=r" (__res), "=&r" (__o0) \
-+		      : "1" (__o0), "r" (__g1) \
-+		      : "cc"); \
-+if (__res < -255 || __res >= 0) \
-+	return (type) __res; \
-+return -1; \
-+}
-+
-+#define io_syscall2(type,fname,sname,type1,arg1,type2,arg2) \
-+type fname(type1 arg1,type2 arg2) \
-+{ \
-+long __res; \
-+register long __g1 __asm__ ("g1") = __NR_##sname; \
-+register long __o0 __asm__ ("o0") = (long)(arg1); \
-+register long __o1 __asm__ ("o1") = (long)(arg2); \
-+__asm__ __volatile__ ("t 0x10\n\t" \
-+		      "bcc 1f\n\t" \
-+		      "mov %%o0, %0\n\t" \
-+		      "sub %%g0, %%o0, %0\n\t" \
-+		      "1:\n\t" \
-+		      : "=r" (__res), "=&r" (__o0) \
-+		      : "1" (__o0), "r" (__o1), "r" (__g1) \
-+		      : "cc"); \
-+if (__res < -255 || __res >= 0) \
-+	return (type) __res; \
-+return -1; \
-+}
-+
-+#define io_syscall3(type,fname,sname,type1,arg1,type2,arg2,type3,arg3) \
-+type fname(type1 arg1,type2 arg2,type3 arg3) \
-+{ \
-+long __res; \
-+register long __g1 __asm__ ("g1") = __NR_##sname; \
-+register long __o0 __asm__ ("o0") = (long)(arg1); \
-+register long __o1 __asm__ ("o1") = (long)(arg2); \
-+register long __o2 __asm__ ("o2") = (long)(arg3); \
-+__asm__ __volatile__ ("t 0x10\n\t" \
-+		      "bcc 1f\n\t" \
-+		      "mov %%o0, %0\n\t" \
-+		      "sub %%g0, %%o0, %0\n\t" \
-+		      "1:\n\t" \
-+		      : "=r" (__res), "=&r" (__o0) \
-+		      : "1" (__o0), "r" (__o1), "r" (__o2), "r" (__g1) \
-+		      : "cc"); \
-+if (__res < -255 || __res>=0) \
-+	return (type) __res; \
-+return -1; \
-+}
-+
-+#define io_syscall4(type,fname,sname,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \
-+type fname(type1 arg1, type2 arg2, type3 arg3, type4 arg4) \
-+{ \
-+long __res; \
-+register long __g1 __asm__ ("g1") = __NR_##sname; \
-+register long __o0 __asm__ ("o0") = (long)(arg1); \
-+register long __o1 __asm__ ("o1") = (long)(arg2); \
-+register long __o2 __asm__ ("o2") = (long)(arg3); \
-+register long __o3 __asm__ ("o3") = (long)(arg4); \
-+__asm__ __volatile__ ("t 0x10\n\t" \
-+		      "bcc 1f\n\t" \
-+		      "mov %%o0, %0\n\t" \
-+		      "sub %%g0, %%o0, %0\n\t" \
-+		      "1:\n\t" \
-+		      : "=r" (__res), "=&r" (__o0) \
-+		      : "1" (__o0), "r" (__o1), "r" (__o2), "r" (__o3), "r" (__g1) \
-+		      : "cc"); \
-+if (__res < -255 || __res>=0) \
-+	return (type) __res; \
-+return -1; \
-+}
-+
-+#define io_syscall5(type,fname,sname,type1,arg1,type2,arg2,type3,arg3,type4,arg4, \
-+	  type5,arg5) \
-+type fname(type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5) \
-+{ \
-+long __res; \
-+register long __g1 __asm__ ("g1") = __NR_##sname; \
-+register long __o0 __asm__ ("o0") = (long)(arg1); \
-+register long __o1 __asm__ ("o1") = (long)(arg2); \
-+register long __o2 __asm__ ("o2") = (long)(arg3); \
-+register long __o3 __asm__ ("o3") = (long)(arg4); \
-+register long __o4 __asm__ ("o4") = (long)(arg5); \
-+__asm__ __volatile__ ("t 0x10\n\t" \
-+		      "bcc 1f\n\t" \
-+		      "mov %%o0, %0\n\t" \
-+		      "sub %%g0, %%o0, %0\n\t" \
-+		      "1:\n\t" \
-+		      : "=r" (__res), "=&r" (__o0) \
-+		      : "1" (__o0), "r" (__o1), "r" (__o2), "r" (__o3), "r" (__o4), "r" (__g1) \
-+		      : "cc"); \
-+if (__res < -255 || __res>=0) \
-+	return (type) __res; \
-+return -1; \
-+}
-+
-Index: libaio-0.3.109/src/syscall.h
-===================================================================
---- libaio-0.3.109.orig/src/syscall.h
-+++ libaio-0.3.109/src/syscall.h
-@@ -24,6 +24,14 @@
- #include "syscall-alpha.h"
- #elif defined(__arm__)
- #include "syscall-arm.h"
-+#elif defined(__m68k__)
-+#include "syscall-m68k.h"
-+#elif defined(__sparc__)
-+#include "syscall-sparc.h"
-+#elif defined(__hppa__)
-+#include "syscall-parisc.h"
-+#elif defined(__mips__)
-+#include "syscall-mips.h"
- #else
- #error "add syscall-arch.h"
- #endif
package/libaio/Config.in +1 -1
index cc44cb6..63db829 100644
@@ -2,7 +2,7 @@ config BR2_PACKAGE_LIBAIO_ARCH_SUPPORTS
 	bool
 	default y if BR2_arm || BR2_armeb || BR2_i386 || \
 		BR2_m68k || BR2_mips || BR2_mipsel || BR2_powerpc || \
-		BR2_sparc || BR2_x86_64
+		BR2_sparc || BR2_x86_64 || BR2_aarch64
 
 config BR2_PACKAGE_LIBAIO
 	bool "libaio"
package/libaio/libaio.hash +2 -2
index deb16e8..7aa8961 100644
@@ -1,2 +1,2 @@
-# From http://snapshot.debian.org/archive/debian/20141023T043132Z/pool/main/liba/libaio/libaio_0.3.109-3.dsc
-sha256	bf4a457253cbaab215aea75cb6e18dc8d95bbd507e9920661ff9bdd288c8778d	libaio_0.3.109.orig.tar.gz
+# From http://snapshot.debian.org/archive/debian/20141023T043132Z/pool/main/liba/libaio/libaio_0.3.110-1.dsc
+sha256	e019028e631725729376250e32b473012f7cb68e1f7275bfc1bbcdd0f8745f7e	libaio_0.3.110.orig.tar.gz
package/libaio/libaio.mk +1 -1
index 53ad7eb..9b28f05 100644
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-LIBAIO_VERSION = 0.3.109
+LIBAIO_VERSION = 0.3.110
 LIBAIO_SOURCE = libaio_$(LIBAIO_VERSION).orig.tar.gz
 LIBAIO_SITE = http://snapshot.debian.org/archive/debian/20141023T043132Z/pool/main/liba/libaio
 LIBAIO_INSTALL_STAGING = YES
Signature · 1 line
2.5.0
#2 lore raw

PATCH 1/2 Update libaio to 0.3.110

Quoted 18 lines · Alistair Francis

Update libaio from 0.3.108 to 0.3.110. This adds AArch64 support.

---
 package/libaio/0001-arches.patch | 671 ---------------------------------------
 package/libaio/Config.in         |   2 +-
 package/libaio/libaio.hash       |   4 +-
 package/libaio/libaio.mk         |   2 +-
 4 files changed, 4 insertions(+), 675 deletions(-)
 delete mode 100644 package/libaio/0001-arches.patch
package/libaio/0001-arches.patch deleted +0 -1
deleted file mode 100644
index c85568c..0000000
@@ -1,671 +0,0 @@
-Patch borrowed from OpenEmbedded, available at

package/libaio/0001-arches.patch line 11

Quoted 10 lines
package/libaio/0001-arches.patch deleted +0 -10
-recipes/libaio/libaio-0.3.106/00_arches.patch in their source
-tree. The patch has been adapted to remove the ARM-related
-definitions, since they have been merged in later versions of libaio.
-
-The patch adds various architecture specific definitions (syscall
-number and macros) for m68k, MIPS, PA/RISC and Sparc. Amongst these,
-Buildroot mostly only cares about MIPS, but it was just easier to take
-the whole OpenEmbedded patch.
-
-Signed-off-by: Thomas Petazzoni <[email protected]>

Why did you remove this patch? As far as I can see, there is nothing upstream
that adds mips support. Or is syscall-generic good enough?

Regards,
Arnout

Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
#3 lore raw

PATCH 1/2 Update libaio to 0.3.110

Quoted 24 lines · Arnout Vandecappelle
Quoted 23 lines · Alistair Francis

Update libaio from 0.3.108 to 0.3.110. This adds AArch64 support.

---
 package/libaio/0001-arches.patch | 671 ---------------------------------------
 package/libaio/Config.in         |   2 +-
 package/libaio/libaio.hash       |   4 +-
 package/libaio/libaio.mk         |   2 +-
 4 files changed, 4 insertions(+), 675 deletions(-)
 delete mode 100644 package/libaio/0001-arches.patch
package/libaio/0001-arches.patch deleted +0 -6
deleted file mode 100644
index c85568c..0000000
@@ -1,671 +0,0 @@
-Patch borrowed from OpenEmbedded, available at
-recipes/libaio/libaio-0.3.106/00_arches.patch in their source
-tree. The patch has been adapted to remove the ARM-related
-definitions, since they have been merged in later versions of libaio.
-
-The patch adds various architecture specific definitions (syscall
Quoted 8 lines

package/libaio/0001-arches.patch line 11

Quoted 5 lines
package/libaio/0001-arches.patch deleted +0 -5
-number and macros) for m68k, MIPS, PA/RISC and Sparc. Amongst these,
-Buildroot mostly only cares about MIPS, but it was just easier to take
-the whole OpenEmbedded patch.
-
-Signed-off-by: Thomas Petazzoni <[email protected]>

Why did you remove this patch? As far as I can see, there is nothing upstream
that adds mips support. Or is syscall-generic good enough?

This patch no longer applies, so I just assumed that it had been merged.

Just for the record this is the error I get:

Applying 0001-arches.patch using patch:
patching file src/libaio.h
Hunk #1 FAILED at 83.
1 out of 1 hunk FAILED -- saving rejects to file src/libaio.h.rej patching file src/syscall-m68k.h
patching file src/syscall-mips.h
patching file src/syscall-parisc.h
The next patch would create the file src/syscall-sparc.h, which already exists! Skipping patch.
1 out of 1 hunk ignored
patching file src/syscall.h
Hunk #1 FAILED at 24.
1 out of 1 hunk FAILED -- saving rejects to file src/syscall.h.rej Patch failed! Please fix 0001-arches.patch!

Thanks,

Alistair

Quoted 12 lines

Regards,
Arnout

--

Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
#4 lore raw

PATCH 1/2 Update libaio to 0.3.110

Quoted 38 lines · Alistair Francis
Quoted 24 lines · Arnout Vandecappelle
Quoted 23 lines · Alistair Francis

Update libaio from 0.3.108 to 0.3.110. This adds AArch64 support.

---
 package/libaio/0001-arches.patch | 671 ---------------------------------------
 package/libaio/Config.in         |   2 +-
 package/libaio/libaio.hash       |   4 +-
 package/libaio/libaio.mk         |   2 +-
 4 files changed, 4 insertions(+), 675 deletions(-)
 delete mode 100644 package/libaio/0001-arches.patch
package/libaio/0001-arches.patch deleted +0 -6
deleted file mode 100644
index c85568c..0000000
@@ -1,671 +0,0 @@
-Patch borrowed from OpenEmbedded, available at
-recipes/libaio/libaio-0.3.106/00_arches.patch in their source
-tree. The patch has been adapted to remove the ARM-related
-definitions, since they have been merged in later versions of libaio.
-
-The patch adds various architecture specific definitions (syscall
Quoted 8 lines

package/libaio/0001-arches.patch line 11

Quoted 5 lines
package/libaio/0001-arches.patch deleted +0 -5
-number and macros) for m68k, MIPS, PA/RISC and Sparc. Amongst these,
-Buildroot mostly only cares about MIPS, but it was just easier to take
-the whole OpenEmbedded patch.
-
-Signed-off-by: Thomas Petazzoni <[email protected]>

Why did you remove this patch? As far as I can see, there is nothing upstream
that adds mips support. Or is syscall-generic good enough?

This patch no longer applies, so I just assumed that it had been merged.

Just for the record this is the error I get:

Quoted 14 lines

Applying 0001-arches.patch using patch:
patching file src/libaio.h
Hunk #1 FAILED at 83.
1 out of 1 hunk FAILED -- saving rejects to file src/libaio.h.rej patching file src/syscall-m68k.h
patching file src/syscall-mips.h
patching file src/syscall-parisc.h
The next patch would create the file src/syscall-sparc.h, which already exists! Skipping patch.
1 out of 1 hunk ignored
patching file src/syscall.h
Hunk #1 FAILED at 24.
1 out of 1 hunk FAILED -- saving rejects to file src/syscall.h.rej Patch failed! Please fix 0001-arches.patch!

Looks like it was partially merged then. You'll have to rework the patch so it
applies to the new version. We're only interested in the mips bit, so that should be easy to do.

Please also do at least a build test (and preferably a runtime test using qemu)
on MIPS. Or you can ask one of the imgtec people to do a runtime test. (Putting Vicente in Cc for that.)

Regards,
Arnout

Signature · 6 lines
Arnout Vandecappelle      arnout dot vandecappelle at essensium dot com
Senior Embedded Software Architect . . . . . . +32-478-010353 (mobile)
Essensium, Mind division . . . . . . . . . . . . . . http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium . . . . . BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
#5 lore raw

PATCH 1/2 Update libaio to 0.3.110

Quoted 67 lines

-----Original Message-----
From: Arnout Vandecappelle [mailto:arnout at mind.be]
Sent: Thursday, 11 February 2016 12:34 AM
To: Alistair Francis <[email protected]>
Cc: buildroot at buildroot.org; Vicente Olivert Riera <[email protected]>
Subject: Re: [Buildroot] [PATCH 1/2] Update libaio to 0.3.110

Quoted 1 line · Alistair Francis

On Wed, Feb 10, 2016 at 1:52 PM, Arnout Vandecappelle <[email protected]>

Quoted 12 lines · wrote:
Quoted 12 lines · Alistair Francis
Quoted 11 lines

Update libaio from 0.3.108 to 0.3.110. This adds AArch64 support.

---
 package/libaio/0001-arches.patch | 671 ---------------------------------------
 package/libaio/Config.in         |   2 +-
 package/libaio/libaio.hash       |   4 +-
 package/libaio/libaio.mk         |   2 +-
 4 files changed, 4 insertions(+), 675 deletions(-)
 delete mode 100644 package/libaio/0001-arches.patch
Quoted 1 line
Quoted 1 line

package/libaio/0001-

Quoted 1 line
package/libaio/0001- renamed from package/libaio/0001-arches.patch +0 -0

arches.patch

Quoted 10 lines
Quoted 10 lines
Quoted 10 lines

deleted file mode 100644
index c85568c..0000000

package/libaio/0001-arches.patch deleted +0 -5
@@ -1,671 +0,0 @@
-Patch borrowed from OpenEmbedded, available at
-recipes/libaio/libaio-0.3.106/00_arches.patch in their source
-tree. The patch has been adapted to remove the ARM-related
-definitions, since they have been merged in later versions of libaio.
-
Quoted 8 lines
Quoted 8 lines

package/libaio/0001-arches.patch line 11

Quoted 6 lines
package/libaio/0001-arches.patch deleted +0 -6
-The patch adds various architecture specific definitions (syscall
-number and macros) for m68k, MIPS, PA/RISC and Sparc. Amongst these,
-Buildroot mostly only cares about MIPS, but it was just easier to take
-the whole OpenEmbedded patch.
-
-Signed-off-by: Thomas Petazzoni <[email protected]>

Why did you remove this patch? As far as I can see, there is nothing

upstream

Quoted 6 lines
Quoted 1 line

that adds mips support. Or is syscall-generic good enough?

This patch no longer applies, so I just assumed that it had been merged.

Just for the record this is the error I get:

Quoted 14 lines

Applying 0001-arches.patch using patch:
patching file src/libaio.h
Hunk #1 FAILED at 83.
1 out of 1 hunk FAILED -- saving rejects to file src/libaio.h.rej patching file src/syscall-m68k.h
patching file src/syscall-mips.h
patching file src/syscall-parisc.h
The next patch would create the file src/syscall-sparc.h, which already exists! Skipping patch.
1 out of 1 hunk ignored
patching file src/syscall.h
Hunk #1 FAILED at 24.
1 out of 1 hunk FAILED -- saving rejects to file src/syscall.h.rej Patch failed! Please fix 0001-arches.patch!

Quoted 3 lines

Looks like it was partially merged then. You'll have to rework the patch so it
applies to the new version. We're only interested in the mips bit, so that should be easy to do.

Ok, I have re-worked the patch and am sending out a V2 now.

Quoted 4 lines

Please also do at least a build test (and preferably a runtime test using qemu)
on MIPS. Or you can ask one of the imgtec people to do a runtime test. (Putting Vicente in Cc for that.)

I have done a build test and I don't see any problems.

Thanks,

Alistair

PS: Sorry if this email is a little mangled, I had to send it from my work account.

Quoted 5 lines

Regards,
Arnout

Quoted 7 lines

--
Arnout Vandecappelle arnout dot vandecappelle at essensium dot com
Senior Embedded Software Architect . . . . . . +32-478-010353 (mobile) Essensium, Mind division . . . . . . . . . . . . . . http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium . . . . . BE 872 984 063 RPR Leuven

LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF

This email and any attachments are intended for the sole use of the named recipient(s) and contain(s) confidential information that may be proprietary, privileged or copyrighted under applicable law. If you are not the intended recipient, do not read, copy, or forward this email message or any attachments. Delete this email message and any attachments immediately.

#6 lore raw

PATCH 2/2 Add Xen 4.6

In reply to Alistair Francis

Add support to compile Xen 4.6 and Xen tools.

---
 package/Config.in     |  1 +
 package/xen/Config.in | 31 +++++++++++++++++++++++++++++++
 package/xen/xen.hash  |  2 ++
 package/xen/xen.mk    | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 83 insertions(+)
 create mode 100644 package/xen/Config.in
 create mode 100644 package/xen/xen.hash
 create mode 100644 package/xen/xen.mk
package/Config.in +1 -0
index 529ad33..4227195 100644
@@ -1616,6 +1616,7 @@ endif
 	source "package/tpm-tools/Config.in"
 	source "package/unscd/Config.in"
 	source "package/util-linux/Config.in"
+	source "package/xen/Config.in"
 endmenu
 
 menu "Text editors and viewers"
package/xen/Config.in new file +31 -0
new file mode 100644
index 0000000..28da69c
@@ -0,0 +1,31 @@
+config BR2_PACKAGE_XEN
+ bool "xen"
+ depends on BR2_arm || BR2_aarch64 || \
+ BR2_i386 || BR2_x86_64
+ depends on BR2_PACKAGE_LIBAIO_ARCH_SUPPORTS
+ depends on !BR2_STATIC_LIBS # dtc (libfdt)
+ depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2
+ depends on BR2_USE_WCHAR # libglib2, util-linux
+ select BR2_PACKAGE_DTC
+ select BR2_PACKAGE_LIBAIO
+ select BR2_PACKAGE_LIBGLIB2
+ select BR2_PACKAGE_NCURSES
+ select BR2_PACKAGE_OPENSSL
+ select BR2_PACKAGE_PIXMAN
+ select BR2_PACKAGE_UTIL_LINUX
+ select BR2_PACKAGE_UTIL_LINUX_LIBUUID
+ select BR2_PACKAGE_YAJL
+ help
+  This builds the Xen hypervisor and toolstack
+
+  http://www.xenproject.org/
+
+if BR2_PACKAGE_XEN
+
+config BR2_PACKAGE_XEN_HYPERVISOR
+ bool "Build the Xen hypervisor"
+
+config BR2_PACKAGE_XEN_TOOLS
+ bool "Build the Xen tools"
+endif
+
package/xen/xen.hash new file +2 -0
new file mode 100644
index 0000000..c124b3a
@@ -0,0 +1,2 @@
+# Locally computed
+sha256 6fa1c2431df55aa5950d248e6093b8c8c0f11c357a0adbd348a2186478e80909 xen-4.6.0.tar.gz
package/xen/xen.mk new file +49 -0

49 lines not on this page · raw message

Signature · 1 line
2.5.0
#7 lore raw

PATCH 2/2 Add Xen 4.6

Quoted 31 lines · Alistair Francis

Add support to compile Xen 4.6 and Xen tools.

---
 package/Config.in     |  1 +
 package/xen/Config.in | 31 +++++++++++++++++++++++++++++++
 package/xen/xen.hash  |  2 ++
 package/xen/xen.mk    | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 83 insertions(+)
 create mode 100644 package/xen/Config.in
 create mode 100644 package/xen/xen.hash
 create mode 100644 package/xen/xen.mk
package/Config.in +1 -0
index 529ad33..4227195 100644
@@ -1616,6 +1616,7 @@ endif
 	source "package/tpm-tools/Config.in"
 	source "package/unscd/Config.in"
 	source "package/util-linux/Config.in"
+	source "package/xen/Config.in"
 endmenu
 
 menu "Text editors and viewers"
package/xen/Config.in new file +0 -0
new file mode 100644
index 0000000..28da69c

package/xen/Config.in line 2

Quoted 2 lines
package/xen/Config.in new file +2 -0
@@ -0,0 +1,31 @@
+config BR2_PACKAGE_XEN
+ bool "xen"

Everything should be indented with a tab, the help text with tab + 2 spaces.

package/xen/Config.in line 8

Quoted 6 lines
package/xen/Config.in new file +6 -0
+ depends on BR2_arm || BR2_aarch64 || \
+ BR2_i386 || BR2_x86_64
+ depends on BR2_PACKAGE_LIBAIO_ARCH_SUPPORTS
+ depends on !BR2_STATIC_LIBS # dtc (libfdt)
+ depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2
+ depends on BR2_USE_WCHAR # libglib2, util-linux

You need to add a coment explaining why xen is not available. See the section
"Dependencies on target and toolchain options" in the manual.

package/xen/Config.in line 17

Quoted 9 lines
package/xen/Config.in new file +9 -0
+ select BR2_PACKAGE_DTC
+ select BR2_PACKAGE_LIBAIO
+ select BR2_PACKAGE_LIBGLIB2
+ select BR2_PACKAGE_NCURSES
+ select BR2_PACKAGE_OPENSSL
+ select BR2_PACKAGE_PIXMAN
+ select BR2_PACKAGE_UTIL_LINUX
+ select BR2_PACKAGE_UTIL_LINUX_LIBUUID
+ select BR2_PACKAGE_YAJL

Are all these needed both for Xen and for the tools?

package/xen/Config.in line 26

Quoted 9 lines
package/xen/Config.in new file +9 -0
+ help
+  This builds the Xen hypervisor and toolstack
+
+  http://www.xenproject.org/
+
+if BR2_PACKAGE_XEN
+
+config BR2_PACKAGE_XEN_HYPERVISOR
+ bool "Build the Xen hypervisor"

It would be nice to add a little help text, for example where the binary will
be put and how it should be used (refering to the appropriate documentation of course).

package/xen/Config.in line 30

Quoted 4 lines
package/xen/Config.in new file +4 -0
+
+config BR2_PACKAGE_XEN_TOOLS
+ bool "Build the Xen tools"
+endif

If neither of them is selected, only some documentation will be installed. So I
think at least one of the should default y.

Quoted 15 lines
package/xen/Config.in new file +1 -0
+
package/xen/xen.hash new file +2 -0
new file mode 100644
index 0000000..c124b3a
@@ -0,0 +1,2 @@
+# Locally computed
+sha256 6fa1c2431df55aa5950d248e6093b8c8c0f11c357a0adbd348a2186478e80909 xen-4.6.0.tar.gz
package/xen/xen.mk new file +0 -0
new file mode 100644
index 0000000..4331136

package/xen/xen.mk line 9

Quoted 9 lines
package/xen/xen.mk new file +9 -0
@@ -0,0 +1,49 @@
+################################################################################
+#
+# Xen
+#
+################################################################################
+
+XEN_VERSION = 4.6.0
+XEN_SITE = http://bits.xensource.com/oss-xen/release/$(XEN_VERSION)
+XEN_INSTALL_IMAGES = YES

Actually, only ifeq ($(BR2_PACKAGE_XEN_HYPERVISOR),y)

package/xen/xen.mk line 11

Quoted 2 lines
package/xen/xen.mk new file +2 -0
+
+XEN_DEPENDENCIES += dtc libaio libglib2 ncurses openssl pixman util-linux yajl

You're missing a LICENSE and LICENSE_FILES.

package/xen/xen.mk line 14

Quoted 3 lines
package/xen/xen.mk new file +3 -0
+
+XEN_MAKE_ENV = \
+ XEN_TARGET_ARCH=arm64 \

I'm sure that xen works on other architectures as well... You'll need to define
a XEN_ARCH that converts the buildroot architecture names into the appropriate xen architecture names. And maybe it isn't even needed, I think it can do some autodetection based on the compiler.

package/xen/xen.mk line 18

Quoted 4 lines
package/xen/xen.mk new file +4 -0
+ CROSS_COMPILE=$(TARGET_CROSS) \
+ CXXFLAGS="$(TARGET_CXXFLAGS) -D_FILE_OFFSET_BITS=64" \
+ CFLAGS="$(TARGET_CFLAGS) -D_FILE_OFFSET_BITS=64" \
+ PKG_CONFIG=$(PKG_CONFIG_HOST_BINARY)

All of this should already be passed into the environment by autotools-package.
So if it is needed, it's really necessary to explain why.

Quoted 4 lines
package/xen/xen.mk new file +4 -0
+
+XEN_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR)
+
+ifeq ($(BR2_PACKAGE_XEN_HYPERVISOR),y)

package/xen/xen.mk line 32

Quoted 10 lines
package/xen/xen.mk new file +10 -0
+XEN_MAKE_OPTS += dist-xen
+
+define XEN_INSTALL_IMAGES_CMDS
+ cp $(@D)/xen/xen $(BINARIES_DIR)
+endef
+else
+XEN_CONF_OPTS += --disable-xen
+endif
+
+XEN_CONF_OPTS += --disable-ocamltools

The unconditional CONF_OPTS should come before all the conditionals.

package/xen/xen.mk line 42

Quoted 10 lines
package/xen/xen.mk new file +10 -0
+
+ifeq ($(BR2_PACKAGE_XEN_TOOLS),y)
+XEN_MAKE_OPTS += dist-tools
+XEN_INSTALL_TARGET_OPTS += install-tools
+
+define XEN_RENAME_INIT_SCRIPTS
+ mv $(TARGET_DIR)/etc/init.d/xencommons $(TARGET_DIR)/etc/init.d/S50xencommons
+ mv $(TARGET_DIR)/etc/init.d/xen-watchdog $(TARGET_DIR)/etc/init.d/S50xen-watchdog
+ mv $(TARGET_DIR)/etc/init.d/xendomains $(TARGET_DIR)/etc/init.d/S60xendomains
+endef

Instead of calling this RENAME_INIT_SCRIPTS, you could put it in
XEN_INSTALL_INIT_SYSV, then you don't need to add it to the hook. Of course, then it won't get done under systemd, but in that case the renaming is useless anyway.

Regards,
Arnout

Quoted 8 lines
package/xen/xen.mk new file +7 -0
+else
+XEN_CONF_OPTS += --disable-tools
+endif
+
+XEN_POST_INSTALL_TARGET_HOOKS += XEN_RENAME_INIT_SCRIPTS
+
+$(eval $(autotools-package))
Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
#8 lore raw

PATCH 2/2 Add Xen 4.6

Quoted 25 lines · Arnout Vandecappelle
Quoted 24 lines · Alistair Francis

Add support to compile Xen 4.6 and Xen tools.

---
 package/Config.in     |  1 +
 package/xen/Config.in | 31 +++++++++++++++++++++++++++++++
 package/xen/xen.hash  |  2 ++
 package/xen/xen.mk    | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 83 insertions(+)
 create mode 100644 package/xen/Config.in
 create mode 100644 package/xen/xen.hash
 create mode 100644 package/xen/xen.mk
package/Config.in +1 -0
index 529ad33..4227195 100644
@@ -1616,6 +1616,7 @@ endif
      source "package/tpm-tools/Config.in"
      source "package/unscd/Config.in"
      source "package/util-linux/Config.in"
+     source "package/xen/Config.in"
 endmenu
 
Quoted 11 lines

package/xen/Config.in line 2

Quoted 9 lines
package/Config.in +0 -0
 menu "Text editors and viewers"
package/xen/Config.in new file +2 -0
new file mode 100644
index 0000000..28da69c
@@ -0,0 +1,31 @@
+config BR2_PACKAGE_XEN
+ bool "xen"

Everything should be indented with a tab, the help text with tab + 2 spaces.

Thanks, fixed

Quoted 10 lines

package/xen/Config.in line 8

Quoted 7 lines
package/xen/Config.in new file +6 -0
+ depends on BR2_arm || BR2_aarch64 || \
+ BR2_i386 || BR2_x86_64
+ depends on BR2_PACKAGE_LIBAIO_ARCH_SUPPORTS
+ depends on !BR2_STATIC_LIBS # dtc (libfdt)
+ depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2
+ depends on BR2_USE_WCHAR # libglib2, util-linux

You need to add a coment explaining why xen is not available. See the section
"Dependencies on target and toolchain options" in the manual.

Fixed

Quoted 12 lines

package/xen/Config.in line 17

Quoted 11 lines
package/xen/Config.in new file +9 -0
+ select BR2_PACKAGE_DTC
+ select BR2_PACKAGE_LIBAIO
+ select BR2_PACKAGE_LIBGLIB2
+ select BR2_PACKAGE_NCURSES
+ select BR2_PACKAGE_OPENSSL
+ select BR2_PACKAGE_PIXMAN
+ select BR2_PACKAGE_UTIL_LINUX
+ select BR2_PACKAGE_UTIL_LINUX_LIBUUID
+ select BR2_PACKAGE_YAJL
Quoted 1 line

Are all these needed both for Xen and for the tools?

It looks like most of them are needed for both, but not all.
http://xenbits.xen.org/gitweb/?p=xen.git;a=blob;f=README;h=5664a93da506ed5a97559e66d60a3d02f9aaee9f;hb=b24ad7ba911a9f0688ab179736476e44c52144f1#l34

I have fixed that.

Quoted 14 lines

package/xen/Config.in line 26

Quoted 10 lines
package/xen/Config.in new file +9 -0
+ help
+  This builds the Xen hypervisor and toolstack
+
+  http://www.xenproject.org/
+
+if BR2_PACKAGE_XEN
+
+config BR2_PACKAGE_XEN_HYPERVISOR
+ bool "Build the Xen hypervisor"

It would be nice to add a little help text, for example where the binary will
be put and how it should be used (refering to the appropriate documentation of course).

I have added some help for both the hypervisor and the tools.

Quoted 8 lines

package/xen/Config.in line 30

Quoted 5 lines
package/xen/Config.in new file +4 -0
+
+config BR2_PACKAGE_XEN_TOOLS
+ bool "Build the Xen tools"
+endif

If neither of them is selected, only some documentation will be installed. So I
think at least one of the should default y.

Fair enough, the hypervisor is enabled by default.

Quoted 19 lines
Quoted 19 lines
package/xen/Config.in new file +1 -0
+
package/xen/xen.hash new file +2 -0
new file mode 100644
index 0000000..c124b3a
@@ -0,0 +1,2 @@
+# Locally computed
+sha256 6fa1c2431df55aa5950d248e6093b8c8c0f11c357a0adbd348a2186478e80909 xen-4.6.0.tar.gz
package/xen/xen.mk new file +3 -0
new file mode 100644
index 0000000..4331136
@@ -0,0 +1,49 @@
+################################################################################
+#
+# Xen
Quoted 8 lines

package/xen/xen.mk line 9

Quoted 6 lines
package/xen/xen.mk new file +6 -0
+#
+################################################################################
+
+XEN_VERSION = 4.6.0
+XEN_SITE = http://bits.xensource.com/oss-xen/release/$(XEN_VERSION)
+XEN_INSTALL_IMAGES = YES

Actually, only ifeq ($(BR2_PACKAGE_XEN_HYPERVISOR),y)

Fixed

Quoted 5 lines

package/xen/xen.mk line 11

Quoted 3 lines
package/xen/xen.mk new file +2 -0
+
+XEN_DEPENDENCIES += dtc libaio libglib2 ncurses openssl pixman util-linux yajl

You're missing a LICENSE and LICENSE_FILES.

Fixed

Quoted 9 lines

package/xen/xen.mk line 14

Quoted 4 lines
package/xen/xen.mk new file +3 -0
+
+XEN_MAKE_ENV = \
+ XEN_TARGET_ARCH=arm64 \

I'm sure that xen works on other architectures as well... You'll need to define
a XEN_ARCH that converts the buildroot architecture names into the appropriate xen architecture names. And maybe it isn't even needed, I think it can do some autodetection based on the compiler.

It seems to work with auto detection.

Quoted 8 lines

package/xen/xen.mk line 18

Quoted 5 lines
package/xen/xen.mk new file +4 -0
+ CROSS_COMPILE=$(TARGET_CROSS) \
+ CXXFLAGS="$(TARGET_CXXFLAGS) -D_FILE_OFFSET_BITS=64" \
+ CFLAGS="$(TARGET_CFLAGS) -D_FILE_OFFSET_BITS=64" \
+ PKG_CONFIG=$(PKG_CONFIG_HOST_BINARY)

All of this should already be passed into the environment by autotools-package.
So if it is needed, it's really necessary to explain why.

Ok, removed

Quoted 17 lines
Quoted 5 lines
package/xen/xen.mk new file +4 -0
+
+XEN_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR)
+
+ifeq ($(BR2_PACKAGE_XEN_HYPERVISOR),y)

package/xen/xen.mk line 32

Quoted 10 lines
package/xen/xen.mk new file +10 -0
+XEN_MAKE_OPTS += dist-xen
+
+define XEN_INSTALL_IMAGES_CMDS
+ cp $(@D)/xen/xen $(BINARIES_DIR)
+endef
+else
+XEN_CONF_OPTS += --disable-xen
+endif
+
+XEN_CONF_OPTS += --disable-ocamltools

The unconditional CONF_OPTS should come before all the conditionals.

Fixed.

Quoted 16 lines

package/xen/xen.mk line 42

Quoted 11 lines
package/xen/xen.mk new file +10 -0
+
+ifeq ($(BR2_PACKAGE_XEN_TOOLS),y)
+XEN_MAKE_OPTS += dist-tools
+XEN_INSTALL_TARGET_OPTS += install-tools
+
+define XEN_RENAME_INIT_SCRIPTS
+ mv $(TARGET_DIR)/etc/init.d/xencommons $(TARGET_DIR)/etc/init.d/S50xencommons
+ mv $(TARGET_DIR)/etc/init.d/xen-watchdog $(TARGET_DIR)/etc/init.d/S50xen-watchdog
+ mv $(TARGET_DIR)/etc/init.d/xendomains $(TARGET_DIR)/etc/init.d/S60xendomains
+endef

Instead of calling this RENAME_INIT_SCRIPTS, you could put it in
XEN_INSTALL_INIT_SYSV, then you don't need to add it to the hook. Of course, then it won't get done under systemd, but in that case the renaming is useless anyway.

Ok, thanks. I have fixed this as well.

Thanks for the comments, sorry it has taken me so long to look at.

Thanks,

Alistair

Quoted 22 lines

Regards,
Arnout

package/xen/xen.mk line 49

Quoted 8 lines
package/xen/xen.mk new file +7 -0
+else
+XEN_CONF_OPTS += --disable-tools
+endif
+
+XEN_POST_INSTALL_TARGET_HOOKS += XEN_RENAME_INIT_SCRIPTS
+
+$(eval $(autotools-package))

--

Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
#9 lore raw

PATCH 2/2 Add Xen 4.6

In reply to Alistair Francis

Dear Alistair Francis,

Quoted 3 lines · Alistair Francis

Add support to compile Xen 4.6 and Xen tools.

Since you received some comments from Arnout Vandecappelle in your patch, I've marked your patch as "Changes Requested" in our patch tracking system. This means that we will no longer see your patch in our list of pending patches, until you send an updated version that takes into account the comments from Arnout.

Thanks!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#10 lore raw

PATCH 2/2 Add Xen 4.6

Quoted 5 lines · Thomas Petazzoni

Dear Alistair Francis,

Quoted 2 lines · Alistair Francis

Add support to compile Xen 4.6 and Xen tools.

Quoted 7 lines
Quoted 1 line

Since you received some comments from Arnout Vandecappelle in your patch, I've marked your patch as "Changes Requested" in our patch tracking system. This means that we will no longer see your patch in our list of pending patches, until you send an updated version that takes into account the comments from Arnout.

That's no problem, that's my fault for being so slow. I'm sending a V2 now though.

Thanks,

Alistair

Quoted 8 lines

Thanks!

Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com