From: Phil Staub <Phil.Staub@windriver.com>
To: Saul Wold <sgw@linux.intel.com>
Cc: openembedded-core@lists.openembedded.org
Subject: Re: [PATCH] mips: Fix libaio system call interface
Date: Wed, 30 Jan 2013 08:35:27 -0800 [thread overview]
Message-ID: <51094BCF.8080802@windriver.com> (raw)
In-Reply-To: <5108A4D9.6010702@linux.intel.com>
On 01/29/2013 08:43 PM, Saul Wold wrote:
> On 01/29/2013 11:28 AM, Phil Staub wrote:
>> The io_syscallX wrappers in syscall-mips.h discard error return status
>> by overwriting the value returned in v0 from the system call with -1.
>>
>> Modify this behavior by returning the negative of the return value on
>> error (as identified by a3 != 0). This convention is consistent with
>> the behavior observed in syscall-ppc.h.
>>
>> For a description of the MIPS system call interface, see:
>>
>> http://www.linux-mips.org/wiki/Syscall
>>
>> Signed-off-by: Phil Staub <Phil.Staub@windriver.com>
>> ---
>> .../libaio/libaio_fix_for_mips_syscall.patch | 57
>> ++++++++++++++++++++
>> meta/recipes-extended/libaio/libaio_0.3.109.bb | 6 ++-
>> 2 files changed, 61 insertions(+), 2 deletions(-)
>> create mode 100644
>> meta/recipes-extended/libaio/libaio/libaio_fix_for_mips_syscall.patch
>>
>> diff --git
>> a/meta/recipes-extended/libaio/libaio/libaio_fix_for_mips_syscall.patch b/meta/recipes-extended/libaio/libaio/libaio_fix_for_mips_syscall.patch
>>
>> new file mode 100644
>> index 0000000..0408865
>> --- /dev/null
>> +++
>> b/meta/recipes-extended/libaio/libaio/libaio_fix_for_mips_syscall.patch
>> @@ -0,0 +1,57 @@
>> +diff -urp libaio-0.3.109.orig/src/syscall-mips.h
>> libaio-0.3.109/src/syscall-mips.h
>> +--- libaio-0.3.109.orig/src/syscall-mips.h 2013-01-23
>> 20:17:55.750897706 -0800
>> ++++ libaio-0.3.109/src/syscall-mips.h 2013-01-23
>> 13:13:34.143660455 -0800
>> +@@ -76,7 +76,7 @@ type fname(atype a) \
>> + \
>> + if (__a3 == 0) \
>> + return (type) __v0; \
>> +- return (type) -1; \
>> ++ return (type) -(__v0); \
>> + }
>> +
>> + #define io_syscall2(type,fname,sname,atype,a,btype,b) \
>> +@@ -100,7 +100,7 @@ type fname(atype a, btype b) \
>> + \
>> + if (__a3 == 0) \
>> + return (type) __v0; \
>> +- return (type) -1; \
>> ++ return (type) -(__v0); \
>> + }
>> +
>> + #define io_syscall3(type,fname,sname,atype,a,btype,b,ctype,c) \
>> +@@ -125,7 +125,7 @@ type fname(atype a, btype b, ctype c) \
>> + \
>> + if (__a3 == 0) \
>> + return (type) __v0; \
>> +- return (type) -1; \
>> ++ return (type) -(__v0); \
>> + }
>> +
>> + #define io_syscall4(type,fname,sname,atype,a,btype,b,ctype,c,dtype,d) \
>> +@@ -150,7 +150,7 @@ type fname(atype a, btype b, ctype c, dt
>> + \
>> + if (__a3 == 0) \
>> + return (type) __v0; \
>> +- return (type) -1; \
>> ++ return (type) -(__v0); \
>> + }
>> +
>> + #if (_MIPS_SIM == _MIPS_SIM_ABI32)
>> +@@ -186,7 +186,7 @@ type fname(atype a, btype b, ctype c, dt
>> + \
>> + if (__a3 == 0) \
>> + return (type) __v0; \
>> +- return (type) -1; \
>> ++ return (type) -(__v0); \
>> + }
>> +
>> + #endif /* (_MIPS_SIM == _MIPS_SIM_ABI32) */
>> +@@ -216,7 +216,7 @@ type fname (atype a,btype b,ctype c,dtyp
>> + \
>> + if (__a3 == 0) \
>> + return (type) __v0; \
>> +- return (type) -1; \
>> ++ return (type) -(__v0); \
>> + }
>> +
>> + #endif /* (_MIPS_SIM == _MIPS_SIM_NABI32) || (_MIPS_SIM ==
>> _MIPS_SIM_ABI64) */
>> diff --git a/meta/recipes-extended/libaio/libaio_0.3.109.bb
>> b/meta/recipes-extended/libaio/libaio_0.3.109.bb
>> index 161b712..23641ed 100644
>> --- a/meta/recipes-extended/libaio/libaio_0.3.109.bb
>> +++ b/meta/recipes-extended/libaio/libaio_0.3.109.bb
>> @@ -5,13 +5,15 @@ HOMEPAGE = "http://lse.sourceforge.net/io/aio.html"
>> LICENSE = "LGPLv2.1+"
>> LIC_FILES_CHKSUM =
>> "file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499"
>>
>> -PR = "r1"
>> +PR = "r2"
>>
>> 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_fix_for_mips_syscall.patch \
>> +"
>
> This needs to be rebased to Master.
OK. Thanks.
Phil
>
> Sau!
>
>>
>> SRC_URI[md5sum] = "435a5b16ca6198eaf01155263d855756"
>> SRC_URI[sha256sum] =
>> "bf4a457253cbaab215aea75cb6e18dc8d95bbd507e9920661ff9bdd288c8778d"
>>
>
>
--
Phil Staub, Senior Member of Technical Staff, Wind River
Direct: 702.290.0470 Fax: 702.982.0085
prev parent reply other threads:[~2013-01-30 16:50 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-01-29 19:28 [PATCH] mips: Fix libaio system call interface Phil Staub
2013-01-30 4:43 ` Saul Wold
2013-01-30 16:35 ` Phil Staub [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=51094BCF.8080802@windriver.com \
--to=phil.staub@windriver.com \
--cc=openembedded-core@lists.openembedded.org \
--cc=sgw@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox