<feed xmlns='http://www.w3.org/2005/Atom'>
<title>wireguard-openbsd/lib/csu, branch jd/queueboosts</title>
<subtitle>WireGuard implementation for the OpenBSD kernel</subtitle>
<id>https://git.zx2c4.com/wireguard-openbsd/atom/lib/csu?h=jd%2Fqueueboosts</id>
<link rel='self' href='https://git.zx2c4.com/wireguard-openbsd/atom/lib/csu?h=jd%2Fqueueboosts'/>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/'/>
<updated>2020-05-19T11:23:54Z</updated>
<entry>
<title>Disable builtins on ppc in order to prevent the compiler from optimizing in</title>
<updated>2020-05-19T11:23:54Z</updated>
<author>
<name>mortimer</name>
<email>mortimer@openbsd.org</email>
</author>
<published>2020-05-19T11:23:54Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=2d072eeb6cb6a20792ad523e370e0d204055bba7'/>
<id>urn:sha1:2d072eeb6cb6a20792ad523e370e0d204055bba7</id>
<content type='text'>
calls to libc in the process boot code that might not work before things
like the GOT are set up.

Suggested by deraadt@ ok visa@
</content>
</entry>
<entry>
<title>Anthony Steinhauser reports that 32-bit arm cpus have the same speculation</title>
<updated>2020-03-13T09:31:24Z</updated>
<author>
<name>deraadt</name>
<email>deraadt@openbsd.org</email>
</author>
<published>2020-03-13T09:31:24Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=f74a2b77455090a00a6234c40c5f02aa52986a5b'/>
<id>urn:sha1:f74a2b77455090a00a6234c40c5f02aa52986a5b</id>
<content type='text'>
problems as 64-bit models.  To resolve the syscall speculation, as a first
step "nop; nop" was added after all occurances of the syscall ("swi 0")
instruction.  Then the kernel was changed to jump over the 2 extra instructions.
In this final step, those pair of nops are converted into the speculation-blocking
sequence ("dsb nsh; isb").
Don't try to build through these multiple steps, use a snapshot instead.
Packages matching the new ABI will be out in a while...
ok kettenis
</content>
</entry>
<entry>
<title>Anthony Steinhauser reports that 32-bit arm cpus have the same speculation</title>
<updated>2020-03-11T13:09:29Z</updated>
<author>
<name>deraadt</name>
<email>deraadt@openbsd.org</email>
</author>
<published>2020-03-11T13:09:29Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=afaa629c2449cf45f3998658bc9ce86c63099379'/>
<id>urn:sha1:afaa629c2449cf45f3998658bc9ce86c63099379</id>
<content type='text'>
problems as 64-bit models.  For the syscall instruction issue, add nop;nop
after swi 0, in preparation for jumping over a speculation barrier here later.
</content>
</entry>
<entry>
<title>Now that the kernel skips the two instructions immediately following</title>
<updated>2020-02-18T12:19:11Z</updated>
<author>
<name>kettenis</name>
<email>kettenis@openbsd.org</email>
</author>
<published>2020-02-18T12:19:11Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=5ecc9681133f1894e81c385eddd09981f78f1193'/>
<id>urn:sha1:5ecc9681133f1894e81c385eddd09981f78f1193</id>
<content type='text'>
a syscall, replace the double nop with a dsb nsh; isb; sequence which
stops the CPU from speculating any further.  This fix was suggested
by Anthony Steinhauser.

ok deraadt@
</content>
</entry>
<entry>
<title>Insert two nop instructions after each svc #0 instruction in userland.</title>
<updated>2020-01-26T02:19:43Z</updated>
<author>
<name>kettenis</name>
<email>kettenis@openbsd.org</email>
</author>
<published>2020-01-26T02:19:43Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=0c401ffc2a2550c32105ce180746b0a95071123b'/>
<id>urn:sha1:0c401ffc2a2550c32105ce180746b0a95071123b</id>
<content type='text'>
The will be replaced by a speculation barrier as soon as we teach the
kernel to skip over these two instructions when returning from a
system call.

ok patrick@, deraadt@
</content>
</entry>
<entry>
<title>Need to compile rcrt0.o with -fno-jump-tables on powerpc as well.</title>
<updated>2019-07-01T15:55:50Z</updated>
<author>
<name>kettenis</name>
<email>kettenis@openbsd.org</email>
</author>
<published>2019-07-01T15:55:50Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=151e2b29c1ddc95ab042336159a827573ed15012'/>
<id>urn:sha1:151e2b29c1ddc95ab042336159a827573ed15012</id>
<content type='text'>
ok visa@
</content>
</entry>
<entry>
<title>Since clang only supports the "secure" PLT ABI for "big" PIC/PIE on powerpc,</title>
<updated>2019-06-28T13:43:48Z</updated>
<author>
<name>kettenis</name>
<email>kettenis@openbsd.org</email>
</author>
<published>2019-06-28T13:43:48Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=8a17ffc511e83c2d3c84597fcc89a87e3e826d83'/>
<id>urn:sha1:8a17ffc511e83c2d3c84597fcc89a87e3e826d83</id>
<content type='text'>
stop building the csu code with -fpie on that platform.

ok guenther@, visa@
</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>Call _csu_finish() before {pre,}init_array functions so that in static</title>
<updated>2019-05-08T20:27:29Z</updated>
<author>
<name>guenther</name>
<email>guenther@openbsd.org</email>
</author>
<published>2019-05-08T20:27:29Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=1bfbec77a7b17a0f6da7266d6a21d1ca48f84301'/>
<id>urn:sha1:1bfbec77a7b17a0f6da7266d6a21d1ca48f84301</id>
<content type='text'>
executables the TIB and __progname are set up before they can be used.

problem noted by ori@
ok millert@ kettenis@
</content>
</entry>
<entry>
<title>Work around a limitation of clang integrated assembler on mips64.</title>
<updated>2019-04-19T09:19:22Z</updated>
<author>
<name>visa</name>
<email>visa@openbsd.org</email>
</author>
<published>2019-04-19T09:19:22Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=ba36fba2f7dd7c5c34bf6a8358bcb85b5d314e36'/>
<id>urn:sha1:ba36fba2f7dd7c5c34bf6a8358bcb85b5d314e36</id>
<content type='text'>
The assembler does not handle undeclared local symbols properly
and generates R_MIPS_CALL16 relocations where it should generate
local GOT references. For now, get along with the problem by
declaring local symbols where necessary.

OK kettenis@ guenther@
</content>
</entry>
</feed>
