summaryrefslogtreecommitdiff
path: root/libexec/ld.so
AgeCommit message (Collapse)Author
2011-07-23Properly align the stack early on in the ld.so startup code such that code runMark Kettenis
from .init that uses SSE doesn't randomly trigger SIGBUS. ok drahn@, miod@
2011-07-14__opendir2, DTF_NODUP, and __DTF_READALL can die. struct direntTheo de Raadt
dd_flags is renamed to the placeholder position dd_unused so that we can spot "broken software" which assumes we have Jan Simon Pendry's union mounts (we don't have them, and won't have them ever again). __opendir2 question spotted by matthew verified to not break ports by sthen
2011-07-13Delete items on grpreflist when walking them to decrement the count,Dale Rahn
otherwise double decrement can occur. ok kurt@ timeout on other reviewers.
2011-07-04Add ld.so ia64 support.Paul Irofti
2011-06-27Backout the dynamic linker speed improvement diff for now, it stillStuart Henderson
has some issues. Discussed with various, ok drahn@
2011-05-26No need to call _dl_newsymsearch() twice; ok drahn@Otto Moerbeek
2011-05-22Dynamic linker speed improvement diff. tested by several sinc k2k11.Dale Rahn
get it in tree now deraadt@, ok by several ports folks. Thanks for the testing.
2011-05-10Fix previous. On i386, library.c isn't compiledOtto Moerbeek
2011-05-09Outsmart gcc4 on mips* by moving the declaration of _dl_debug_stateOtto Moerbeek
outside the file the call is in. Since the function is empty, gcc optmizes the call away, breaking the gdb hook needed to resolve symbols in lazy bound shared libs. Analysis by kettenis@; ok miod@ kettenis@
2011-04-29-x is currently unimplemented, so comment it out from the man page, and removeJason McIntyre
it from usage(); if any developer wants to confirm that it will never be an option, let me know and i'll zap the text entirely; this is one half of a diff from Amit Kulkarni - i won;t be touching the other half;
2011-04-08Do not use NULL in integer comparison.Theo de Raadt
2011-04-06Avoid using NULL in non-pointer contexts: use 0 for integer values and '\0'Miod Vallat
for chars.
2011-03-12excessive / at the end of a .PATH; ok guenther drahnTheo de Raadt
2010-12-13rename() is the atomic operation, unlink() is just there to createMarc Espie
races between ldconfig and ld.so (simple commit, hours of bug hunt...) okay kettenis@, deraad@, miod@
2010-12-12Allocate a full C compiler-style stack frame that includes space for 6Mark Kettenis
extended word argument slots required by the ABI. Apparently gcc4 uses them in cases where gcc3 didn't. Fixes segmentation faults with gcc4 because the space for the slots was colliding with the space for dl_data that we allocated on the stack. ok miod@, drahn@
2010-12-07Make the preload error distinct from the normal error.Dale Rahn
ok espie@
2010-11-16Fix error message when ld.so ends up loading a different than expectedDale Rahn
library, but other library needs the one loaded. mostly ok kurt@
2010-10-30fix a 10 year old bug in the memory allocator, which affected only sparc.Theo de Raadt
sparc has 4 byte long, but needs 8 byte alignment. recently the DIR struct was changed to contain some off_t, which needs 8 byte alignment. turns out the allocator calculated the bias for alignment, and then subtracted out it's private linkage storage afterwards. on hppa this worked because a 8-byte object can be loaded at a 4-byte boundary; on all other architectures the situation was either 4/4 or 8/8. thanks for a bit of help from drahn
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-10-27Fix comment; no binary change. OK deraadt@Todd C. Miller
2010-10-27repair ;;Theo de Raadt
2010-10-25Search loaded libs first and add support for SONAME matching. ok drahn@Kurt Miller
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-08-11Make _dl_searchnum signed as originally intended.Dale Rahn
Pointed out by patrick keshish.
2010-07-02Add Makefile.inc for hppa64 to aid in building cross tools.Joel Sing
ok drahn@ kettenis@
2010-07-01When generating grpsym lists, avoid duplicates without searching theDale Rahn
already generated list. Speeds up startup on deeply nested dlopen binaries. ok guenther@, tested by ckuethe@ and ajacoutot@
2010-06-05Argh, revert previous change, for older binutils do not grok the fic() change.Miod Vallat
2010-06-05Explicitely pass a %sr register to fic instructions, instead of realying onMiod Vallat
the assembler to pass %sr0 by default. No binary change. ok kettenis@
2010-05-27Synchronize caches after modifying the data words in the PLT stub to preventMark Kettenis
instructions in the same cache line from being corrupted. ok deraadt@, miod@
2010-05-11Correct the _dl_sigprocmask() stub to take and store signal masksPhilip Guenthe
as 32bit values instead of 64bit values, synchronizing it with the libc stub. gcc4 apparently packs the stack in _dl_bind() more tightly, so this was resulting in the saved rbx register being overwriten. ok drahn@, marco@, NicM@
2010-05-09use _dl_memset() instead of bzero() here. Unbreaks sparc build.Matthieu Herrb
ok kettenis@
2010-05-09Reserve space for 6 extended word argument slots required by the ABI.Mark Kettenis
Apparently gcc4 uses them in cases where gcc3 didn't. Fixes segmentation faults with gcc4 because the space for the slots was colliding with the space for dl_data that we allocated on the stack. ok miod@
2010-05-03Fix breakage from last commit. Bad guenther@, no cookie!Miod Vallat
2010-05-03Make powerpc consistent with the other platforms: SYM_SEARCH_OBJPhilip Guenthe
overrides SYM_DLSYM, so remove the latter ok drahn@, testing krw@
2010-05-02Fix breakage from last commit. Bad guenther@, no cookie!Mark Kettenis
2010-05-02Combine the signal mask handling into _dl_thread_bind_lock(), as it's MI.Philip Guenthe
ok drahn@
2010-05-01bzero a struct to appease gcc4.Jonathan Gray
ok drahn@
2010-04-24Fix handling of more than 32768 PLT entries. Mostly from NetBSD.Mark Kettenis
eyeballed by deraadt@ and drahn@
2010-03-30several missing closedir() callszinovik
regress test run fine with this changes ok deraadt@, drahn@
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-02-03Use MACHINE_CPU instead of MACHINE_ARCH to pick the correct machine dependentMiod Vallat
files or directories when applicable. The inspiration and name of MACHINE_CPU come from NetBSD, although the way to provide it to Makefiles is completely different. ok kettenis@
2010-02-01Properly restore ret1 instead of overwriting ret0 with the saved value.Mark Kettenis
Fixes lazy binding for functions that return results larger than 64 bits (such as structs). ok miod@
2010-01-03Make lazy binding work on hppa.Mark Kettenis
ok miod@
2010-01-02Fix handling of hppa RELOC_IPLT relocations during 'bootstrap relocation'.Mark Kettenis
ok miod@, deraadt@, jsing@
2010-01-02the abstraction of using a function pointer for the print functions isTheo de Raadt
not needed (and secondly, ran into hppa not relocating function pointers correctly) ok kettenis drahn
2009-12-30Remove paths from the prebind code that shouldn't be present.Dale Rahn
2009-10-28rcsid[] and sccsid[] and copyright[] are essentially unmaintained (andTheo de Raadt
unmaintainable). these days, people use source. these id's do not provide any benefit, and do hurt the small install media (the 33,000 line diff is essentially mechanical) ok with the idea millert, ok dms
2009-08-19In ldconfig the dewey field of shlib_list was only partially filledAlexander Bluhm
as bcopy used the number of elements instead of the array's size. As a consequence, the wrong version of a library could be selected if the library had many minor numbers. from Christian Rusch; ok otto@
2009-08-16Do not have multiple va_end(). Ok miod@ + many more.Anders Magnusson