Age | Commit message (Collapse) | Author |
|
a syscall, replace the double nop with a dsb nsh; isb; sequence which
stops the CPU from speculating any further. This fix was suggested
by Anthony Steinhauser.
ok deraadt@
|
|
The will be replaced by a speculation barrier as soon as we teach the
kernel to skip over these two instructions when returning from a
system call.
ok patrick@, deraadt@
|
|
ok visa@
|
|
stop building the csu code with -fpie on that platform.
ok guenther@, visa@
|
|
- put functions and data which are only used before calling the executable's
start function into their own page-aligned segments for unmapping
(only done on amd64, arm64, armv7, powerpc, and sparc64 so far)
- pass .init_array and .preinit_array functions an addition argument which
is a callback to get a structure which includes a function that frees
the boot text and data
- sometimes delay doing RELRO processing: for a shared-object marked
DF_1_INITFIRST do it after the object's .init_array, for the executable
do it after the .preinit_array
- improve test-ld.so to link against libpthread and trigger its initialization
late
libc changes to use this will come later
ok kettenis@
|
|
executables the TIB and __progname are set up before they can be used.
problem noted by ori@
ok millert@ kettenis@
|
|
The assembler does not handle undeclared local symbols properly
and generates R_MIPS_CALL16 relocations where it should generate
local GOT references. For now, get along with the problem by
declaring local symbols where necessary.
OK kettenis@ guenther@
|
|
on mips64. They need relocation and consequently cannot be used
in that function.
OK kettenis@
|
|
to make clang happier.
No binary change with gas.
|
|
As of usr.bin/xinstall/install.c revision 1.68, -S is a no-op and
install(1) will always create files safely, thus clean the option usage
from the tree.
Diff from Lauri Tirkkonen <lotheac at iki dot fi>, thanks.
|
|
declared static.
OK guenther@
|
|
ok kettenis@
|
|
relocation of ld.so's GOT without using it, so _reloc_alpha_got()
merely made the call to _dl_boot_bind() from asm simpler...while
itself being a call that required special handling.
diff and muild baking by miod@
ok guenther@
|
|
That part is not needed with a PIE toolchain, but until gcc 4 on m88k
receives enough fixes to produce as good code as gcc 3, the bits in
r1.5 are still required.
This fixes miniperl does not work correctly while building perl on m88k.
Diff is suggested by Miod Vallat, tested by him and me, ok guenther@
|
|
not the address of its GOT entry. The current code mixed the high bits of
the GOT entry address with the low bits of the true address. This only
worked by accident for small binaries where _DYNAMIC and its GOT entry
happen to reside on the same page.
ok guenther@, mortimer@
|
|
Convert __cerror to hidden visibility.
from miod@
|
|
problem noted by deraadt@
ok espie@
|
|
ok kettenis@
|
|
okay millert@
|
|
implementations.
ok guenther@
|
|
Necessary (but perhaps not suffcient) to build large binaries on arm.
ok guenther@
|
|
ok kettenis@
|
|
ok krw@ guenther@
|
|
|
|
ok kettenis@
|
|
Mark __init() as hidden
ok kettenis@ deraadt@
|
|
|
|
ok kettenis@ deraadt@
|
|
sections as extern hidden arrays of indefinite size, so that the compiler
(well, clang) doesn't believe it knows the exact contents and thus optimize
things into infinite loops. Actually set the symbols to be in the sections
and insert the leading and trailing values via __asm().
Problem pointed out by patrick@
testing and ok kettenis@
|
|
ok phessler@ deraadt@
|
|
|
|
the extern declaration of __got_{start,end}.
ok guenther@
|
|
|
|
symbols. Either the PT_LOAD RWX->RX case ot PT_GNU_RELRO should cover this
already for anything we care about. And lld, the llvm linker, doesn't emit
the __got_start and __got_end symbols and there are good reasons to leave it
that way.
ok guenther@
|
|
.dtors sections writable just like they are in crtend.o and code generated
by compilers. This is necessary to make sure that linkers that respect the
ELF spec a bit better (such as lld) correctly concatenate the secttions.
ok deraadt@
|
|
tweak & ok kettenis@
|
|
by the file being created in /tmp.
tweaks and ok tb
|
|
- simpler uniform pattern
- put the tmpfile in OBJDIR, so that mv doesn't whine about groups
when using a separate builduser.
okay millert@
|
|
AEABI-like.
ok tom@, jsg@
|
|
ok guenther@
|
|
unecessary code from the normal startup code and do some general cleanup to
make the code more readable.
ok guenther@, jsg@
|
|
the switch to eabi. This does not include static PIE which will be
handled later.
A specific sequence of steps is required to cross over this change,
using a snapshot is the easiest way to do so.
ok kettenis@
|
|
|
|
instead of the [__got_start, __got_end) range.
Also, instead of mprotecting the [__plt_start, __plt_end) range,
just scan for sections which are both writable and executable and
mprotect them to read-only. (This part was stolen from kettenis@)
ok kettenis@
|
|
mips64be testing by deraadt@
|
|
save that and pass it to _dl_boot_bind() too
|
|
|
|
|
|
archs using the #else case
|
|
problem noted by Andrew Ngo (andrew.ngo (at) gmail.com)
|