[Bug libc/25523] MIPS/Linux inline syscall template is miscompiled
cvs-commit at gcc dot gnu.org
sourceware-bugzilla@sourceware.org
Thu Feb 13 20:04:00 GMT 2020
https://sourceware.org/bugzilla/show_bug.cgi?id=25523
--- Comment #8 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> ---
The release/2.31/master branch has been updated by Aurelien Jarno
<aurel32@sourceware.org>:
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=aa638b86b222fcc9f9cdf1d2cb49a36ea681b469
commit aa638b86b222fcc9f9cdf1d2cb49a36ea681b469
Author: WANG Xuerui <git@xen0n.name>
Date: Thu Feb 13 00:57:03 2020 +0800
mips: Fix argument passing for inlined syscalls on Linux [BZ #25523]
According to [gcc documentation][1], temporary variables must be used for
the desired content to not be call-clobbered.
Fix the Linux inline syscall templates by adding temporary variables,
much like what x86 did before
(commit 381a0c26d73e0f074c962e0ab53b99a6c327066d).
Tested with gcc 9.2.0, both cross-compiled and natively on Loongson
3A4000.
[1]: https://gcc.gnu.org/onlinedocs/gcc/Local-Register-Variables.html
(cherry picked from commit 4fbba6fe904d0094ddc4284066b3860d119cbd4a)
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the Glibc-bugs
mailing list