| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
ok kettenis@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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@
|
| |
|
|
|
|
|
|
| |
_longjmp(3) but also restore the signal mask.
ok deraadt@
|
|
|
|
| |
ok deraadt@
|
|
|
|
| |
noted by miod@
|
|
|
|
|
|
| |
we do need the hidden _libc_syscall alias.
from miod@
|
|
|
|
|
|
| |
So instead, do the kbind disabling with syscall().
debugging and ok deraadt@, ok kettenis@
|
|
|
|
|
|
|
|
|
|
|
| |
move their definitions and initialization in static links to libc.a
Make crt0 always invoke a new func _csu_finish() in libc to process the auxv
and to either register the ld.so cleanup function (in dynamic links) or
initialize environ and __progname and do MC_DISABLE_KBIND (in static links).
In libc, get pagesize from auxv; cache that between getpagesize() and
sysconf(_SC_PAGESIZE)
ok mpi@ "good time" deraadt@
|
|
|
|
| |
lots of agreement.
|
| |
|
|
|
|
| |
requested by kettenis@
|
|
|
|
| |
ok deraadt@
|
|
|
|
|
|
| |
non-syscall .S source
ok millert@ miod@
|
| |
|
| |
|
|
|
|
|
|
| |
and ldexp().
ok millert@
|
|
|
|
|
|
|
|
|
| |
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@
|
|
|
|
| |
ok miod@ jsg@
|
|
|
|
|
|
| |
No change in resulting object files
ok millert@
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
prodded by semarie@
|
|
|
|
|
| |
CFLAGS.
ok guenther@
|
|
|
|
|
|
| |
C standard are all weak.
Apply __{BEGIN,END}_HIDDEN_DECLS to gdtoa{,imp}.h, hiding the
arch-specific __strtorx, __ULtox_D2A, __strtorQ, __ULtoQ_D2A symbols.
|
|
|
|
|
|
|
| |
the ASM *setjmp implementations.
Skip the PLT when calling them on amd64 (other archs to do this after testing)
ok miod@
|
|
|
|
|
|
|
|
|
|
| |
Stop generating _brk and _sbrk symbols: they've already been hidden.
Set the ELF symbol size on the syscall stubs.
Give the __{min,cur}brk symbols a size and type, and hide more jump labels.
alpha, arm, m88k, sh, sparc, and vax assistance miod@
hppa assistance kettenis@
ok deraadt@ miod@
|
|
|
|
|
|
|
|
|
|
| |
r2 is zero. Some upcoming changes will probably change the offset at which
the errno pointer is stored, or might even store errno directly. Instead,
call __errno to get the location of errno. Make sure we go through the PLT
such that we call the version in libpthread if it is linked in. Set up r30
for this purpose. The ___cerrno function itself remains protected.
ok guenther@
|
|
|
|
|
| |
cone of shame guenther@
ok deraadt@
|
| |
|
|
|
|
|
|
|
|
| |
Stop generating _brk and _sbrk symbols: they've already been hidden.
Set the ELF symbol size on the syscall stubs.
Give the __{min,cur}brk symbols a size and type, and hide more jump labels.
ok deraadt@
|
|
|
|
| |
ok guenther
|
|
|
|
| |
ok deraadt@
|
|
|
|
|
|
| |
Fix memmove with that
ok deraadt@
|
|
|
|
|
|
|
|
|
|
|
|
| |
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@
|
| |
|
| |
|
|
|
|
|
|
|
| |
Delete exect(2); it wasn't portable across archs and nothing used it.
ports test build by naddy@
ok deraadt@ kettenis@
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
libpthread no longer has to override it which means that we can use a local
call and can avoid setting up r30 as a _GLOBAL_OFFSET_TABLE_ pointer, which
is hard the way the powerpc ABI works.
For now we continue to provide __cerror as a weak symbol, but ___cerror is
now protected and internal calls within libc now use ___cerror instead of
__cerror.
discussed with guenther@
|
|
|
|
| |
Secure-PLT ABI.
|
|
|
|
| |
Secure-PLT ABI.
|
|
|
|
|
|
|
|
| |
This is primed with the current list of exported symbols so it doesn't
change the ABI yet, but will prevent unintentional additions in the future
and sets the stage for reductions.
ok deraadt@ kettenis@
|
|
|
|
|
|
| |
Original diff from guenther@, adjusted by me.
OK guenther@
|
| |
|
|
|
|
|
|
|
|
|
| |
While binutils supports both "unified" and "divided" syntax (defaulting
to divided) the integrated assembler in clang only supports unified names
so switch some files to unified syntax. Similiar changes were made in
bitrig and freebsd. No difference in objdump -d output.
tested on zaurus by deraadt@, ok miod@
|
|
|
|
|
|
|
|
|
|
|
| |
calling convention which conflicts over t11 usage with the secureplt
calling convention, force these symbols to be `notype' rather `function', so
that the linker will not attempt to use plt relocations for them in the
absence of explicit relocation information.
Note that these symbols are still public and still callable with the old plt
convention, so existing binaries will still work with an updated libc, and
no libc version change is necessary.
|
| |
|