fix 64-bit syscall argument passing on or1k

the kernel syscall interface for or1k does not expect 64-bit arguments
to be aligned to "even" register boundaries. this incorrect alignment
broke truncate/ftruncate and as well as a few less-common syscalls.
This commit is contained in:
Rich Felker 2014-11-05 00:38:40 -05:00
parent e146e6035f
commit de2b9c21d9
1 changed files with 1 additions and 1 deletions

View File

@ -1,7 +1,7 @@
#define __SYSCALL_LL_E(x) \ #define __SYSCALL_LL_E(x) \
((union { long long ll; long l[2]; }){ .ll = x }).l[0], \ ((union { long long ll; long l[2]; }){ .ll = x }).l[0], \
((union { long long ll; long l[2]; }){ .ll = x }).l[1] ((union { long long ll; long l[2]; }){ .ll = x }).l[1]
#define __SYSCALL_LL_O(x) 0, __SYSCALL_LL_E((x)) #define __SYSCALL_LL_O(x) __SYSCALL_LL_E((x))
#define SYSCALL_MMAP2_UNIT 8192ULL #define SYSCALL_MMAP2_UNIT 8192ULL