Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Wed, 14 Feb 2018 12:09:18 +0000
From: Nicholas Wilson <nicholas.wilson@...lvnc.com>
To: "musl@...ts.openwall.com" <musl@...ts.openwall.com>
Subject: Re: [PATCH] Possible patch for __syscall_cp

On 13 February 2018 14:49, Szabolcs Nagy wrote:
> i think your patch is ok (__syscall6 should behave the same
> way as __syscall other than the inlining), but you can fix
> it for your target only by adding
>
> static inline long __syscall(long n, long a, long b, long c, long d, long e, long f)
> {
>        return __syscall6(n,a,b,c,d,e,f);
> }
>
> to syscall_arch.h

Yes, that's the approach I was thinking of when I mentioned we could just implement __syscall. In fact, _syscall is declared as varargs, so it would have to be:

static inline long __syscall(long n, ...)
{
  va_list va;
  va_start(va, n);
  long a = va_arg(va, long);
  ... etc
  long f = va_arg(va, long);
  return __syscall6(n, a, b, ..., f);
}

The question really is - would you prefer archs to define __syscall that way, or would you rather patch __syscall_cp to allow macro expansion? In your opinion, which is cleaner? If you don't want to see a shim like that in the archs, would you consider applying the __syscall_cp patch for us?

Thanks for the feedback,
Nick

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.