<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src-test/libexec/rtld-elf/sparc64, branch release/5.2.0</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src-test/atom?h=release%2F5.2.0</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src-test/atom?h=release%2F5.2.0'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/'/>
<updated>2003-07-04T00:05:15Z</updated>
<entry>
<title>Avoid using the global offset table to get the address of _DYNAMIC in</title>
<updated>2003-07-04T00:05:15Z</updated>
<author>
<name>Jake Burkholder</name>
<email>jake@FreeBSD.org</email>
</author>
<published>2003-07-04T00:05:15Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=d03721348713ea143ba2919fd425e6f33a8126a6'/>
<id>urn:sha1:d03721348713ea143ba2919fd425e6f33a8126a6</id>
<content type='text'>
rtld.  When _DYNAMIC is referenced normally from C the global offset
table is used implicitly, but newer versions of binutils don't initialize
it statically in the binary, so this doesn't work until rtld is relocated,
which _DYNAMIC is needed for...  So, as on other systems with the same
problem, we disassemble a call instruction to _DYNAMIC in order to get
its address.
</content>
</entry>
<entry>
<title>Allow threading libraries to register their own locking</title>
<updated>2003-05-29T22:58:26Z</updated>
<author>
<name>Alexander Kabaev</name>
<email>kan@FreeBSD.org</email>
</author>
<published>2003-05-29T22:58:26Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=6d5d786f800c42ac9eec4ba9ac7202bd184c7242'/>
<id>urn:sha1:6d5d786f800c42ac9eec4ba9ac7202bd184c7242</id>
<content type='text'>
implementation in case default one provided by rtld is
not suitable.

Consolidate various identical MD lock implementation into
a single file using appropriate machine/atomic.h.

Approved by:	re (scottl)
</content>
</entry>
<entry>
<title>No need to zero fill memory, mmapped anonymously. Kernel will</title>
<updated>2003-03-14T21:10:13Z</updated>
<author>
<name>Alexander Kabaev</name>
<email>kan@FreeBSD.org</email>
</author>
<published>2003-03-14T21:10:13Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=605f36fc1e6d3d7343da452daffa9c53f72d97e9'/>
<id>urn:sha1:605f36fc1e6d3d7343da452daffa9c53f72d97e9</id>
<content type='text'>
return pre-zeroed pages itself.

Noticed by:     jake
</content>
</entry>
<entry>
<title>Fix rtld to handle SPARC_R_UA{16,64} relocations correctly.</title>
<updated>2002-12-05T16:58:31Z</updated>
<author>
<name>Alexander Kabaev</name>
<email>kan@FreeBSD.org</email>
</author>
<published>2002-12-05T16:58:31Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=f94cc7e9ca492c92e183bb89b7c884fe473583c1'/>
<id>urn:sha1:f94cc7e9ca492c92e183bb89b7c884fe473583c1</id>
<content type='text'>
Approved by:	re (rwatson)
</content>
</entry>
<entry>
<title>Fix the handling of high PLT entries (&gt; 32764) on sparc64. This requires</title>
<updated>2002-11-18T22:08:50Z</updated>
<author>
<name>Thomas Moestl</name>
<email>tmm@FreeBSD.org</email>
</author>
<published>2002-11-18T22:08:50Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=a42a42e9b9cd091de549a3b144e89d7c4b5bc2fd'/>
<id>urn:sha1:a42a42e9b9cd091de549a3b144e89d7c4b5bc2fd</id>
<content type='text'>
additional arguments to reloc_jmpslot(), which is why MI code and MD code
of other platforms had to be changed.

Reviewed by:	jake
Approved by:	re
</content>
</entry>
<entry>
<title>&lt;machine/atomic.h&gt; requires &lt;sys/types.h&gt;.</title>
<updated>2002-10-09T20:20:43Z</updated>
<author>
<name>Ruslan Ermilov</name>
<email>ru@FreeBSD.org</email>
</author>
<published>2002-10-09T20:20:43Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=2908cc64ebbfca51f2e70bb385828979f8f10963'/>
<id>urn:sha1:2908cc64ebbfca51f2e70bb385828979f8f10963</id>
<content type='text'>
Reviewed by:	jake, mike
</content>
</entry>
<entry>
<title>Return an error if a symbol is not found in reloc_jmpslots() instead of</title>
<updated>2002-09-14T12:14:24Z</updated>
<author>
<name>Thomas Moestl</name>
<email>tmm@FreeBSD.org</email>
</author>
<published>2002-09-14T12:14:24Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=a4823075e583c15cd568402ce5b8cc1dbf8b044b'/>
<id>urn:sha1:a4823075e583c15cd568402ce5b8cc1dbf8b044b</id>
<content type='text'>
crashing.
</content>
</entry>
<entry>
<title>Add END markers to asm functions so that debuggers can find their size.</title>
<updated>2002-07-17T22:20:41Z</updated>
<author>
<name>Jake Burkholder</name>
<email>jake@FreeBSD.org</email>
</author>
<published>2002-07-17T22:20:41Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=b1d6ef2ee9b8259791c9ab089830afabc7715f78'/>
<id>urn:sha1:b1d6ef2ee9b8259791c9ab089830afabc7715f78</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove the nanosleep calls from the spin loops in the locking code.</title>
<updated>2002-07-06T20:25:56Z</updated>
<author>
<name>John Polstra</name>
<email>jdp@FreeBSD.org</email>
</author>
<published>2002-07-06T20:25:56Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=e6f0183bfff07d4d2ce3ccdb6460d3bd216e7a62'/>
<id>urn:sha1:e6f0183bfff07d4d2ce3ccdb6460d3bd216e7a62</id>
<content type='text'>
They provided little benefit (if any) and they caused some problems
in OpenOffice, at least in post-KSE -current and perhaps in other
environments too.  The nanosleep calls prevented the profiling timer
from advancing during the spinloops, thereby preventing the thread
scheduler from ever pre-empting the spinning thread.  Alexander
Kabaev diagnosed this problem, Martin Blapp helped with testing,
and Matt Dillon provided some helpful suggestions.

This is a short-term fix for a larger problem.  The use of spinlocking
isn't guaranteed to work in all cases.  For example, if the spinning
thread has higher priority than all other threads, it may never be
pre-empted, and the thread holding the lock may never progress far
enough to release the lock.  On the other hand, spinlocking is the
only locking that can work with an arbitrary unknown threads package.

I have some ideas for a much better fix in the longer term.  It
would eliminate all locking inside the dynamic linker by making it
safe for symbol lookups and lazy binding to proceed in parallel
with a call to dlopen or dlclose.  This means that the only mutual
exclusion needed would be to prevent multiple simultaneous calls
to dlopen and/or dlclose.  That mutual exclusion could be put into
the native pthreads library.  Applications using foreign threads
packages would have to make their own arrangements to ensure that
they did not have multiple threads in dlopen and/or dlclose -- a
reasonable requirement in my opinion.

MFC after:	3 days
</content>
</entry>
<entry>
<title>Add needed include of mman.h to fix sparc64 buildworld.</title>
<updated>2002-06-24T05:23:46Z</updated>
<author>
<name>Jake Burkholder</name>
<email>jake@FreeBSD.org</email>
</author>
<published>2002-06-24T05:23:46Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=cf85da5c68e93d4bdafa8170d2b7b6366b395ac5'/>
<id>urn:sha1:cf85da5c68e93d4bdafa8170d2b7b6366b395ac5</id>
<content type='text'>
</content>
</entry>
</feed>
