summaryrefslogtreecommitdiff
path: root/libexec/ld.so/mips64
AgeCommit message (Collapse)Author
2016-08-28ld.so doesn't need gettimeofday or lstat stubs any morePhilip Guenther
ok deraadt@
2016-08-07Teach mips64 to pass &_DYNAMIC to _dl_boot_bind()Philip Guenther
mips64be testing by deraadt@
2016-07-04Remove prebind support: binding to symbol table indices is too fragilePhilip Guenther
for our development process. ok kettenis@ deraadt@
2016-06-18Make mips64 like all the others: only make mappings writable during relocationPhilip Guenther
if DT_TEXTREL was set on the object. If that's needed, only set the mapping to READ+WRITE to avoid W^X violation. ok kettenis@
2016-05-07Use a Thread Information Block in both single and multi-threaded programs.Philip Guenther
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@
2016-03-21Rename the system call sendsyslog2 to sendsyslog. Keep the old oneAlexander Bluhm
as osendsyslog for a while. The three argument variant is the only one that will stay. input kettenis@; OK deraadt@
2016-03-21Switch ld.so's stack smash handler from sendsyslog to sendsyslog2Philip Guenther
and pass the LOG_CONS flag like libc's handler. ok deraadt@ bluhm@ (who had a similar diff)
2016-03-20Export environ and __progname, making the latter a copy of just the filenamePhilip Guenther
portion like crt0 does. This is prep for eliminating _dl_fixup_user_env() Mark almost everything in resolve.h as hidden, to improve code generation. ok kettenis@ mpi@ "good time" deraadt@
2015-12-06Simplify the relocation code for the ld.so bootstrap and static pie: trackPhilip Guenther
just the dynamic tags are needed instead of reusing the generic elf_object_t structure. testing and feedback from miod@ ok kettenis@
2015-11-15ldd(1) sets environment variable LD_TRACE_LOADED_OBJECTS to tell ld.soTheo de Raadt
that it should show information about the program it loads, rather than run it. In that specific case, ld.so can pledge to "stdio rpath" to ensure that code path in ld.so has no bugs. Yes, a pledge in ld.so.... who'd have thought! ok guenther
2015-11-02Factor out the logic for mprotecting the memory between two symbols intoPhilip Guenther
a new MI routine _dl_protect_segment(), and use that for protecting the GOT and--on some archs--the PLT. Amazing testing turnaround by miod@, who apparently violated relativity to get back results on some archs as fast as he did
2015-09-19kbind has eliminated the need for and use of the bind lock. Delete it, thePhilip Guenther
the callback, and the sigprocmask stub. Keep around the DL_SETBINDLCK case until libpthread stops using it. discussed with miod@ at l2k15 ok kettenis@
2015-09-13Rename __sysctl syscall to just sysctl, as the userland wrapper is no longerPhilip Guenther
necessary ok deraadt@ jsing@
2015-08-26Kbind 3: The Legend Continues!Philip Guenther
Use kbind for lazy binding GOT/PLT updates on alpha and mips64. While here add some gcc __predict hints. Much discussion with and assistance from miod and deraadt ok deraadt@
2014-12-30Fix handling of R_MIPS_REL32_64 relocations that reference a symbol.Mark Kettenis
Fixes remaining problems with static PIE on mips64.
2014-12-27Static PIE for mips64. Still something not quite right as a full make buildMark Kettenis
fails. ok kurt@
2014-09-01Sync readlink(2) with IEEE Std 1003.1-2008.Doug Hogan
discussion, help and ok guenther@
2014-07-14Now that we have sendsyslog(2), we can directly use it in theTheo de Raadt
(previously completely retarded) stack_smash_handler of ld.so ok beck miod tedu
2014-07-09_dl_fcntl() is no longer used; kill the stubsPhilip Guenther
ok otto@ miod@
2014-07-06move from sysclt(KERN_ARND) to getentropy(2); ok miod@, kettenis@Otto Moerbeek
2014-07-05Mark _dl_exit __dead.Miod Vallat
2014-07-05Add more sugar to build syscall stubs, and turn them from inlines to realMiod Vallat
entry points, now that we no longer need _dl_mprotect to be inline; also, make sure syscall failures return -errno rather than -1.
2014-07-04Remove bogus mprotect call from RELOC_REL() - this macro is used to relocateMiod Vallat
ld.so itself only, and ld.so on mips only has relocations in the .data section, which is writable.
2014-05-02No need to figure out the area spanned by .got in _dl_md_reloc(); onlyMiod Vallat
_dl_md_reloc_boot() needs to compute this.
2014-01-18Make ld.so pass its cleanup handler in $2 as required by the MIPS System VMark Kettenis
ABI, and completely remove the code that attempts to call atexit(3) directly.
2013-08-13Switch time_t, ino_t, clock_t, and struct kevent's ident and dataPhilip Guenther
members to 64bit types. Assign new syscall numbers for (almost all) the syscalls that involve the affected types, including anything with time_t, timeval, itimerval, timespec, rusage, dirent, stat, or kevent arguments. Add a d_off member to struct dirent and replace getdirentries() with getdents(), thus immensely simplifying and accelerating telldir/seekdir. Build perl with -DBIG_TIME. Bump the major on every single base library: the compat bits included here are only good enough to make the transition; the T32 compat option will be burned as soon as we've reached the new world are are happy with the snapshots for all architectures. DANGER: ABI incompatibility. Updating to this kernel requires extra work or you won't be able to login: install a snapshot instead. Much assistance in fixing userland issues from deraadt@ and tedu@ and build assistance from todd@ and otto@
2013-06-13Appease LLVM warning..Brad Smith
error: indirection of non-volatile null pointer will be deleted, not trap [-Werror,-Wnull-dereference] Suggestion from matthew@ Ok matthew@ miod@
2013-06-09Constify the mib argument of sysctl().Miod Vallat
ok matthew@ millert@
2013-06-01Introduce ltrace(1). This tool works with ld.so to inject utrace record forMiod Vallat
each plt call, allowing to trace a binary linked against shared library at the public function call level. To do so, ltrace(1) sets up some environment variables to enable plt tracing in ld.so, and invokes ktrace(2) for utrace events. ld.so will force lazy binding and will send an utrace record in the plt resolver, without updating the plt. Minimal filtering capabilities are provided, inspired by Solaris' truss -u, to limit tracing to libraries and/or symbol names. Non-traced libraries and symbols will have the regular resolver processing, with the expected plt update. "Get it in" deraadt
2013-05-08Implement symbol caching and RELACOUNT/RELCOUNT optimizations.Philip Guenther
Much assistance and testing by miod ok miod@
2013-04-05- Add ORIGIN, OSNAME, OSREL and PLATFORM substitution support for rpaths.Kurt Miller
Improvements and okay matthew@, millert@, guenther@
2013-01-14Do not bogusly attempt to mprotect ld.so's .rodata area RW at bootstrapMiod Vallat
time: the logic is wrong, and there are no relocations to apply to .rodata anyway. ok jsing@ kettenis@
2012-11-01Zero v0 before transferring control to the main program to indicate thatMark Kettenis
the main program should not reguster a cleanup handler with atexit(3). This will allow us to add the cleanup handler registration code to crt0.c and have ld.so pass its cleanup handler to the main program in the future. While there, also zero ra to mark the last stack frame as demanded by the ELF ABI. ok kurt@, miod@
2012-10-24Garbage-collect the _dl_stat() routine, now unusedPhilip Guenthe
ok matthew@ deraadt@
2012-08-17Fix mips64 and powerpc's ld.so syscall implementations by addingMatthew Dempsky
"memory" to the list of clobbered registers for all syscalls that accept a pointer. This prevents GCC from optimizing away memory loads and stores that otherwise appear unused in a function. Issue noted and identified by miod; fix by me. ok miod, mpi
2010-10-28Change basep parameter of getdirentries() to be off_t *, not long *Todd C. Miller
so it works correctly with large offsets (and matches other systems). This requires adding a new getdirentries syscall, with the old one renamed to ogetdirentries. All in-tree consumers of getdirentries() have been updated. Bump libc and libpthread major numbers. OK and with deraadt@
2010-09-11Fix lazy binding issue by making sure the second argument to _dl_find_symbol()Mark Kettenis
always points to a pointer that is initialized to NULL. Consistently use NULL instead of mixing NULL and 0 to make the pattern more obvious. Fixes nm(1) crashes that happen when you pass it multiple object files on the command line. ok miod@
2010-05-03Fix breakage from last commit. Bad guenther@, no cookie!Miod Vallat
2010-03-27Remove explicit nop's in delay slots introduced in the previous commit. TheyMark Kettenis
are already inserted as part of jal/jr expansion by gas, and we don't need another one. suggested by miod@
2010-03-27Implement lazy binding on mips64. This implementation relies on having twoMark Kettenis
reserved entries in the GOT, which is a GNU extension to the 64-bit MIPS SVR4 ABI. That's fine; all existing OpenBSD/mips64 binaries have the extra slot. ok miod@, jsing@, drahn@
2010-01-02Fix handling of hppa RELOC_IPLT relocations during 'bootstrap relocation'.Mark Kettenis
ok miod@, deraadt@, jsing@
2008-10-02Fix mmap() error checking to be correct 64-bit addresses. ConsistentlyKurt Miller
use _dl_mmap_error() to check for mmap() errors. Adjust datatypes of some local vars for 64-bit safety. okay millert@ drahn@
2008-04-09Improve support for shared libs linked at non-zero addreses:Kurt Miller
- rename private values in struct elf_object to better describe their meaning: s/load_offs/obj_base/ "object's address '0' base" s/load_addr/load_base/ "The base address of the loadable segments" - gdb needs the obj_base value so swap positions with load_base in struct elf_object - fix a few occurrences of where load_base was used instead of obj_base. With help and okay drahn@
2007-11-27Make _dl_md_reloc_got() report errors, and take them into account.Miod Vallat
Fixes PR #5579.
2006-12-21'immediatly' -> 'immediately' in comments.Kenneth R Westerback
2006-05-08more spacingTheo de Raadt
2006-05-03prebind - how to prelink a binary without throwing security out the windowDale Rahn
Prelink fixes the address of libraries making 'return to libc' attacks trival, prebind uses a different method to achieve most of the same gains, however without adding any security conerns. Still under development, now in-tree.
2005-09-22knf; ok drahnTheo de Raadt
2005-09-22Use std missing symbol print instead of MD custom, do not warn on weakDale Rahn
undefined symbols, or count them as failures. inspired kurt@
2005-09-21Simplify the internal symbol finding API, with some cleanup, prep forDale Rahn
next step. ok kurt@