summaryrefslogtreecommitdiff
path: root/arch/mips64/syscall_arch.h
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2019-05-05 10:52:41 -0400
committerRich Felker <dalias@aerifal.cx>2019-05-05 10:52:41 -0400
commit28198ac3afd33fb9017ad1283eb794e3a77832f9 (patch)
tree8e54213cd9994b8ddfad11afc402771e5c0319c5 /arch/mips64/syscall_arch.h
parent2df8b1d806c3e1fd4b6b10e13794855a93fe6628 (diff)
downloadmusl-28198ac3afd33fb9017ad1283eb794e3a77832f9.tar.gz
musl-28198ac3afd33fb9017ad1283eb794e3a77832f9.tar.bz2
musl-28198ac3afd33fb9017ad1283eb794e3a77832f9.tar.xz
musl-28198ac3afd33fb9017ad1283eb794e3a77832f9.zip
fix passing of 64-bit syscall arguments on microblaze
this has been wrong since the beginning of the microblaze port: the syscall ABI for microblaze does not align 64-bit arguments on even register boundaries. commit 788d5e24ca19c6291cebd8d1ad5b5ed6abf42665 exposed the problem by introducing references to a nonexistent __syscall7. the ABI is not documented well anywhere, but I was able to confirm against both strace source and glibc source that microblaze is not using the alignment. per the syscall(2) man page, posix_fadvise, ftruncate, pread, pwrite, readahead, sync_file_range, and truncate were all affected and either did not work at all, or only worked by chance, e.g. when the affected argument slots were all zero.
Diffstat (limited to 'arch/mips64/syscall_arch.h')
0 files changed, 0 insertions, 0 deletions