[PATCH 2/2] MIPS: Use $a0 instead of $v0 for __syscall_error() argument

Rich Felker dalias at aerifal.cx
Wed Jun 6 19:06:14 UTC 2012


On Tue, Jun 05, 2012 at 03:05:20PM -0700, Kevin Cernekee wrote:
> $a0 is saved across _dl_runtime_resolve(); $v0 is not.  Unfortunately,
> __syscall_error() uses $v0 for its argument, not $a0 as is the MIPS ABI
> standard.  This means that if lazy binding was used for __syscall_error(),
> the errno value in $v0 could get corrupted.

Why would lazy binding ever be used for __syscall_error? Shouldn't
this be bound at link time via appropriate visibility or otherwise? I
can't think of any reason you'd want it to be possible to override
it...

Rich


More information about the uClibc mailing list