summaryrefslogtreecommitdiff
path: root/libexec/ld.so
AgeCommit message (Collapse)Author
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-04-16It's been a quarter century: we can assume volatile is present with that name.Philip Guenther
2014-03-18Retire hp300, mvme68k and mvme88k ports. These ports have no users, keepingMiod Vallat
this hardware alive is becoming increasingly difficult, and I should heed the message sent by the three disks which have died on me over the last few days. Noone sane will mourn these ports anyway. So long, and thanks for the fish.
2014-02-22Delete descriptions of env variables that we don't actually support.Philip Guenther
They all sound like bad ideas anyway. ok matthew@ deraadt@
2014-02-16Unbreak ld.so with ssp-strong/all on sparc64 and powerpc. With theMartynas Venckus
new SSP logic it additionally protects functions which have their local addresses taken of, and _dl_boot_bind() gets selected. We have to go through GOT to reach __guard_local, however it hasn't been relocated yet. So add boot.c and don't protect everything up to the point until it has been relocated and no longer needs the loff adjustment. OK matthew@. Full build done & tested by florian@.
2014-01-23improve some typesTheo de Raadt
2014-01-23Remove LD_NORANDOM feature. It serves no usable purpose. DeterminismTheo de Raadt
in this one specific area is not going to help debugging, because so many other parts are non-deterministic. ok guenthre matthew jsing
2014-01-19Only i386 needs mquery; delete the static inlines from amd64 and hppaPhilip Guenther
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-12-31Don't consider ld.so to be successfully built unless a test programPhilip Guenther
using it works, because seeing "make build" fail right after it installs a broken ld.so is *#!&%(@*)# annoying. Presumably needs to be fixed for cross-builds. ok matthew@ deraadt@ miod@
2013-12-30When a function does not obviously terminate itself, it is good practiceTheo de Raadt
to clean up a bit.
2013-12-28Do not need __guard anymoreTheo de Raadt
Discussion with miod ok kettenis
2013-12-25Pass _dl_dtors as the csu cleanup routine on shMiod Vallat
2013-12-25Pass _dl_dtors as the csu cleanup routine on arm.Miod Vallat
2013-12-25Pass _dl_dtors as the csu cleanup routine on m68k and m88k; change theMiod Vallat
conditional in the MI code to only list the architectures left to adapt.
2013-12-25Make ld.so pass its cleanup handler in %g1 as required by the SPARC System VMark Kettenis
ABI, and stop calling atexit(4) directly from ld.so on sparc.
2013-12-24Remove some leftover bits that are no longer necessary now that we noMark Kettenis
longer call atexit(4) directly on hppa.
2013-12-23Use slightly diffrerent code to get the global offset table address. ThisMark Kettenis
version will match the (upcoming) 32-bit version (for sparc) and allegedly is slightly faster.
2013-12-23Make ld.so pass its cleanup handler in %rdx as required by the AMD64 System VMark Kettenis
ABI, and stop calling atexit(4) directly from ld.so on amd64. Note that this means that binaries built before the middle of november may no longer call destructors in shared libraries implemented in C++. Update your packages! ok guenther@
2013-12-23Make ld.so pass its cleanup handler in r7 as required by the PowerPC System VMark Kettenis
ABI, and stop calling atexit(4) directly from ld.so on powerpc.
2013-12-23Fix indentation.Mark Kettenis
2013-12-23Make ld.so pass its cleanup handler in v0 and stop calling atexit(4) directlyMark Kettenis
from ld.so on alpha. Note that this means that binaries built before early december may no longer call destructors in shared libraries implemented in C++. Update your packages!
2013-12-23Make ld.so pass its cleanup handler in %g1 as required by the SPARC System VMark Kettenis
ABI, and stop calling atexit(4) directly from ld.so on sparc64
2013-12-23Call __cxa_atexit(3) instead of atexit(3). Preparation for upcoming changes toMark Kettenis
make it possible to call atexit from dynamically loaded shared objects.
2013-12-23Make ld.so pass its cleanup handler in %arg1 and stop calling atiexit(4)Mark Kettenis
directly from ld.so on hppa.
2013-12-23Make ld.so pass its cleanup handler in %edx as required by the i386 System VMark Kettenis
ABI, and stop calling atexit(4) directly from ld.so on i386. ok guenther@
2013-12-03stop using sys/syslimits.h directly, and use limits.hTheo de Raadt
prodded by millert
2013-11-27unsigned char for ctypeTheo de Raadt
ok okan kettenis
2013-11-27make the _dl_isalnum() resemble the ctype versionTheo de Raadt
prodding from kettenis
2013-11-13Reduce casts by careful use of char*Philip Guenther
ok deraadt@
2013-11-13prototype & void * math cleanupTheo de Raadt
ok guenther
2013-11-13Complete the prototype in a function cast to quiet a gcc warningPhilip Guenther
ok deraadt@
2013-11-10Make sure we pass a NULL cleanup argument to __start() by initializingPhilip Guenther
a2 to zero in the kernel and ld.so. This will let us add the conditional atexit() call to crt0 ok kettenis@ miod@
2013-10-18does not need stab.hTheo de Raadt
2013-08-13unbreakMiod Vallat
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-07-15Remove some unused variables, from David Hill dhill at mindcry.orgJeremie Courreges-Anglas
While here, do better checks in elf_write_lib() and ansify elf_sum_reloc()'s decl/def. With input from and ok krw@
2013-07-14Fix possible memory/fd leak in the error path.Jeremie Courreges-Anglas
From David Hill dhill at mindcry.org; ok krw@
2013-07-10no more link(5). either remove references entirely, or point folksJason McIntyre
to elf(5) instead; ok miod
2013-07-05ELF_TOOLCHAIN bye bye.Miod Vallat
2013-07-05VAX ELF userland bits. Consists mostly of register prefix additions.Miod Vallat
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-04Fix a bunch of "variable 'foo' set but not used." warnings emitted by newer GCC.Brad Smith
ok matthew@ kurt@
2013-06-01Make all the syscall prototypes consistent with their real forms for types,Philip Guenther
whitespace, and no argument names. ok matthew@ deraadt@
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-17Try and support the non-PIC TEXTREL relocations which may creep in binariesMiod Vallat
when linked against non-pic material (such as linking against libgcc without passing -fpic or -fPIC on the commandline). Given the large userland address space (4GB) and random library placement, it is unlikely that these relocations can ever suceed anyway (DISP26 only allows for a 256MB offset); _dl_exit() in that case, after printing a warning message. That's better than dumping core.
2013-05-08Implement symbol caching and RELACOUNT/RELCOUNT optimizations.Philip Guenther
Much assistance and testing by miod ok miod@
2013-05-04fix use after free in error pathsJonathan Gray
ok sthen@ jung@ fgsch@
2013-04-20Prefer the processor-specific _DYNAMIC[] tags value to find out the boundariesMiod Vallat
of the .plt whenever possible, and fallback to the old behaviour of searching for special symbols pointing to its boundaries. No functional change.