<feed xmlns='http://www.w3.org/2005/Atom'>
<title>openbsd/src/lib/libc/include/namespace.h, branch OPENBSD_6_8_BASE</title>
<subtitle>A mirror of https://github.com/libressl/openbsd.git
</subtitle>
<id>https://git.lua4.win/openbsd/atom?h=OPENBSD_6_8_BASE</id>
<link rel='self' href='https://git.lua4.win/openbsd/atom?h=OPENBSD_6_8_BASE'/>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/'/>
<updated>2019-11-25T22:57:28+00:00</updated>
<entry>
<title>gcc3, like clang and unlike our gcc4, doesn't support redirecting builtins</title>
<updated>2019-11-25T22:57:28+00:00</updated>
<author>
<name>guenther</name>
<email></email>
</author>
<published>2019-11-25T22:57:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=dbf2b9876db143d9320fa3f1b2b0d9e451c964c0'/>
<id>urn:sha1:dbf2b9876db143d9320fa3f1b2b0d9e451c964c0</id>
<content type='text'>
like mem{set,cpy,move} or __stack_smash_handler using asm() renaming.  So
treat gcc3 like clang and mark such functions as protected instead.

ok ayoma@
</content>
</entry>
<entry>
<title>Complete the ld.so boot cleanup: move most libc initialization from</title>
<updated>2019-06-02T01:03:01+00:00</updated>
<author>
<name>guenther</name>
<email></email>
</author>
<published>2019-06-02T01:03:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=a6e675c6e949db993e297cb4af8780a6a40a5b9c'/>
<id>urn:sha1:a6e675c6e949db993e297cb4af8780a6a40a5b9c</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>Move 'how this works' details from namespace.h to DETAILS</title>
<updated>2019-05-13T20:00:32+00:00</updated>
<author>
<name>guenther</name>
<email></email>
</author>
<published>2019-05-13T20:00:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=cbcc12d4538b785f730b753915a6885e7c6a4601'/>
<id>urn:sha1:cbcc12d4538b785f730b753915a6885e7c6a4601</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Instead of trying to handle ffs() with the normal rename-mark-hidden-and-alias</title>
<updated>2018-01-18T08:23:44+00:00</updated>
<author>
<name>guenther</name>
<email></email>
</author>
<published>2018-01-18T08:23:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=35352e830aefedf0f54a965ee2aaf8a6ff643231'/>
<id>urn:sha1:35352e830aefedf0f54a965ee2aaf8a6ff643231</id>
<content type='text'>
dance, mark it protected.  This works better for both gcc and clang: gcc
blocks overriding of internal calls, while clang permits inlining again.

ok otto@
</content>
</entry>
<entry>
<title>clang doesn't propagate attributes like "asm labels" and "visibility(hidden)"</title>
<updated>2017-11-29T05:13:57+00:00</updated>
<author>
<name>guenther</name>
<email></email>
</author>
<published>2017-11-29T05:13:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=91809a23ddd15af26964fe79c11bc52b08afeb95'/>
<id>urn:sha1:91809a23ddd15af26964fe79c11bc52b08afeb95</id>
<content type='text'>
to builtins like mem{set,cpy,move} and __stack_smash_handler.  So, when
building with clang, instead mark those as protected visibility to get rid
of the PLT relocations.  We can't take the address of them then, but that's
ok: it's a build-time error not a run-time error.

ok kettenis@
</content>
</entry>
<entry>
<title>Use a Thread Information Block in both single and multi-threaded programs.</title>
<updated>2016-05-07T19:05:22+00:00</updated>
<author>
<name>guenther</name>
<email></email>
</author>
<published>2016-05-07T19:05:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=68e76f55be2ed227ee7e29661e23ed40ec883b46'/>
<id>urn:sha1:68e76f55be2ed227ee7e29661e23ed40ec883b46</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>Update example in comment: setlogin doesn't use {PROTO,DEF}_WRAP() now</title>
<updated>2016-04-05T04:28:32+00:00</updated>
<author>
<name>guenther</name>
<email></email>
</author>
<published>2016-04-05T04:28:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=8e09162398790bd9a9c75a1f785f739fc1b9dcf4'/>
<id>urn:sha1:8e09162398790bd9a9c75a1f785f739fc1b9dcf4</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge the sigaction() and sigprocmask() overloads/wrappers from libpthread</title>
<updated>2015-10-23T04:39:24+00:00</updated>
<author>
<name>guenther</name>
<email></email>
</author>
<published>2015-10-23T04:39:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=d974a7336e523b8b94e18714b44fae0a6cba8224'/>
<id>urn:sha1:d974a7336e523b8b94e18714b44fae0a6cba8224</id>
<content type='text'>
into libc, and move pthread_sigmask() as well (just a trivial wrapper).
This provides consistent handling of SIGTHR between single- and multi-threaded
programs and is a step in the merge of all the libpthread overloads, providing
some ASM and Makefile bits that the other wrappers will need.

ok deraadt@ millert@
</content>
</entry>
<entry>
<title>Wrap blowfish, sha*, md5, and rmd160 so that internal calls go direct</title>
<updated>2015-09-11T09:18:27+00:00</updated>
<author>
<name>guenther</name>
<email></email>
</author>
<published>2015-09-11T09:18:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=56d9d2a1d3200a5bf27ca9418f899a7b4b73a545'/>
<id>urn:sha1:56d9d2a1d3200a5bf27ca9418f899a7b4b73a545</id>
<content type='text'>
ok deraadt@
</content>
</entry>
<entry>
<title>Pull in namespace.h when building all .c files using gcc's -include option,</title>
<updated>2015-09-10T18:13:46+00:00</updated>
<author>
<name>guenther</name>
<email></email>
</author>
<published>2015-09-10T18:13:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=66afc4bd612bb460bdd19df70cfb0d458e254ccb'/>
<id>urn:sha1:66afc4bd612bb460bdd19df70cfb0d458e254ccb</id>
<content type='text'>
so that we can provide asm labels for the memcpy/memset/__stack_smash_handler
calls that it generates ab initio.  Eliminate direct #includes of it.  Make
sure it's a dependency of all objects (unnecessary for asm, but close enough).

ok deraadt@
</content>
</entry>
</feed>
