#
5247af0f |
| 29-Oct-2023 |
millert <millert@openbsd.org> |
Enable ISO C11 APIs when building libc, even with an older compiler. Otherwise, the prototypes for timespec_get() and aligned_alloc() are not visible. OK guenther@
|
#
fb832af5 |
| 25-Nov-2019 |
guenther <guenther@openbsd.org> |
gcc3, like clang and unlike our gcc4, doesn't support redirecting builtins like mem{set,cpy,move} or __stack_smash_handler using asm() renaming. So treat gcc3 like clang and mark such functions as p
gcc3, like clang and unlike our gcc4, doesn't support redirecting builtins 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@
show more ...
|
#
5c7d06e5 |
| 02-Jun-2019 |
guenther <guenther@openbsd.org> |
Complete the ld.so boot cleanup: move most libc initialization from _csu_finish() to _libc_preinit(), which is an .init_array function in shared libc (and mark it INITFIRST) or a .preinit_array funct
Complete the ld.so boot cleanup: move most libc initialization from _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@
show more ...
|
#
cfc1d11d |
| 13-May-2019 |
guenther <guenther@openbsd.org> |
Move 'how this works' details from namespace.h to DETAILS
|
#
ae3cb403 |
| 18-Jan-2018 |
guenther <guenther@openbsd.org> |
Instead of trying to handle ffs() with the normal rename-mark-hidden-and-alias dance, mark it protected. This works better for both gcc and clang: gcc blocks overriding of internal calls, while clan
Instead of trying to handle ffs() with the normal rename-mark-hidden-and-alias 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@
show more ...
|
#
ea6088e7 |
| 29-Nov-2017 |
guenther <guenther@openbsd.org> |
clang doesn't propagate attributes like "asm labels" and "visibility(hidden)" to builtins like mem{set,cpy,move} and __stack_smash_handler. So, when building with clang, instead mark those as protec
clang doesn't propagate attributes like "asm labels" and "visibility(hidden)" 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@
show more ...
|
#
fe38b55c |
| 07-May-2016 |
guenther <guenther@openbsd.org> |
Use a Thread Information Block in both single and multi-threaded programs. This stores errno, the cancelation flags, and related bits for each thread and is allocated by ld.so or libc.a. This is an
Use a Thread Information Block in both single and multi-threaded programs. 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 <errno.h> 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@
show more ...
|
#
ff457008 |
| 05-Apr-2016 |
guenther <guenther@openbsd.org> |
Update example in comment: setlogin doesn't use {PROTO,DEF}_WRAP() now
|
#
5aed4d28 |
| 23-Oct-2015 |
guenther <guenther@openbsd.org> |
Merge the sigaction() and sigprocmask() overloads/wrappers from libpthread into libc, and move pthread_sigmask() as well (just a trivial wrapper). This provides consistent handling of SIGTHR between
Merge the sigaction() and sigprocmask() overloads/wrappers from libpthread 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@
show more ...
|
#
89db3a20 |
| 11-Sep-2015 |
guenther <guenther@openbsd.org> |
Wrap blowfish, sha*, md5, and rmd160 so that internal calls go direct
ok deraadt@
|
#
e6f98e3a |
| 10-Sep-2015 |
guenther <guenther@openbsd.org> |
Pull in namespace.h when building all .c files using gcc's -include option, so that we can provide asm labels for the memcpy/memset/__stack_smash_handler calls that it generates ab initio. Eliminate
Pull in namespace.h when building all .c files using gcc's -include option, 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@
show more ...
|
#
3f5ad7fc |
| 06-Sep-2015 |
guenther <guenther@openbsd.org> |
Fix aliasing of sys_errlist, sys_nerr, sys_siglist, and sys_signame to eliminate duplicate copies of the tables and get direct access internally
ok kettenis@ deraadt@
|
#
e969daf4 |
| 05-Sep-2015 |
guenther <guenther@openbsd.org> |
Use new framework for wrapping cat{open,gets,close}(), eliminating _cat* in the process.
ok kettenis@
|
#
9b9d2a55 |
| 31-Aug-2015 |
guenther <guenther@openbsd.org> |
Add framework for resolving (pun intended) libc namespace issues, using wrapper .h files and asm labels to let internal calls resolve directly and not be overridable or use the PLT. Then, apply that
Add framework for resolving (pun intended) libc namespace issues, using wrapper .h files and asm labels to let internal calls resolve directly and not be overridable or use the PLT. Then, apply that framework to most of the functions in stdio.h, string.h, err.h, and wchar.h. Delete the should-have-been-hidden-all-along _v?(err|warn)[cx]? symbols while here.
tests clean on i386, amd64, sparc64, powerpc, and mips64
naming feedback from kettenis@ and millert@ ok kettenis@
show more ...
|
#
e9b2b68c |
| 19-Aug-1996 |
tholo <tholo@openbsd.org> |
Fix RCS ids Make sure everything uses {SYS,}LIBC_SCCS properly
|
#
df930be7 |
| 18-Oct-1995 |
deraadt <deraadt@openbsd.org> |
initial import of NetBSD tree
|