<feed xmlns='http://www.w3.org/2005/Atom'>
<title>wireguard-openbsd/libexec/ld.so/boot.c, branch jd/histogram</title>
<subtitle>WireGuard implementation for the OpenBSD kernel</subtitle>
<id>https://git.zx2c4.com/wireguard-openbsd/atom/libexec/ld.so/boot.c?h=jd%2Fhistogram</id>
<link rel='self' href='https://git.zx2c4.com/wireguard-openbsd/atom/libexec/ld.so/boot.c?h=jd%2Fhistogram'/>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/'/>
<updated>2019-10-20T03:44:49Z</updated>
<entry>
<title>For more archs, ld.so itself only needs/uses the arch's "just add load offset"</title>
<updated>2019-10-20T03:44:49Z</updated>
<author>
<name>guenther</name>
<email>guenther@openbsd.org</email>
</author>
<published>2019-10-20T03:44:49Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=17fa88719dad59793b58356460b07659ff5d59db'/>
<id>urn:sha1:17fa88719dad59793b58356460b07659ff5d59db</id>
<content type='text'>
'relative' relocation.  Take advantage of that to simplify ld.so's self-reloc
code:
 * give the exceptional archs (hppa and mips64) copies of the current boot.c
   as boot_md.c
 * teach the Makefile to use boot_md.c when present
 * reduce boot.c down to the minimum necessary to handle just relative reloc
 * teach the Makefile to fail if the built ld.so has other types of relocs

ok visa@ kettenis@
</content>
</entry>
<entry>
<title>ld.so boot cleanup support:</title>
<updated>2019-05-10T13:29:21Z</updated>
<author>
<name>guenther</name>
<email>guenther@openbsd.org</email>
</author>
<published>2019-05-10T13:29:21Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=c0197e40dd4094880fe205f9c12d3e12e14e7ff3'/>
<id>urn:sha1:c0197e40dd4094880fe205f9c12d3e12e14e7ff3</id>
<content type='text'>
 - put functions and data which are only used before calling the executable's
   start function into their own page-aligned segments for unmapping
   (only done on amd64, arm64, armv7, powerpc, and sparc64 so far)
 - pass .init_array and .preinit_array functions an addition argument which
   is a callback to get a structure which includes a function that frees
   the boot text and data
 - sometimes delay doing RELRO processing: for a shared-object marked
   DF_1_INITFIRST do it after the object's .init_array, for the executable
   do it after the .preinit_array
 - improve test-ld.so to link against libpthread and trigger its initialization
   late
libc changes to use this will come later

ok kettenis@
</content>
</entry>
<entry>
<title>Delay processing of ld.so's own PT_GNU_RELRO section until after environment</title>
<updated>2018-10-23T04:01:45Z</updated>
<author>
<name>guenther</name>
<email>guenther@openbsd.org</email>
</author>
<published>2018-10-23T04:01:45Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=d1b0fb8fb3a964323473438f43f47e69e73ece83'/>
<id>urn:sha1:d1b0fb8fb3a964323473438f43f47e69e73ece83</id>
<content type='text'>
processing and malloc initialization, and then move variables set by those
steps, including malloc's mopts structure, into the .data.rel.ro segment.
This protects more data and eliminates the extra padding of the mopts.

ok kettenis@
</content>
</entry>
<entry>
<title>Remove dependency on __got_{start,end} symbols and look at PT_GNU_RELRO</title>
<updated>2017-01-09T22:51:04Z</updated>
<author>
<name>kettenis</name>
<email>kettenis@openbsd.org</email>
</author>
<published>2017-01-09T22:51:04Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=41acbfd8967a34b0843c570a9cbae8efcded4ac4'/>
<id>urn:sha1:41acbfd8967a34b0843c570a9cbae8efcded4ac4</id>
<content type='text'>
instead.  Result in a few more pages that aren't writable on some platforms
(such as hppa).  Based on an initial diff from guenther@.

Thanks to deraadt@ for testing.

ok guenther@
</content>
</entry>
<entry>
<title>Passing in &amp;_DYNAMIC appears to have stuck, so eliminate the extra</title>
<updated>2016-08-13T20:57:04Z</updated>
<author>
<name>guenther</name>
<email>guenther@openbsd.org</email>
</author>
<published>2016-08-13T20:57:04Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=edc0f98f02fdbbee07f8fc79779d22ede8ba999b'/>
<id>urn:sha1:edc0f98f02fdbbee07f8fc79779d22ede8ba999b</id>
<content type='text'>
variable
</content>
</entry>
<entry>
<title>Teach arm to pass &amp;_DYNAMIC to _dl_boot_bind(); can optimize later in tree</title>
<updated>2016-08-09T03:58:35Z</updated>
<author>
<name>guenther</name>
<email>guenther@openbsd.org</email>
</author>
<published>2016-08-09T03:58:35Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=45f3b7e734fc155ce84bb13c5260e10022f5958f'/>
<id>urn:sha1:45f3b7e734fc155ce84bb13c5260e10022f5958f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>As with csu, alpha passes &amp;_DYNAMIC to _reloc_alpha_got(), so just</title>
<updated>2016-08-07T03:05:23Z</updated>
<author>
<name>guenther</name>
<email>guenther@openbsd.org</email>
</author>
<published>2016-08-07T03:05:23Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=fba5f8d8c167217de8c8420e85acfbcbed38e7cc'/>
<id>urn:sha1:fba5f8d8c167217de8c8420e85acfbcbed38e7cc</id>
<content type='text'>
save that and pass it to _dl_boot_bind() too
</content>
</entry>
<entry>
<title>Teach i386 to pass &amp;_DYNAMIC to _dl_boot_bind()</title>
<updated>2016-08-07T03:03:44Z</updated>
<author>
<name>guenther</name>
<email>guenther@openbsd.org</email>
</author>
<published>2016-08-07T03:03:44Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=94bdeb90245ced851e5d0654af0e1e907a9b347f'/>
<id>urn:sha1:94bdeb90245ced851e5d0654af0e1e907a9b347f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Teach mips64 to pass &amp;_DYNAMIC to _dl_boot_bind()</title>
<updated>2016-08-07T03:01:53Z</updated>
<author>
<name>guenther</name>
<email>guenther@openbsd.org</email>
</author>
<published>2016-08-07T03:01:53Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=f26ff3c14ed07d77734e7801666e90b95d0ebdd5'/>
<id>urn:sha1:f26ff3c14ed07d77734e7801666e90b95d0ebdd5</id>
<content type='text'>
mips64be testing by deraadt@
</content>
</entry>
<entry>
<title>hahahah: amd64 has been passing &amp;_DYNAMIC to _dl_boot_bind() for</title>
<updated>2016-08-07T02:59:27Z</updated>
<author>
<name>guenther</name>
<email>guenther@openbsd.org</email>
</author>
<published>2016-08-07T02:59:27Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=3714ee24c60779a59832c599d4f35df148d4b7c6'/>
<id>urn:sha1:3714ee24c60779a59832c599d4f35df148d4b7c6</id>
<content type='text'>
*149 months*
</content>
</entry>
</feed>
