| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
by the ASM stub, which is also in libc. The compiler only generates
invocations of the latter.
ok mpi@ deraadt@ kettenis@
|
|
|
|
| |
ok mortimer@
|
|
|
|
|
|
| |
gadgets from libc.
ok deraadt@, kettenis@
|
|
|
|
| |
ok deraadt@
|
|
|
|
|
|
|
| |
ENTRY is a trapsled. Fix a few functions which fall-through into an ENTRY
macro. amd64 binaries now are free of double+-nop sequences (except for one
assember nit in aes-586.pl). Previous changes by guenther got us here.
ok mortimer kettenis
|
|
|
|
| |
ok deraadt
|
|
|
|
|
|
| |
so passing "nan" and "-nan" produces a NaN with the right sign.
Bug reported and diff provided by George Koehler.
ok kettenis@
|
|
|
|
|
|
|
| |
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@
|
|
|
|
|
|
|
|
|
| |
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@
|
| |
|
| |
|
|
|
|
|
|
|
| |
from libpthread to libc. No changes to the build yet, just making it
easier to review the substantive diffs.
ok beck@ kettenis@ tedu@
|
|
|
|
|
|
|
| |
move it from before ENTRY() to after END(). Keeps brk(2) and sbrk(2) weak
when comping libc with clang.
ok guenther@
|
|
|
|
|
|
|
| |
hints are not recognized by clang's builtin assembler and the opcode prefixes
they generate have been no-ops for all CPUs after the Pentium 4.
ok guenther@
|
|
|
|
|
|
| |
sigprocmask syscall
ok kettenis@
|
|
|
|
|
|
| |
the PC/FP/SP registers in the jmpbuf. An old idea (around 1999?) but
the random segment sure makes it easy. Lots of help from kettenis
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@
|
|
|
|
|
|
| |
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@
|
| |
|
|
|
|
|
|
| |
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@
|
|
|
|
|
|
| |
No change in resulting object files
ok millert@
|
|
|
|
|
|
| |
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.
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@
|
|
|
|
|
|
|
|
| |
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 here, kill redundant use of _C_LABEL() in ENTRY().
|
| |
|
|
|
|
| |
resulting *.o have "FUNC" symbols with size set.
|
|
|
|
|
| |
part of the ISO C standard and have also been dropped from POSIX.
OK guenther@ kettenis@
|
|
|
|
|
|
| |
is zero in the child
ok deraadt@ miod@
|
|
|
|
|
|
|
|
|
|
| |
unregistering callbacks if the DSO is unloaded. Move the callback
handling from libpthread to libc, though libpthread still overrides the
inner call to handle locking and thread-library reinitialization.
Major version bump for both libc and libpthread.
verification that this fixes various ports ajacoutot@
asm assistance miod@; ok millert@ deraadt@
|
|
|
|
|
|
|
| |
for a long time, so there's no need to test the second return register here
in the asm stub.
ok and testing of many archs by krw@ miod@
|
|
|
|
| |
ok millert@, kettenis@
|
|
|
|
|
|
|
|
|
| |
and strlen that provide a significantly faster performance than our
previous .c or .S implementations. Based on NetBSD's code.
Tested with different amd64 CPUs.
ok deraadt@ mikeb@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(potentially) MD versions (function dependent, not filename dependent)
split out memcpy/memmove/bcopy and strchr/index/strrchr/rindex
Bring back amd64 .S versions
And the final touch: switch all architectures temporarily to MI
memcpy.c, which contains syslog + abort for overlapping copies. A nice
harsh undefined behaviour. We will clean the entire userland of the
remaining issues in this catagory, then switch to the optimised memcpy
which skips the memmove check.
I tried to cut this change into pieces, but testing each sub-step on
every architecture is too time consuming and mindnumbing.
ok miod
|
|
|
|
|
| |
causing as(1) to create a wrong nop-sled for text segment aligns.
Revert, until it is found and fixed.
|
|
|
|
|
|
|
|
| |
code is already used in the kernel and the files are unmodified copies
from src/sys/lib/libkern/arch/amd64/. Depending on the function, this
gives us some speedup in userland.
ok deraadt@, no objections from miod@
|
|
|
|
|
|
| |
last 15 years and there is no point to use it in the future.
From Jean-Philippe Ouellet
|
|
|
|
|
|
|
|
| |
A while back, pascal@ converted our system call stubs from using "cpp
| as" to "cc -x assembler-with-cpp", so there's no need to stay
compatible with ancient preprocessor semantics.
ok miod
|
| |
|