<feed xmlns='http://www.w3.org/2005/Atom'>
<title>wireguard-openbsd/lib/csu/crtbegin.c, branch jd/simplify-queueing</title>
<subtitle>WireGuard implementation for the OpenBSD kernel</subtitle>
<id>https://git.zx2c4.com/wireguard-openbsd/atom/lib/csu/crtbegin.c?h=jd%2Fsimplify-queueing</id>
<link rel='self' href='https://git.zx2c4.com/wireguard-openbsd/atom/lib/csu/crtbegin.c?h=jd%2Fsimplify-queueing'/>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/'/>
<updated>2019-01-09T16:42:38Z</updated>
<entry>
<title>Use static consistently with definitions of functions that have been</title>
<updated>2019-01-09T16:42:38Z</updated>
<author>
<name>visa</name>
<email>visa@openbsd.org</email>
</author>
<published>2019-01-09T16:42:38Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=a36635a7c3589c5da52fd2716a34be60855ef6d2'/>
<id>urn:sha1:a36635a7c3589c5da52fd2716a34be60855ef6d2</id>
<content type='text'>
declared static.

OK guenther@
</content>
</entry>
<entry>
<title>Add support for {preinit,init,fini}_array sections in static binaries</title>
<updated>2018-12-21T05:45:42Z</updated>
<author>
<name>guenther</name>
<email>guenther@openbsd.org</email>
</author>
<published>2018-12-21T05:45:42Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=b1bc2e073c0bae2d2308bd86e58308d8ef716ecb'/>
<id>urn:sha1:b1bc2e073c0bae2d2308bd86e58308d8ef716ecb</id>
<content type='text'>
ok kettenis@
</content>
</entry>
<entry>
<title>Move static variables from .data to .bss by not initializing them to zero</title>
<updated>2017-02-19T21:39:32Z</updated>
<author>
<name>guenther</name>
<email>guenther@openbsd.org</email>
</author>
<published>2017-02-19T21:39:32Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=57ebedb7457c2a4c6683bf958705134029bbdfda'/>
<id>urn:sha1:57ebedb7457c2a4c6683bf958705134029bbdfda</id>
<content type='text'>
ok kettenis@
</content>
</entry>
<entry>
<title>Make crtbegin.c and crtbeginS.c consistent on stylistic points</title>
<updated>2017-01-21T05:46:56Z</updated>
<author>
<name>guenther</name>
<email>guenther@openbsd.org</email>
</author>
<published>2017-01-21T05:46:56Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=d1e58a60cc0a3ad66c1a6ecb4792d0c1b2fa88cb'/>
<id>urn:sha1:d1e58a60cc0a3ad66c1a6ecb4792d0c1b2fa88cb</id>
<content type='text'>
ok kettenis@
</content>
</entry>
<entry>
<title>Declare the symbols that label the .ctors, .dtors, .eh_frame, and .jcr</title>
<updated>2017-01-21T00:45:13Z</updated>
<author>
<name>guenther</name>
<email>guenther@openbsd.org</email>
</author>
<published>2017-01-21T00:45:13Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=b3fe29f4687edf2be8c3fc3433d38bd40593a33b'/>
<id>urn:sha1:b3fe29f4687edf2be8c3fc3433d38bd40593a33b</id>
<content type='text'>
sections as extern hidden arrays of indefinite size, so that the compiler
(well, clang) doesn't believe it knows the exact contents and thus optimize
things into infinite loops.  Actually set the symbols to be in the sections
and insert the leading and trailing values via __asm().

Problem pointed out by patrick@
testing and ok kettenis@
</content>
</entry>
<entry>
<title>Don't make __CTOR_LIST__ and __DTOR_LIST__ const.  This makes the .ctors and</title>
<updated>2016-12-22T09:32:04Z</updated>
<author>
<name>kettenis</name>
<email>kettenis@openbsd.org</email>
</author>
<published>2016-12-22T09:32:04Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=023c6622b971308b2fbf0693f21de5e9c9e96527'/>
<id>urn:sha1:023c6622b971308b2fbf0693f21de5e9c9e96527</id>
<content type='text'>
.dtors sections writable just like they are in crtend.o and code generated
by compilers.  This is necessary to make sure that linkers that respect the
ELF spec a bit better (such as lld) correctly concatenate the secttions.

ok deraadt@
</content>
</entry>
<entry>
<title>libc.so can't be unloaded, so move the hidden atexit() and pthread_atfork()</title>
<updated>2015-11-10T04:14:03Z</updated>
<author>
<name>guenther</name>
<email>guenther@openbsd.org</email>
</author>
<published>2015-11-10T04:14:03Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=6897476f8d3f1ad745809cc8163365f785e57a2d'/>
<id>urn:sha1:6897476f8d3f1ad745809cc8163365f785e57a2d</id>
<content type='text'>
stubs for the executable from crtbegin.o into libc, which lets them be
excluded from static links that don't use them.
For this, drop the normal crt{begin,end}S.o from libc.so: the .init and .fini
sections for libc aren't called at the right times anyway, so it's good that
they're unused.  libc.so just needs __guard_local and the .note.openbsd.ident
section, so add them to stack_protector.c for now (this will be improved)

"good time" deraadt@
</content>
</entry>
<entry>
<title>Make pthread_atfork() track the DSO that called it like atexit() does,</title>
<updated>2015-04-07T01:27:06Z</updated>
<author>
<name>guenther</name>
<email>guenther@openbsd.org</email>
</author>
<published>2015-04-07T01:27:06Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=514a545f8a3983d53b7de4e8dfcefe16c9496776'/>
<id>urn:sha1:514a545f8a3983d53b7de4e8dfcefe16c9496776</id>
<content type='text'>
unregistering callbacks if the DSO is unloaded.  Move the callback
handling from libpthread to libc, though libpthread still overrides the
inner call to handle locking and thread-library reinitialization.
Major version bump for both libc and libpthread.

verification that this fixes various ports ajacoutot@
asm assistance miod@; ok millert@ deraadt@
</content>
</entry>
<entry>
<title>gcc 2.x is dead</title>
<updated>2015-04-04T18:05:04Z</updated>
<author>
<name>guenther</name>
<email>guenther@openbsd.org</email>
</author>
<published>2015-04-04T18:05:04Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=fd7ad13f9e73a3dbdacb10746cf5478433753328'/>
<id>urn:sha1:fd7ad13f9e73a3dbdacb10746cf5478433753328</id>
<content type='text'>
ok millert@
</content>
</entry>
<entry>
<title>Move atexit(3) into crtbegin.c and certbeginS.c such that we can pass the</title>
<updated>2013-12-28T18:38:42Z</updated>
<author>
<name>kettenis</name>
<email>kettenis@openbsd.org</email>
</author>
<published>2013-12-28T18:38:42Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=859c67c82abbbc6a47fd83e1b7b5305186273ffd'/>
<id>urn:sha1:859c67c82abbbc6a47fd83e1b7b5305186273ffd</id>
<content type='text'>
right __dso_handle and have dlopen'ed shared objects run their atexit handlers
when they get unloaded.  This is what Linux does, and several ports depend on
this behaviour (and will crash upon exit without this chang).

Based on an earlier diff from matthew@
Tested by ajacoutot@
ok deraadt@
</content>
</entry>
</feed>
