summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-libs/libaio')
-rw-r--r--dev-libs/libaio/Manifest1
-rw-r--r--dev-libs/libaio/files/libaio-0.3.106-build.patch17
-rw-r--r--dev-libs/libaio/files/libaio-0.3.107-ar-ranlib.patch17
-rw-r--r--dev-libs/libaio/files/libaio-0.3.107-generic-arch.patch101
-rw-r--r--dev-libs/libaio/files/libaio-0.3.107-install-to-slash.patch31
-rw-r--r--dev-libs/libaio/files/libaio-0.3.107-sparc.patch151
-rw-r--r--dev-libs/libaio/files/libaio-0.3.109-generic-arch.patch62
-rw-r--r--dev-libs/libaio/files/libaio-0.3.109-install.patch45
-rw-r--r--dev-libs/libaio/files/libaio-0.3.109-testcase-8.patch19
-rw-r--r--dev-libs/libaio/files/libaio-0.3.109-unify-bits-endian.patch73
-rw-r--r--dev-libs/libaio/files/libaio-0.3.109-x32.patch63
-rw-r--r--dev-libs/libaio/files/libaio-0.3.110-cppflags.patch25
-rw-r--r--dev-libs/libaio/files/libaio-0.3.110-optional-werror.patch30
-rw-r--r--dev-libs/libaio/libaio-0.3.110.ebuild82
-rw-r--r--dev-libs/libaio/metadata.xml12
15 files changed, 729 insertions, 0 deletions
diff --git a/dev-libs/libaio/Manifest b/dev-libs/libaio/Manifest
new file mode 100644
index 000000000000..e55d7cfdf9ff
--- /dev/null
+++ b/dev-libs/libaio/Manifest
@@ -0,0 +1 @@
+DIST libaio-0.3.110.tar.gz 42270 SHA256 e019028e631725729376250e32b473012f7cb68e1f7275bfc1bbcdd0f8745f7e SHA512 664295d330d6e9adc005e2331e77582619625b479ffc2b81728ba6a682487380ee936079c4a69d35144b458bbe35c612f4ed9b32e913bd7e109b824345763eb3 WHIRLPOOL 21666b6d14e8091a52941b54b1c6d882dd495ed2d5ca9047a7951ee44e90aa33348ade0d3e4e7f12076a264b64b354a06cd96433cb39e18fc87b3655b59767af
diff --git a/dev-libs/libaio/files/libaio-0.3.106-build.patch b/dev-libs/libaio/files/libaio-0.3.106-build.patch
new file mode 100644
index 000000000000..812c2a4b0ea4
--- /dev/null
+++ b/dev-libs/libaio/files/libaio-0.3.106-build.patch
@@ -0,0 +1,17 @@
+--- src/Makefile.orig 2006-07-09 19:46:41.000000000 -0700
++++ src/Makefile 2006-07-09 19:51:00.000000000 -0700
+@@ -2,11 +2,10 @@
+ includedir=$(prefix)/include
+ libdir=$(prefix)/lib
+
+-ARCH := $(shell uname -m | sed -e s/i.86/i386/)
+-CFLAGS := -nostdlib -nostartfiles -Wall -I. -g -fomit-frame-pointer -O2 -fPIC
+-SO_CFLAGS=-shared $(CFLAGS)
++CFLAGS += -nostdlib -nostartfiles -Wall -I. -fPIC
++SO_CFLAGS=-shared $(CFLAGS)
+ L_CFLAGS=$(CFLAGS)
+-LINK_FLAGS=
++LINK_FLAGS=-lgcc -lrt $(LDFLAGS)
+
+ soname=libaio.so.1
+ minor=0
diff --git a/dev-libs/libaio/files/libaio-0.3.107-ar-ranlib.patch b/dev-libs/libaio/files/libaio-0.3.107-ar-ranlib.patch
new file mode 100644
index 000000000000..d1ec1403a0e9
--- /dev/null
+++ b/dev-libs/libaio/files/libaio-0.3.107-ar-ranlib.patch
@@ -0,0 +1,17 @@
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -42,10 +42,12 @@
+ $(CC) $(L_CFLAGS) -c -o $@ $<
+
+
++AR ?= ar
++RANLIB ?= ranlib
+ libaio.a: $(libaio_objs)
+ rm -f libaio.a
+- ar r libaio.a $^
+- ranlib libaio.a
++ $(AR) r libaio.a $^
++ $(RANLIB) libaio.a
+
+ $(libname): $(libaio_sobjs) libaio.map
+ $(CC) $(SO_CFLAGS) -Wl,--version-script=libaio.map -Wl,-soname,$(soname) -o $@ $(libaio_sobjs) $(LINK_FLAGS)
diff --git a/dev-libs/libaio/files/libaio-0.3.107-generic-arch.patch b/dev-libs/libaio/files/libaio-0.3.107-generic-arch.patch
new file mode 100644
index 000000000000..6ecd7f10d5ba
--- /dev/null
+++ b/dev-libs/libaio/files/libaio-0.3.107-generic-arch.patch
@@ -0,0 +1,101 @@
+for arches that lack magic assembly (arm, blackfin, etc...), implement support
+using standard syscall() function
+
+--- src/libaio.h
++++ src/libaio.h
+@@ -49,38 +49,34 @@ typedef enum io_iocb_cmd {
+ IO_CMD_PWRITEV = 8,
+ } io_iocb_cmd_t;
+
+-#if defined(__i386__) /* little endian, 32 bits */
++/* little endian, 32 bits */
++#if defined(__i386__) || defined(__sh__) || defined(__bfin__) || \
++ defined(__ARMEL__) || defined(__MIPSEL__) || defined(__cris__)
+ #define PADDED(x, y) x; unsigned y
+ #define PADDEDptr(x, y) x; unsigned y
+ #define PADDEDul(x, y) unsigned long x; unsigned y
++
++/* little endian, 64 bits */
+ #elif defined(__ia64__) || defined(__x86_64__) || defined(__alpha__)
+ #define PADDED(x, y) x, y
+ #define PADDEDptr(x, y) x
+ #define PADDEDul(x, y) unsigned long x
+-#elif defined(__powerpc64__) /* big endian, 64 bits */
++
++/* big endian, 64 bits */
++#elif defined(__powerpc64__) || defined(__s390x__) || \
++ (defined(__sparc__) && defined(__arch64__))
+ #define PADDED(x, y) unsigned y; x
+ #define PADDEDptr(x,y) x
+ #define PADDEDul(x, y) unsigned long x
+-#elif defined(__PPC__) /* big endian, 32 bits */
++
++/* big endian, 32 bits */
++#elif defined(__PPC__) || defined(__s390__) || defined(__ARMEB__) || \
++ defined(__MIPSEB__) || defined(__sparc__) || defined(__m68k__) || \
++ defined(__hppa__) || defined(__frv__) || defined(__avr32__)
+ #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(__s390x__) /* 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(__s390__) /* 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__) && defined(__arch64__) /* 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(__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
++
+ #else
+ #error endian?
+ #endif
+--- /dev/null
++++ 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)
+--- src/syscall.h
++++ src/syscall.h
+@@ -25,5 +25,6 @@
+ #elif defined(__sparc__)
+ #include "syscall-sparc.h"
+ #else
+-#error "add syscall-arch.h"
++#warning "using generic syscall method"
++#include "syscall-generic.h"
+ #endif
diff --git a/dev-libs/libaio/files/libaio-0.3.107-install-to-slash.patch b/dev-libs/libaio/files/libaio-0.3.107-install-to-slash.patch
new file mode 100644
index 000000000000..c47273631f05
--- /dev/null
+++ b/dev-libs/libaio/files/libaio-0.3.107-install-to-slash.patch
@@ -0,0 +1,31 @@
+based on fedora ptach
+
+--- libaio-0.3.107/src/Makefile
++++ libaio-0.3.107/src/Makefile
+@@ -1,6 +1,7 @@
+ prefix=/usr
+-includedir=$(prefix)/include
+-libdir=$(prefix)/lib
++includedir=/usr/include
++libdir=/usr/lib
++usrlibdir=$(libdir)
+
+ ARCH := $(shell uname -m | sed -e s/i.86/i386/)
+ CFLAGS := -nostdlib -nostartfiles -Wall -I. -g -fomit-frame-pointer -O2 -fPIC
+@@ -51,11 +52,11 @@
+ $(CC) $(SO_CFLAGS) -Wl,--version-script=libaio.map -Wl,-soname=$(soname) -o $@ $(libaio_sobjs) $(LINK_FLAGS)
+
+ install: $(all_targets)
+- install -D -m 644 libaio.h $(includedir)/libaio.h
+- install -D -m 644 libaio.a $(libdir)/libaio.a
+- install -D -m 755 $(libname) $(libdir)/$(libname)
+- ln -sf $(libname) $(libdir)/$(soname)
+- ln -sf $(libname) $(libdir)/libaio.so
++ install -D -m 644 libaio.h $(DESTDIR)$(includedir)/libaio.h
++ install -D -m 644 libaio.a $(DESTDIR)$(usrlibdir)/libaio.a
++ install -D -m 755 $(libname) $(DESTDIR)$(libdir)/$(libname)
++ ln -sf $(libname) $(DESTDIR)$(usrlibdir)/$(soname)
++ ln -sf $(libname) $(DESTDIR)$(usrlibdir)/libaio.so
+
+ $(libaio_objs): libaio.h
+
diff --git a/dev-libs/libaio/files/libaio-0.3.107-sparc.patch b/dev-libs/libaio/files/libaio-0.3.107-sparc.patch
new file mode 100644
index 000000000000..92bcd5325e86
--- /dev/null
+++ b/dev-libs/libaio/files/libaio-0.3.107-sparc.patch
@@ -0,0 +1,151 @@
+ripped from fedora
+
+--- libaio-0.3.107/src/libaio.h
++++ libaio-0.3.107/src/libaio.h
+@@ -73,6 +73,14 @@
+ #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__) && defined(__arch64__) /* 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(__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
+ #else
+ #error endian?
+ #endif
+--- libaio-0.3.107/src/syscall.h
++++ libaio-0.3.107/src/syscall.h
+@@ -22,6 +22,8 @@
+ #include "syscall-s390.h"
+ #elif defined(__alpha__)
+ #include "syscall-alpha.h"
++#elif defined(__sparc__)
++#include "syscall-sparc.h"
+ #else
+ #error "add syscall-arch.h"
+ #endif
+--- libaio-0.3.107/src/syscall-sparc.h
++++ libaio-0.3.107/src/syscall-sparc.h
+@@ -0,0 +1,118 @@
++#include <errno.h>
++
++#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; \
++errno = -__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; \
++errno = -__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; \
++errno = -__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; \
++errno = -__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; \
++errno = -__res; \
++return -1; \
++}
diff --git a/dev-libs/libaio/files/libaio-0.3.109-generic-arch.patch b/dev-libs/libaio/files/libaio-0.3.109-generic-arch.patch
new file mode 100644
index 000000000000..fea3aeeee420
--- /dev/null
+++ b/dev-libs/libaio/files/libaio-0.3.109-generic-arch.patch
@@ -0,0 +1,62 @@
+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
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.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/dev-libs/libaio/files/libaio-0.3.109-install.patch b/dev-libs/libaio/files/libaio-0.3.109-install.patch
new file mode 100644
index 000000000000..9c049fcbf5cd
--- /dev/null
+++ b/dev-libs/libaio/files/libaio-0.3.109-install.patch
@@ -0,0 +1,45 @@
+From 2e34caef82a2367a85de4f06daf5e5a92f61e845 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Sun, 17 Jan 2010 17:10:14 -0500
+Subject: [PATCH] fix up install paths
+
+This is similar to the Fedora patch, but this uses more common conventions
+like "DESTDIR" instead of "destdir".
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ src/Makefile | 11 ++++++-----
+ 1 files changed, 6 insertions(+), 5 deletions(-)
+
+diff --git a/src/Makefile b/src/Makefile
+index 687c7be..ee431a1 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -1,6 +1,7 @@
+ prefix=/usr
+ includedir=$(prefix)/include
+ libdir=$(prefix)/lib
++usrlibdir=$(libdir)
+
+ CFLAGS ?= -g -fomit-frame-pointer -O2
+ CFLAGS += -nostdlib -nostartfiles -Wall -I. -fPIC
+@@ -53,11 +54,11 @@ $(libname): $(libaio_sobjs) libaio.map
+ $(CC) $(SO_CFLAGS) -Wl,--version-script=libaio.map -Wl,-soname,$(soname) -o $@ $(libaio_sobjs) $(LINK_FLAGS)
+
+ install: $(all_targets)
+- install -D -m 644 libaio.h $(includedir)/libaio.h
+- install -D -m 644 libaio.a $(libdir)/libaio.a
+- install -D -m 755 $(libname) $(libdir)/$(libname)
+- ln -sf $(libname) $(libdir)/$(soname)
+- ln -sf $(libname) $(libdir)/libaio.so
++ install -D -m 644 libaio.h $(DESTDIR)$(includedir)/libaio.h
++ install -D -m 644 libaio.a $(DESTDIR)$(usrlibdir)/libaio.a
++ install -D -m 755 $(libname) $(DESTDIR)$(libdir)/$(libname)
++ ln -sf $(libname) $(DESTDIR)$(usrlibdir)/$(soname)
++ ln -sf $(libname) $(DESTDIR)$(usrlibdir)/libaio.so
+
+ $(libaio_objs): libaio.h
+
+--
+1.7.3.1
+
diff --git a/dev-libs/libaio/files/libaio-0.3.109-testcase-8.patch b/dev-libs/libaio/files/libaio-0.3.109-testcase-8.patch
new file mode 100644
index 000000000000..de66f2110f22
--- /dev/null
+++ b/dev-libs/libaio/files/libaio-0.3.109-testcase-8.patch
@@ -0,0 +1,19 @@
+Do not ignore return value of ftruncate(): testcases are compiled with -Werror,
+and ftruncate is declared with attribute warn_unused_result.
+--- harness/cases/8.t.orig 2012-03-09 16:40:04.074168070 +0100
++++ harness/cases/8.t 2012-03-09 16:40:57.777278646 +0100
+@@ -9,12 +9,13 @@
+ {
+ long long min = 0, max = 9223372036854775807LL;
+ char c = 0;
++ int ret;
+
+ while (max - min > 1) {
+ if (pwrite64(fd, &c, 1, (min + max) / 2) == -1)
+ max = (min + max) / 2;
+ else {
+- ftruncate(fd, 0);
++ ret = ftruncate(fd, 0); assert(ret == 0);
+ min = (min + max) / 2;
+ }
+ }
diff --git a/dev-libs/libaio/files/libaio-0.3.109-unify-bits-endian.patch b/dev-libs/libaio/files/libaio-0.3.109-unify-bits-endian.patch
new file mode 100644
index 000000000000..1a4e6ef12303
--- /dev/null
+++ b/dev-libs/libaio/files/libaio-0.3.109-unify-bits-endian.patch
@@ -0,0 +1,73 @@
+From be673c7afd7a86b89fbe2e09c758f2de3482d19b Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Sun, 17 Jan 2010 17:07:24 -0500
+Subject: [PATCH] unify LE/BE 32/64bit logic and add more arches
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ src/libaio.h | 36 +++++++++++++++---------------------
+ 1 files changed, 15 insertions(+), 21 deletions(-)
+
+diff --git a/src/libaio.h b/src/libaio.h
+index ffe8259..4a6c9fb 100644
+--- a/src/libaio.h
++++ b/src/libaio.h
+@@ -49,40 +49,34 @@ typedef enum io_iocb_cmd {
+ IO_CMD_PWRITEV = 8,
+ } io_iocb_cmd_t;
+
+-#if defined(__i386__) /* little endian, 32 bits */
++/* little endian, 32 bits */
++#if defined(__i386__) || defined(__sh__) || defined(__bfin__) || \
++ defined(__ARMEL__) || defined(__MIPSEL__) || defined(__cris__)
+ #define PADDED(x, y) x; unsigned y
+ #define PADDEDptr(x, y) x; unsigned y
+ #define PADDEDul(x, y) unsigned long x; unsigned y
++
++/* little endian, 64 bits */
+ #elif defined(__ia64__) || defined(__x86_64__) || defined(__alpha__)
+ #define PADDED(x, y) x, y
+ #define PADDEDptr(x, y) x
+ #define PADDEDul(x, y) unsigned long x
+-#elif defined(__powerpc64__) /* 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(__PPC__) /* 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(__s390x__) /* big endian, 64 bits */
++
++/* big endian, 64 bits */
++#elif defined(__powerpc64__) || defined(__s390x__) || \
++ (defined(__sparc__) && defined(__arch64__))
+ #define PADDED(x, y) unsigned y; x
+ #define PADDEDptr(x,y) x
+ #define PADDEDul(x, y) unsigned long x
+-#elif defined(__s390__) /* 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(__arm__)
+-# if defined (__ARMEB__) /* big endian, 32 bits */
++
++/* big endian, 32 bits */
++#elif defined(__PPC__) || defined(__s390__) || defined(__ARMEB__) || \
++ defined(__MIPSEB__) || defined(__sparc__) || defined(__m68k__) || \
++ defined(__hppa__) || defined(__frv__) || defined(__avr32__)
+ #define PADDED(x, y) unsigned y; x
+ #define PADDEDptr(x, y) unsigned y; x
+ #define PADDEDul(x, y) unsigned y; unsigned long x
+-# else /* 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
+-# endif
++
+ #else
+ #error endian?
+ #endif
+--
+1.7.3.1
+
diff --git a/dev-libs/libaio/files/libaio-0.3.109-x32.patch b/dev-libs/libaio/files/libaio-0.3.109-x32.patch
new file mode 100644
index 000000000000..1d2c2a9050fa
--- /dev/null
+++ b/dev-libs/libaio/files/libaio-0.3.109-x32.patch
@@ -0,0 +1,63 @@
+http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=f5c071d93c9e6f57930bce56b1e4f009c160a826
+
+Upstream-Status: Pending
+
+Properly load arguments 5 an 6 for x86-64 syscall
+Use asm ("r10") and asm ("r8") to load arguments 5 an 6 for x86-64
+syscall so that it works with both x32 and x86-64.
+
+Received this patch from H.J. Lu <hjl.tools@gmail.com>
+
+Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
+2011/12/02
+
+--- libaio-0.3.109/src/syscall-x86_64.h.x32 2009-10-09 11:17:02.000000000 -0700
++++ libaio-0.3.109/src/syscall-x86_64.h 2011-12-02 09:09:07.537603224 -0800
+@@ -1,8 +1,18 @@
++#ifndef __NR_io_setup
+ #define __NR_io_setup 206
++#endif
++#ifndef __NR_io_destroy
+ #define __NR_io_destroy 207
++#endif
++#ifndef __NR_io_getevents
+ #define __NR_io_getevents 208
++#endif
++#ifndef __NR_io_submit
+ #define __NR_io_submit 209
++#endif
++#ifndef __NR_io_cancel
+ #define __NR_io_cancel 210
++#endif
+
+ #define __syscall_clobber "r11","rcx","memory"
+ #define __syscall "syscall"
+@@ -42,10 +52,11 @@ return __res; \
+ type fname (type1 arg1, type2 arg2, type3 arg3, type4 arg4) \
+ { \
+ long __res; \
+-__asm__ volatile ("movq %5,%%r10 ;" __syscall \
++register long __a4 asm ("r10") = (long) arg4; \
++__asm__ volatile (__syscall \
+ : "=a" (__res) \
+ : "0" (__NR_##sname),"D" ((long)(arg1)),"S" ((long)(arg2)), \
+- "d" ((long)(arg3)),"g" ((long)(arg4)) : __syscall_clobber,"r10" ); \
++ "d" ((long)(arg3)),"r" (__a4)); \
+ return __res; \
+ }
+
+@@ -54,10 +65,11 @@ return __res; \
+ type fname (type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5) \
+ { \
+ long __res; \
+-__asm__ volatile ("movq %5,%%r10 ; movq %6,%%r8 ; " __syscall \
++register long __a4 asm ("r10") = (long) arg4; \
++register long __a5 asm ("r8") = (long) arg5; \
++__asm__ volatile ( __syscall \
+ : "=a" (__res) \
+ : "0" (__NR_##sname),"D" ((long)(arg1)),"S" ((long)(arg2)), \
+- "d" ((long)(arg3)),"g" ((long)(arg4)),"g" ((long)(arg5)) : \
+- __syscall_clobber,"r8","r10" ); \
++ "d" ((long)(arg3)),"r" (__a4),"r" (__a5)); \
+ return __res; \
+ }
diff --git a/dev-libs/libaio/files/libaio-0.3.110-cppflags.patch b/dev-libs/libaio/files/libaio-0.3.110-cppflags.patch
new file mode 100644
index 000000000000..4567ac946681
--- /dev/null
+++ b/dev-libs/libaio/files/libaio-0.3.110-cppflags.patch
@@ -0,0 +1,25 @@
+From 3bf96bb62370035dba18d4b25459406b32365cfc Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Wed, 26 Mar 2014 23:10:18 -0400
+Subject: [PATCH] respect env CPPFLAGS
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ src/Makefile | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/Makefile b/src/Makefile
+index 49f448f..b918c8b 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -5,6 +5,7 @@ usrlibdir=$(libdir)
+
+ CFLAGS ?= -g -fomit-frame-pointer -O2
+ CFLAGS += -nostdlib -nostartfiles -Wall -I. -fPIC
++CFLAGS += $(CPPFLAGS)
+ SO_CFLAGS=-shared $(CFLAGS)
+ L_CFLAGS=$(CFLAGS)
+ LINK_FLAGS=
+--
+1.9.1
+
diff --git a/dev-libs/libaio/files/libaio-0.3.110-optional-werror.patch b/dev-libs/libaio/files/libaio-0.3.110-optional-werror.patch
new file mode 100644
index 000000000000..2933cf5244bc
--- /dev/null
+++ b/dev-libs/libaio/files/libaio-0.3.110-optional-werror.patch
@@ -0,0 +1,30 @@
+From 0cc7dc108d0b2288b40d82bb2fd1fd8bdc08f764 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Wed, 26 Mar 2014 23:07:58 -0400
+Subject: [PATCH] make -Werror into an optional flag
+
+This lets distros disable the flag as random errors might come up with
+different compiler flags and older/newer toolchain versions.
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ harness/Makefile | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/harness/Makefile b/harness/Makefile
+index 2a88e71..cf8c90d 100644
+--- a/harness/Makefile
++++ b/harness/Makefile
+@@ -6,7 +6,8 @@ PROGS:=$(PARTPROGS) $(EXTRAPROGS)
+ HARNESS_SRCS:=main.c
+ # io_queue.c
+
+-CFLAGS+=-Wall -Werror -I../src -g -O
++CFLAGS_WERROR?=-Werror
++CFLAGS+=-Wall $(CFLAGS_WERROR) -I../src -g -O
+ #-lpthread -lrt
+
+ all: $(PROGS)
+--
+1.9.1
+
diff --git a/dev-libs/libaio/libaio-0.3.110.ebuild b/dev-libs/libaio/libaio-0.3.110.ebuild
new file mode 100644
index 000000000000..a772baf97c40
--- /dev/null
+++ b/dev-libs/libaio/libaio-0.3.110.ebuild
@@ -0,0 +1,82 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit eutils multilib-minimal toolchain-funcs flag-o-matic
+
+DESCRIPTION="Asynchronous input/output library that uses the kernels native interface"
+HOMEPAGE="https://git.fedorahosted.org/cgit/libaio.git/ http://lse.sourceforge.net/io/aio.html"
+SRC_URI="https://fedorahosted.org/releases/${PN:0:1}/${PN:1:1}/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-linux ~x86-linux"
+IUSE="static-libs test"
+
+src_prepare() {
+ epatch \
+ "${FILESDIR}"/${PN}-0.3.109-install.patch \
+ "${FILESDIR}"/${PN}-0.3.109-x32.patch \
+ "${FILESDIR}"/${PN}-0.3.109-testcase-8.patch \
+ "${FILESDIR}"/${PN}-0.3.110-cppflags.patch \
+ "${FILESDIR}"/${PN}-0.3.110-optional-werror.patch
+
+ local sed_args=(
+ -e "/^prefix=/s:/usr:${EPREFIX}/usr:"
+ -e '/^libdir=/s:lib$:$(ABI_LIBDIR):'
+ )
+ if ! use static-libs; then
+ sed_args+=( -e '/\tinstall .*\/libaio.a/d' )
+ # Tests require the static library to be built.
+ use test || sed_args+=( -e '/^all_targets +=/s/ libaio.a//' )
+ fi
+ sed -i "${sed_args[@]}" src/Makefile Makefile || die
+
+ multilib_copy_sources
+}
+
+multilib_src_configure() {
+ if use arm ; then
+ # When building for thumb, we can't allow frame pointers.
+ # http://crbug.com/464517
+ if $(tc-getCPP) ${CFLAGS} ${CPPFLAGS} - <<<$'#ifndef __thumb__\n#error\n#endif' >&/dev/null ; then
+ append-flags -fomit-frame-pointer
+ fi
+ fi
+}
+
+_emake() {
+ CC=$(tc-getCC) \
+ AR=$(tc-getAR) \
+ RANLIB=$(tc-getRANLIB) \
+ ABI_LIBDIR=$(get_libdir) \
+ CFLAGS_WERROR= \
+ emake "$@"
+}
+
+multilib_src_compile() {
+ _emake
+}
+
+multilib_src_test() {
+ mkdir -p testdir || die
+ # 'make check' breaks with sandbox, 'make partcheck' works
+ _emake partcheck prefix="${S}/src" libdir="${S}/src"
+}
+
+multilib_src_install() {
+ _emake install DESTDIR="${D}"
+}
+
+multilib_src_install_all() {
+ doman man/*
+ dodoc ChangeLog TODO
+
+ # move crap to / for multipath-tools #325355
+ gen_usr_ldscript -a aio
+
+ # This lib is a bare minimal shim on top of kernel syscalls.
+ export QA_DT_NEEDED=$(find "${ED}" -type f -name 'libaio.so.*' -printf '/%P\n')
+}
diff --git a/dev-libs/libaio/metadata.xml b/dev-libs/libaio/metadata.xml
new file mode 100644
index 000000000000..f739e440b654
--- /dev/null
+++ b/dev-libs/libaio/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>proxy-maintainers</herd>
+<maintainer>
+ <email>gokturk@binghamton.edu</email>
+ <name>Gokturk Yuksek</name>
+ <description>Primary Maintainer, Assign bugs</description>
+</maintainer>
+<longdescription>Library to provide user-level kernel Asynchronous I/O (AIO)
+ support for Linux (needs kernel patches as of 2.6.12)</longdescription>
+</pkgmetadata>