diff options
author | Riku Voipio <riku.voipio@linaro.org> | 2013-01-21 11:50:03 +0200 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2013-01-28 12:25:34 +0000 |
commit | 7255c43b6e545a4c15c3cd57f6c240668a77786a (patch) | |
tree | 6938ddb27d70334e8b0da57d8fafbdc514f0ffc1 | |
parent | ca9d10543f22b60ba32fd78130970591782b880c (diff) | |
download | openembedded-core-7255c43b6e545a4c15c3cd57f6c240668a77786a.tar.gz openembedded-core-7255c43b6e545a4c15c3cd57f6c240668a77786a.tar.bz2 openembedded-core-7255c43b6e545a4c15c3cd57f6c240668a77786a.zip |
libaio: add aarch64 support
Picking up a patch from gentoo and adding aarch64 defines
is enough to fix libaio and pass the harness testsuite
Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
-rw-r--r-- | meta/recipes-extended/libaio/libaio/libaio-aarch64.patch | 28 | ||||
-rw-r--r-- | meta/recipes-extended/libaio/libaio/libaio-generic.patch | 65 | ||||
-rw-r--r-- | meta/recipes-extended/libaio/libaio_0.3.109.bb | 5 |
3 files changed, 97 insertions, 1 deletions
diff --git a/meta/recipes-extended/libaio/libaio/libaio-aarch64.patch b/meta/recipes-extended/libaio/libaio/libaio-aarch64.patch new file mode 100644 index 0000000000..e3d10585de --- /dev/null +++ b/meta/recipes-extended/libaio/libaio/libaio-aarch64.patch @@ -0,0 +1,28 @@ +Upstream-Status: Submitted + +Signed-off-by: Riku Voipio <riku.voipio@linaro.org> + +--- + harness/cases/16.t | 2 ++ + src/libaio.h | 10 ++++++++++ + 2 files changed, 12 insertions(+) + +--- a/src/libaio.h ++++ b/src/libaio.h +@@ -107,6 +107,16 @@ + # else + # error "neither mipseb nor mipsel?" + # endif ++#elif defined(__aarch64__) ++# if defined (__AARCH64EB__) /* big endian, 64 bits */ ++#define PADDED(x, y) unsigned y; x ++#define PADDEDptr(x,y) x ++#define PADDEDul(x, y) unsigned long x ++# elif defined(__AARCH64EL__) /* little endian, 64 bits */ ++#define PADDED(x, y) x, y ++#define PADDEDptr(x, y) x ++#define PADDEDul(x, y) unsigned long x ++# endif + #else + #error endian? + #endif diff --git a/meta/recipes-extended/libaio/libaio/libaio-generic.patch b/meta/recipes-extended/libaio/libaio/libaio-generic.patch new file mode 100644 index 0000000000..3fcf541626 --- /dev/null +++ b/meta/recipes-extended/libaio/libaio/libaio-generic.patch @@ -0,0 +1,65 @@ +From 5e96c73d5dfbdea8d0be82b7f3fc8d6735e5dfa7 Mon Sep 17 00:00:00 2001 +From: Mike Frysinger <vapier@gentoo.org> +Date: Sun, 17 Jan 2010 17:07:48 -0500 +Subject: [PATCH] add a generic syscall() fallback + +Upstream-Status: Pending + +Signed-off-by: Mike Frysinger <vapier@gentoo.org> +Signed-off-by: Riku Voipio <riku.voipio@linaro.org> +--- + src/syscall-generic.h | 29 +++++++++++++++++++++++++++++ + src/syscall.h | 3 ++- + 2 files changed, 31 insertions(+), 1 deletions(-) + create mode 100644 src/syscall-generic.h + +diff --git a/src/syscall-generic.h b/src/syscall-generic.h +new file mode 100644 +index 0000000..24d7c7c +--- /dev/null ++++ b/src/syscall-generic.h +@@ -0,0 +1,29 @@ ++#include <errno.h> ++#include <unistd.h> ++#include <sys/syscall.h> ++ ++#define _body_io_syscall(sname, args...) \ ++{ \ ++ int ret = syscall(__NR_##sname, ## args); \ ++ return ret < 0 ? -errno : ret; \ ++} ++ ++#define io_syscall1(type,fname,sname,type1,arg1) \ ++type fname(type1 arg1) \ ++_body_io_syscall(sname, (long)arg1) ++ ++#define io_syscall2(type,fname,sname,type1,arg1,type2,arg2) \ ++type fname(type1 arg1,type2 arg2) \ ++_body_io_syscall(sname, (long)arg1, (long)arg2) ++ ++#define io_syscall3(type,fname,sname,type1,arg1,type2,arg2,type3,arg3) \ ++type fname(type1 arg1,type2 arg2,type3 arg3) \ ++_body_io_syscall(sname, (long)arg1, (long)arg2, (long)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) \ ++_body_io_syscall(sname, (long)arg1, (long)arg2, (long)arg3, (long)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) \ ++_body_io_syscall(sname, (long)arg1, (long)arg2, (long)arg3, (long)arg4, (long)arg5) +diff --git a/src/syscall.h b/src/syscall.h +index 78becfe..d954af0 100644 +--- a/src/syscall.h ++++ b/src/syscall.h +@@ -25,5 +25,6 @@ + #elif defined(__arm__) + #include "syscall-arm.h" + #else +-#error "add syscall-arch.h" ++#warning "using generic syscall method" ++#include "syscall-generic.h" + #endif +-- +1.7.3.1 + diff --git a/meta/recipes-extended/libaio/libaio_0.3.109.bb b/meta/recipes-extended/libaio/libaio_0.3.109.bb index 0712d04e71..afe9adff65 100644 --- a/meta/recipes-extended/libaio/libaio_0.3.109.bb +++ b/meta/recipes-extended/libaio/libaio_0.3.109.bb @@ -11,7 +11,10 @@ SRC_URI = "${DEBIAN_MIRROR}/main/liba/libaio/libaio_${PV}.orig.tar.gz \ file://00_arches.patch \ file://toolchain.patch \ file://destdir.patch \ - file://libaio_fix_for_x32.patch" + file://libaio_fix_for_x32.patch \ + file://libaio-generic.patch \ + file://libaio-aarch64.patch \ +" SRC_URI[md5sum] = "435a5b16ca6198eaf01155263d855756" SRC_URI[sha256sum] = "bf4a457253cbaab215aea75cb6e18dc8d95bbd507e9920661ff9bdd288c8778d" |