Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | when resolving symbols with only weak defs, use first def, not last def | Rich Felker | 2011-07-25 | 1 | -0/+1 |
| | |||||
* | fix resolution of weak symbols (hopefully right now) and vdso | Rich Felker | 2011-07-24 | 1 | -3/+9 |
| | |||||
* | load vdso, if present, into the dso list | Rich Felker | 2011-07-24 | 1 | -2/+31 |
| | |||||
* | simplify dynamic linker startup | Rich Felker | 2011-07-24 | 1 | -23/+17 |
| | | | | | | instead of creating temp dso objects on the stack and moving them to the heap if dlopen/dlsym are used, use static objects to begin with, and just donate them to malloc if we no longer need them. | ||||
* | fix dlopen UB due to longjmp/volatile rules violation | Rich Felker | 2011-07-01 | 1 | -1/+1 |
| | |||||
* | simple rpath support (no token expansion yet) for dynamic linker | Rich Felker | 2011-06-30 | 1 | -2/+8 |
| | |||||
* | textrel support, cheap and ugly | Rich Felker | 2011-06-29 | 1 | -0/+5 |
| | |||||
* | reclaim the memory wasted by dynamic linking for use by malloc | Rich Felker | 2011-06-28 | 1 | -0/+39 |
| | |||||
* | use load address from elf header if possible | Rich Felker | 2011-06-28 | 1 | -1/+1 |
| | | | | | | | | | this is mostly useless for shared libs (though it could help for prelink-like purposes); the intended use case is for adding support for calling the dynamic linker directly to run a program, as in: ./libc.so ./a.out foo this usage is not yet supported. | ||||
* | make dynamic linker relocate the main program image last, after all libs | Rich Felker | 2011-06-28 | 1 | -0/+1 |
| | | | | | prior to this change, copy relocations for initialized pointer variables would not reflect the relocated contents of the pointer. | ||||
* | fix stale pointer issue in dynamic linker with dlopen | Rich Felker | 2011-06-26 | 1 | -0/+1 |
| | |||||
* | don't leave the lock held on dlopen failure.. | Rich Felker | 2011-06-26 | 1 | -2/+2 |
| | |||||
* | add RTLD_DEFAULT support | Rich Felker | 2011-06-26 | 1 | -1/+2 |
| | |||||
* | in dlopen: don't use null pointer | Rich Felker | 2011-06-26 | 1 | -3/+3 |
| | | | | deps can be null if a library has no dependencies (such as libc itself) | ||||
* | fix resolving symbols in objects loaded in RTLD_LOCAL mode | Rich Felker | 2011-06-26 | 1 | -0/+11 |
| | | | | | | basically we temporarily make the library and all its dependencies part of the global namespace but only for the duration of performing relocations, then return them to their former state. | ||||
* | experimental dlopen/dlsym and dynlink changes needed to support them | Rich Felker | 2011-06-26 | 1 | -8/+125 |
| | |||||
* | error handling in dynamic linking | Rich Felker | 2011-06-26 | 1 | -2/+19 |
| | | | | | | some of the code is not yet used, and is in preparation for dlopen which needs to be able to handle failure loading libraries without terminating the program. | ||||
* | fix some symbol resolution issues in dynamic linker | Rich Felker | 2011-06-25 | 1 | -4/+4 |
| | | | | | 1. search was wrongly beginning with lib itself rather than dso head 2. inconsistent resolution of function pointers for functions in plt | ||||
* | handle library paths better (ignore empty path components, etc.) | Rich Felker | 2011-06-25 | 1 | -3/+5 |
| | |||||
* | fix possible (questionable) strict aliasing violations and ptr arith | Rich Felker | 2011-06-25 | 1 | -3/+3 |
| | |||||
* | proper path searching for dynamic linker | Rich Felker | 2011-06-25 | 1 | -14/+38 |
| | | | | | first, use $LD_LIBRARY_PATH unless suid. if that fails, read path from /etc/ld-musl-$ARCH.path and fallback to a builtin default. | ||||
* | discard dso descriptors after performing relocations | Rich Felker | 2011-06-25 | 1 | -0/+12 |
| | | | | | eventually (once dlopen exists) this behavior will be conditional on dlopen/dlsym not being reachable. | ||||
* | keep track of which dsos have been relocated | Rich Felker | 2011-06-25 | 1 | -0/+1 |
| | |||||
* | prepare support for LD_LIBRARY_PATH (checking suid/sgid safety) | Rich Felker | 2011-06-23 | 1 | -0/+6 |
| | | | | | | | | | | the use of this test will be much stricter than glibc and other typical implementations; the environment will not be honored whatsoever unless the program is confirmed non-suid/sgid by the aux vector the kernel passed in. no fallback to slow syscall-based checking is used if the kernel fails to provide the information; we simply assume the worst (suid) in this case and refuse to honor environment. | ||||
* | dynamic linker 64bit fix: hash table entries are always 32bit | Rich Felker | 2011-06-18 | 1 | -2/+2 |
| | |||||
* | experimental dynamic linker! | Rich Felker | 2011-06-18 | 1 | -0/+385 |
some notes: - library search path is hard coded - x86_64 code is untested and may not work - dlopen/dlsym is not yet implemented - relocations in read-only memory won't work |