<feed xmlns='http://www.w3.org/2005/Atom'>
<title>wireguard-openbsd/gnu/llvm/tools/clang, branch jd/simplify-queueing</title>
<subtitle>WireGuard implementation for the OpenBSD kernel</subtitle>
<id>https://git.zx2c4.com/wireguard-openbsd/atom/gnu/llvm/tools/clang?h=jd%2Fsimplify-queueing</id>
<link rel='self' href='https://git.zx2c4.com/wireguard-openbsd/atom/gnu/llvm/tools/clang?h=jd%2Fsimplify-queueing'/>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/'/>
<updated>2020-05-30T19:23:16Z</updated>
<entry>
<title>Powerpc64 should use same _mcount profiling as powerpc 32bit.</title>
<updated>2020-05-30T19:23:16Z</updated>
<author>
<name>drahn</name>
<email>drahn@openbsd.org</email>
</author>
<published>2020-05-30T19:23:16Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=949932c898dbe0db8f3e57846975f25e49567f99'/>
<id>urn:sha1:949932c898dbe0db8f3e57846975f25e49567f99</id>
<content type='text'>
ok kettenis@
</content>
</entry>
<entry>
<title>PowerPC: optimize away the frame pointer.</title>
<updated>2020-05-25T21:36:31Z</updated>
<author>
<name>gkoehler</name>
<email>gkoehler@openbsd.org</email>
</author>
<published>2020-05-25T21:36:31Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=fc80bb454272d95873f0fcb9cae4ef92ee9133f4'/>
<id>urn:sha1:fc80bb454272d95873f0fcb9cae4ef92ee9133f4</id>
<content type='text'>
clang defaulted to -fomit-frame-pointer when optimizing PowerPC code
for Linux and NetBSD.  Now do it for all systems, including OpenBSD.
This affects both 32-bit and powerpc64 code.

ok kettenis@
</content>
</entry>
<entry>
<title>Make sure that we add our OpenBSD specific defines on PowerPC64 targets.</title>
<updated>2020-05-20T07:07:44Z</updated>
<author>
<name>patrick</name>
<email>patrick@openbsd.org</email>
</author>
<published>2020-05-20T07:07:44Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=5a51f1c14b8d8ec321a16e1d85f6bed3b9492fa4'/>
<id>urn:sha1:5a51f1c14b8d8ec321a16e1d85f6bed3b9492fa4</id>
<content type='text'>
Prompted and tested by drahn@
ok deraadt@ drahn@ kettenis@ visa@
</content>
</entry>
<entry>
<title>Define the appropriate __GCC_HAVE_SYNC_COMPARE_AND_SWAP_* symbols like all</title>
<updated>2020-04-05T13:55:53Z</updated>
<author>
<name>kettenis</name>
<email>kettenis@openbsd.org</email>
</author>
<published>2020-04-05T13:55:53Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=f7d9bb6830ad75deb53c1fcb554dc6445b20a279'/>
<id>urn:sha1:f7d9bb6830ad75deb53c1fcb554dc6445b20a279</id>
<content type='text'>
other clang platforms do.

ok jca@
</content>
</entry>
<entry>
<title>Switch powerpc clang to -msvr4-struct-return, like gcc.</title>
<updated>2020-03-04T18:44:38Z</updated>
<author>
<name>gkoehler</name>
<email>gkoehler@openbsd.org</email>
</author>
<published>2020-03-04T18:44:38Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=9c510017451e6e3b2caf02948cc3de82e92d6fd2'/>
<id>urn:sha1:9c510017451e6e3b2caf02948cc3de82e92d6fd2</id>
<content type='text'>
Add these options from gcc to clang:
  -maix-struct-return   # return all structs in memory
  -msvr4-struct-return  # return small structs in r3/r4

ok mortimer@ jca@ deraadt@
</content>
</entry>
<entry>
<title>Add retguard for octeon/mips64.</title>
<updated>2019-10-25T00:40:56Z</updated>
<author>
<name>mortimer</name>
<email>mortimer@openbsd.org</email>
</author>
<published>2019-10-25T00:40:56Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=52446778f86252aa4533d0b08b871472df4e84f6'/>
<id>urn:sha1:52446778f86252aa4533d0b08b871472df4e84f6</id>
<content type='text'>
For this architecture we use separate retguard prologue and epilogue code
for static or PIC code. In the PIC case we use some additional code before
the retguard epilogue to recover the function start address and the GOT
pointer in order to get the per-function random cookie. Much thanks to
visa@ for suggestions and advice making it all work.

ok deraadt@ visa@
</content>
</entry>
<entry>
<title>Make clang emit the proper path to our libcompiler_rt.a when asked to.</title>
<updated>2019-09-28T22:34:04Z</updated>
<author>
<name>patrick</name>
<email>patrick@openbsd.org</email>
</author>
<published>2019-09-28T22:34:04Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=6fa5adb2b628678ac733f1abb64262f2ded86284'/>
<id>urn:sha1:6fa5adb2b628678ac733f1abb64262f2ded86284</id>
<content type='text'>
Change of behaviour in latest clang upgrade noticed by jsing@ during
the Go port update, where --print-libgcc-file-name is being used which
prints the compiler-rt path.

ok kettenis@
</content>
</entry>
<entry>
<title>Merge LLVM 8.0.1 release.</title>
<updated>2019-09-01T16:37:21Z</updated>
<author>
<name>patrick</name>
<email>patrick@openbsd.org</email>
</author>
<published>2019-09-01T16:37:21Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=d3df0c01b52bb561f932539d0321079fcb70e869'/>
<id>urn:sha1:d3df0c01b52bb561f932539d0321079fcb70e869</id>
<content type='text'>
Tested in snaps and package builds
Tested on amd64 by naddy@
Tested on arm64 by patrick@
Tested on octeon by visa@
</content>
</entry>
<entry>
<title>Import LLVM 8.0.1 release including clang, lld and lldb.</title>
<updated>2019-09-01T16:27:59Z</updated>
<author>
<name>patrick</name>
<email>patrick@openbsd.org</email>
</author>
<published>2019-09-01T16:27:59Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=b19884b112052f3bf5ff9551374fbd840e2339f2'/>
<id>urn:sha1:b19884b112052f3bf5ff9551374fbd840e2339f2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Implement the 'h' register constraint on mips64. This lets clang build</title>
<updated>2019-07-01T15:15:53Z</updated>
<author>
<name>visa</name>
<email>visa@openbsd.org</email>
</author>
<published>2019-07-01T15:15:53Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=7c158015691a62568a49a2186cab232e1c7050e1'/>
<id>urn:sha1:7c158015691a62568a49a2186cab232e1c7050e1</id>
<content type='text'>
pieces of software that use the constraint if the compiler claims
to be compatible with GCC 4.2.1.

Note that the constraint was removed in GCC 4.4. The reason was that
'h' could generate code whose result is unpredictable. The underlying
reason is that the HI and LO registers are special, and the optimizer
has to be careful when choosing the order of HI/LO accesses. It looks
that LLVM has the needed logic.
</content>
</entry>
</feed>
