Patchwork linux-user: Handle arches with llseek instead of _llseek

login
register
mail settings
Submitter James Hogan
Date March 25, 2014, 9:51 p.m.
Message ID <1395784268-31712-1-git-send-email-james.hogan@imgtec.com>
Download mbox | patch
Permalink /patch/333729/
State New
Headers show

Comments

James Hogan - March 25, 2014, 9:51 p.m.
Recently merged kernel ports (such as OpenRISC and Meta) have an llseek
system call instead of _llseek. This is handled for the host
architecture by defining __NR__llseek as __NR_llseek, but not for the
target architecture.

Handle it in the same way for these architectures, defining
TARGET_NR__llseek as TARGET_NR_llseek.

Signed-off-by: James Hogan <james.hogan@imgtec.com>
Cc: Riku Voipio <riku.voipio@iki.fi>
Cc: Jia Liu <proljc@gmail.com>
---
 linux-user/syscall.c | 5 +++++
 1 file changed, 5 insertions(+)
Jia Liu - March 26, 2014, 1:14 a.m.
Hi James,

On Wed, Mar 26, 2014 at 5:51 AM, James Hogan <james.hogan@imgtec.com> wrote:
> Recently merged kernel ports (such as OpenRISC and Meta) have an llseek
> system call instead of _llseek. This is handled for the host
> architecture by defining __NR__llseek as __NR_llseek, but not for the
> target architecture.

Thank you, James.

I don't have a Linux test environment for I'm a OS X user,
may you please make a test, please?


>
> Handle it in the same way for these architectures, defining
> TARGET_NR__llseek as TARGET_NR_llseek.
>
> Signed-off-by: James Hogan <james.hogan@imgtec.com>
> Cc: Riku Voipio <riku.voipio@iki.fi>
> Cc: Jia Liu <proljc@gmail.com>
> ---
>  linux-user/syscall.c | 5 +++++
>  1 file changed, 5 insertions(+)
>
> diff --git a/linux-user/syscall.c b/linux-user/syscall.c
> index 2eac6d5..8dbe39b 100644
> --- a/linux-user/syscall.c
> +++ b/linux-user/syscall.c
> @@ -198,6 +198,11 @@ static type name (type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5,  \
>  #define __NR__llseek __NR_lseek
>  #endif
>
> +/* Newer kernel ports have llseek() instead of _llseek() */
> +#if defined(TARGET_NR_llseek) && !defined(TARGET_NR__llseek)
> +#define TARGET_NR__llseek TARGET_NR_llseek
> +#endif
> +
>  #ifdef __NR_gettid
>  _syscall0(int, gettid)
>  #else
> --
> 1.8.3.2
>

Regards,
Jia

Patch

diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 2eac6d5..8dbe39b 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -198,6 +198,11 @@  static type name (type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5,	\
 #define __NR__llseek __NR_lseek
 #endif
 
+/* Newer kernel ports have llseek() instead of _llseek() */
+#if defined(TARGET_NR_llseek) && !defined(TARGET_NR__llseek)
+#define TARGET_NR__llseek TARGET_NR_llseek
+#endif
+
 #ifdef __NR_gettid
 _syscall0(int, gettid)
 #else