mirror of
https://git.yoctoproject.org/poky
synced 2026-05-08 05:09:24 +00:00
libaio: add aarch64 support
Picking up a patch from gentoo and adding aarch64 defines is enough to fix libaio and pass the harness testsuite (From OE-Core rev: 7255c43b6e545a4c15c3cd57f6c240668a77786a) Signed-off-by: Riku Voipio <riku.voipio@linaro.org> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
f876c13499
commit
a921ed0bc0
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user