diff options
author | Joel Stanley <joel@jms.id.au> | 2017-12-06 12:26:21 +1030 |
---|---|---|
committer | Waldemar Brodkorb <wbx@openadk.org> | 2017-12-10 19:36:45 +0100 |
commit | f764bcffed69d8c62625dc4b6c1a6af21bd6dbc2 (patch) | |
tree | 31bf056e4035b87d8f4317b82a651214f5bb92a9 /libc/sysdeps/linux/or1k/clone.c | |
parent | 7c36bcae09d66bbaa35cbb02253ae0556f42677e (diff) |
or1k: syscall: Pass arguments on the stack
Busybox internally calls syscall(2).
- in unistd.h defined something like
int syscall(nr, ....)
- in syscall.c (common) implemented as
int syscall(nr, arg1, arg3, arg3, arg4, arg5, arg6)
This will not work, busybox thinks syscall should have varargs calling
conventions. But it doesnt in the uclibc implementation so no args go through.
Most architectures this will work. But on openrisc varargs are all sent on the
stack. Regular args are passed in registers.
Commit message and idea from Stafford Horne <shorne@gmail.com>.
Signed-off-by: Joel Stanley <joel@jms.id.au>
Diffstat (limited to 'libc/sysdeps/linux/or1k/clone.c')
0 files changed, 0 insertions, 0 deletions