Age | Commit message (Collapse) | Author |
|
clang -S was missing a line like ".cfi_offset cr2, -16" in functions
that spill cr2 (or cr3, cr4) to the stack. This was breaking a few
C++ exceptions. This fix adds the missing CFI.
This will fix the C++ exception that was crashing egdb from
ports/devel/gdb when you did "q to quit" in the pager.
ok kettenis@ tobhe@
|
|
things are going, it will take another decade before it does. But OpenBSD
has it enabled *by default* already.
Drop the #ifdef __linux__. This should hurt other OSes when they finally
catch up with us.
ok robert@, tb@
|
|
retpolines makes IBT less useful and we have enabled additional mitigations
in our kernel now that should make them (mostly) unnecessary.
ok guenther@
|
|
previous commit.
ok guenther@
|
|
provide a mitigation against branch speculation attacks, they also make
IBT control flow integrity less effective. Our kernel now uses IBPB to
as a mitigation against branch speculation attacks, so we can disable
retpoline PLTs again.
ok deraadt@
|
|
Upstream commit:
https://github.com/llvm/llvm-project/commit/9d37ea95df1b84cca9b5e954d8964c976a5e303e
Already needed at least by ports/math/hdf5, prerequisite if we want to
enable linker relaxation (clang upstream defaults).
ok kettenis@
|
|
ok hackroom
tested by plenty
|
|
repoline PLT entries that were changed to include the necessary endbr64
instructions. But with -Wl,-znoretpolineplt we would still emit non-BIT
PLT entries under certain circumstances. Fix this.
ok deraadt@, guenther@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ok kettenis@
|
|
discussed with, tested by and ok tb@
|
|
This will be used soon to pin system calls to designated call sites.
ok deraadt@
|
|
Large arm64 binaries like chromium use range extension thunks
for accessing plt entries. Add bti landing pads for the
additional indirection.
upstream commit: 60827df765156cee6cca3dc5049388dde9dac1c0
ok kettenis@
|
|
ok hackroom
tested by plenty
|
|
lang/gcc on riscv64 has a wart, it creates such relocs which upset ld.lld.
The workaround I have used in lang/gcc since Sep 2022 doesn't work any
more, so ask ld.lld to be more lenient. This will let the fortran ports
and friends build on riscv64. clang has fixed since some time already,
but our lang/gcc port will likely keep that wart for some time.
Upstream report: https://reviews.llvm.org/D83244
Input and ok kettenis@
|
|
for the .openbsd.randomdata and .openbsd.mutable section merging code.
ok jca@
|
|
This lets lld link code with object files created with ld -b binary,
as used by several ports (mupdf, postgresql-pllua, various games).
Upstream report with an unfinished diff: https://reviews.llvm.org/D106378
ok gkoehler@ kettenis@
|
|
before this change, clang on armv7 defined __ARM_FEATURE_BTI_DEFAULT and
__ARM_FEATURE_PAC_DEFAULT which broke the build of llvm libunwind
ok kettenis@ deraadt@
|
|
is incomplete resulting in SIGSEGV with the OpenBSD default options.
ok deraadt@, jsg@
|
|
ok hackroom
tested by plenty
|
|
Handle CALL_RM like CALL for 32-bit ELF. If a function call has the
strictfp attribute, its opcode changes from CALL to CALL_RM. If a
call uses the secure PLT, then it must getGlobalBaseReg() to set r30.
After I rebuilt xenocara/lib/pixman with this change, Xorg stopped
crashing on my macppc. pixman uses cc -ftrapping-math which puts
strictfp on each function call.
https://github.com/llvm/llvm-project/pull/72758
ok jca@ tobhe@ deraadt@
|
|
ok hackroom
tested by plenty
|
|
autoconf might misinterpet this so we need to do a full sweep
before it can be upgraded to an error again
|
|
all the symbol lists
|
|
BTI and PAC again by default on OpenBSD.
ok robert@
|
|
llvm-13
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ok hackroom
tested by plenty
|
|
ok hackroom
tested by plenty
|
|
of arguments and without using syscall(). the glibc people should be
ashamed of the mess they created.
ok miod
|
|
|
|
ok deraadt@
|