<feed xmlns='http://www.w3.org/2005/Atom'>
<title>wireguard-openbsd/lib/libc/dlfcn, branch jd/queueboosts</title>
<subtitle>WireGuard implementation for the OpenBSD kernel</subtitle>
<id>https://git.zx2c4.com/wireguard-openbsd/atom/lib/libc/dlfcn?h=jd%2Fqueueboosts</id>
<link rel='self' href='https://git.zx2c4.com/wireguard-openbsd/atom/lib/libc/dlfcn?h=jd%2Fqueueboosts'/>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/'/>
<updated>2019-06-02T01:03:01Z</updated>
<entry>
<title>Complete the ld.so boot cleanup: move most libc initialization from</title>
<updated>2019-06-02T01:03:01Z</updated>
<author>
<name>guenther</name>
<email>guenther@openbsd.org</email>
</author>
<published>2019-06-02T01:03:01Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=5c7d06e56e289f4145af6fe3394d5d581f2679bd'/>
<id>urn:sha1:5c7d06e56e289f4145af6fe3394d5d581f2679bd</id>
<content type='text'>
_csu_finish() to _libc_preinit(), which is an .init_array function
in shared libc (and mark it INITFIRST) or a .preinit_array function
in static libc, grabbing the _dl_cb callback there from ld.so.  Then
in _csu_finish(), invoke the dl_clean_boot() callback to free ld.so's
startup bits before main() gets control.

Other cleanups this permits:
 - move various startup structures into .data.rel.ro
 - the dl* stubs in libc can be strong and call the callbacks provided
   via _dl_cb
 - no longer need to conditionalize dlctl() calls on presence of _DYNAMIC

original concept and full diff ok kettenis@
ok deraadt@
</content>
</entry>
<entry>
<title>Redo the calculation of the alignment and placement of static TLS data to</title>
<updated>2017-12-01T23:30:05Z</updated>
<author>
<name>guenther</name>
<email>guenther@openbsd.org</email>
</author>
<published>2017-12-01T23:30:05Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=f54aa4647fbcdf3cdb61745d141e42ecec60a7ae'/>
<id>urn:sha1:f54aa4647fbcdf3cdb61745d141e42ecec60a7ae</id>
<content type='text'>
correctly take into account the segment p_align.  Previously, anything
with a size belong the natural alignment or with alignment larger than
the natural one would either not be intialized correctly, be misaligned,
or result in the TIB being misaligned.

Problems reported by Charles Collicutt (charles (at) collicutt.co.uk)
ok kettenis@
</content>
</entry>
<entry>
<title>Implement dl_iterate_phdr() for static PIE executables using info extracted</title>
<updated>2016-09-06T18:49:34Z</updated>
<author>
<name>guenther</name>
<email>guenther@openbsd.org</email>
</author>
<published>2016-09-06T18:49:34Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=767451c3a44b994962ea42880d2a1460de78ea94'/>
<id>urn:sha1:767451c3a44b994962ea42880d2a1460de78ea94</id>
<content type='text'>
from the aux vector.

ok patrick@ kettenis@
</content>
</entry>
<entry>
<title>Use a Thread Information Block in both single and multi-threaded programs.</title>
<updated>2016-05-07T19:05:21Z</updated>
<author>
<name>guenther</name>
<email>guenther@openbsd.org</email>
</author>
<published>2016-05-07T19:05:21Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=fe38b55cb0aae270de3f844146814682e8cd345c'/>
<id>urn:sha1:fe38b55cb0aae270de3f844146814682e8cd345c</id>
<content type='text'>
This stores errno, the cancelation flags, and related bits for each thread
and is allocated by ld.so or libc.a.  This is an ABI break from 5.9-stable!

Make libpthread dlopen'able by moving the cancelation wrappers into libc
and doing locking and fork/errno handling via callbacks that libpthread
registers when it first initializes.  'errno' *must* be declared via
&lt;errno.h&gt; now!

Clean up libpthread's symbol exports like libc.

On powerpc, offset the TIB/TCB/TLS data from the register per the ELF spec.

Testing by various, particularly sthen@ and patrick@
ok kettenis@
</content>
</entry>
<entry>
<title>The asm in the MD_DISABLE_KBIND macro was too fragile and broke alpha and hppa.</title>
<updated>2016-03-21T00:41:13Z</updated>
<author>
<name>guenther</name>
<email>guenther@openbsd.org</email>
</author>
<published>2016-03-21T00:41:13Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=d97c60ea32de0a8a99b5d664064a75f410d0cf8b'/>
<id>urn:sha1:d97c60ea32de0a8a99b5d664064a75f410d0cf8b</id>
<content type='text'>
So instead, do the kbind disabling with syscall().

debugging and ok deraadt@, ok kettenis@
</content>
</entry>
<entry>
<title>Add $OpenBSD line</title>
<updated>2016-03-20T03:01:57Z</updated>
<author>
<name>guenther</name>
<email>guenther@openbsd.org</email>
</author>
<published>2016-03-20T03:01:57Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=70a1bc6e218bc166209d0a22fbdba091343a8661'/>
<id>urn:sha1:70a1bc6e218bc166209d0a22fbdba091343a8661</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Rearrange C runtime bits: now that ld.so exports environ and __progname,</title>
<updated>2016-03-20T02:32:39Z</updated>
<author>
<name>guenther</name>
<email>guenther@openbsd.org</email>
</author>
<published>2016-03-20T02:32:39Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=5af055cd66b5450a4935ae30e5716331ca3b13d5'/>
<id>urn:sha1:5af055cd66b5450a4935ae30e5716331ca3b13d5</id>
<content type='text'>
move their definitions and initialization in static links to libc.a
Make crt0 always invoke a new func _csu_finish() in libc to process the auxv
and to either register the ld.so cleanup function (in dynamic links) or
initialize environ and __progname and do MC_DISABLE_KBIND (in static links).
In libc, get pagesize from auxv; cache that between getpagesize() and
sysconf(_SC_PAGESIZE)

ok mpi@ "good time" deraadt@
</content>
</entry>
<entry>
<title>delete old lint ARGSUSED comments</title>
<updated>2015-11-01T03:00:01Z</updated>
<author>
<name>guenther</name>
<email>guenther@openbsd.org</email>
</author>
<published>2015-11-01T03:00:01Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=5051a0e70174633eb55654701b6d58a4201c4ca2'/>
<id>urn:sha1:5051a0e70174633eb55654701b6d58a4201c4ca2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>ELF_TOOLCHAIN bye bye.</title>
<updated>2013-07-05T21:29:51Z</updated>
<author>
<name>miod</name>
<email>miod@openbsd.org</email>
</author>
<published>2013-07-05T21:29:51Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=6231a781d0cba42259e016d7537fd9b5bcb43f6b'/>
<id>urn:sha1:6231a781d0cba42259e016d7537fd9b5bcb43f6b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>dlerror() should not return const char *, as noted by landry</title>
<updated>2013-03-24T01:37:21Z</updated>
<author>
<name>deraadt</name>
<email>deraadt@openbsd.org</email>
</author>
<published>2013-03-24T01:37:21Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=ca229a5cc81e8c29a180f1b3abc2ebf49b3efda5'/>
<id>urn:sha1:ca229a5cc81e8c29a180f1b3abc2ebf49b3efda5</id>
<content type='text'>
ok guenther
</content>
</entry>
</feed>
