<feed xmlns='http://www.w3.org/2005/Atom'>
<title>musl/src/thread/mips, branch v1.0.2</title>
<subtitle>musl - an implementation of the standard library for Linux-based systems</subtitle>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/'/>
<entry>
<title>fix clobbering of caller's stack in mips __clone function</title>
<updated>2013-09-16T15:52:39+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2013-09-16T15:52:39+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=cffb9e1ee2a5e8925845f0c9b79cb6c80487302c'/>
<id>cffb9e1ee2a5e8925845f0c9b79cb6c80487302c</id>
<content type='text'>
this was resulting in crashes in posix_spawn on mips, and would have
affected applications calling clone too. since the prototype for
__clone has it as a variadic function, it may not assume that 16($sp)
is writable for use in making the syscall. instead, it needs to
allocate additional stack space, and then adjust the stack pointer
back in both of the code paths for the parent process/thread.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
this was resulting in crashes in posix_spawn on mips, and would have
affected applications calling clone too. since the prototype for
__clone has it as a variadic function, it may not assume that 16($sp)
is writable for use in making the syscall. instead, it needs to
allocate additional stack space, and then adjust the stack pointer
back in both of the code paths for the parent process/thread.
</pre>
</div>
</content>
</entry>
<entry>
<title>fix child stack alignment on mips clone</title>
<updated>2013-09-14T23:19:11+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2013-09-14T23:19:11+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=bfba15c9b96c2a42bd02f51ff10596a23a677926'/>
<id>bfba15c9b96c2a42bd02f51ff10596a23a677926</id>
<content type='text'>
unlike other archs, the mips version of clone was not doing anything
to align the stack pointer. this seems to have been the cause for some
SIGBUS crashes that were observed in posix_spawn.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
unlike other archs, the mips version of clone was not doing anything
to align the stack pointer. this seems to have been the cause for some
SIGBUS crashes that were observed in posix_spawn.
</pre>
</div>
</content>
</entry>
<entry>
<title>update mips cancellation-point syscall asm with 7-arg and r25 fixes</title>
<updated>2012-09-15T06:24:12+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2012-09-15T06:24:12+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=881868382a54b851b37d0b0f5f2d44f77af998a7'/>
<id>881868382a54b851b37d0b0f5f2d44f77af998a7</id>
<content type='text'>
these fixes were already made to the normal syscall asm but not the
cancellation point version.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
these fixes were already made to the normal syscall asm but not the
cancellation point version.
</pre>
</div>
</content>
</entry>
<entry>
<title>fix mips syscall_cp_asm code (saved register usage)</title>
<updated>2012-09-09T04:59:30+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2012-09-09T04:59:30+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=be48e22b424b6f858da0151a0b3b68bdb96b41ca'/>
<id>be48e22b424b6f858da0151a0b3b68bdb96b41ca</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>mips clone: don't free stack space used to copy arg</title>
<updated>2012-07-12T03:01:09+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2012-07-12T03:01:09+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=a03f69d4456d3ac5120cc07a22af8ecb631444bb'/>
<id>a03f69d4456d3ac5120cc07a22af8ecb631444bb</id>
<content type='text'>
the mips abi reserves stack space equal to the size of the in-register
args for the callee to save the args, if desired. this would cause the
beginning of the thread structure to be clobbered...
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
the mips abi reserves stack space equal to the size of the in-register
args for the callee to save the args, if desired. this would cause the
beginning of the thread structure to be clobbered...
</pre>
</div>
</content>
</entry>
<entry>
<title>fix mips clone() on real linux kernel</title>
<updated>2012-07-12T02:59:43+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2012-07-12T02:59:43+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=b58f738bcb5877c83aef49129b40827a1d5ae4c7'/>
<id>b58f738bcb5877c83aef49129b40827a1d5ae4c7</id>
<content type='text'>
the old code worked in qemu app-level emulation, but not on real
kernels where the clone syscall does not copy the register values to
the new thread. save arguments on the new thread stack instead.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
the old code worked in qemu app-level emulation, but not on real
kernels where the clone syscall does not copy the register values to
the new thread. save arguments on the new thread stack instead.
</pre>
</div>
</content>
</entry>
<entry>
<title>fix clone() on mips (args were in wrong order)</title>
<updated>2012-07-12T00:44:38+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2012-07-12T00:44:38+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=715b6403ce25110d594c7814e9cff860486a6f85'/>
<id>715b6403ce25110d594c7814e9cff860486a6f85</id>
<content type='text'>
with this change, threads on mips seem to be working
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
with this change, threads on mips seem to be working
</pre>
</div>
</content>
</entry>
<entry>
<title>first attempt at making threads work on mips</title>
<updated>2012-07-11T15:35:27+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2012-07-11T15:35:27+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=5c94367a9b0f1c1dd0deadb0f320242b59f844bb'/>
<id>5c94367a9b0f1c1dd0deadb0f320242b59f844bb</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
