[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