Age | Commit message (Collapse) | Author |
|
the name of our mips resolver function to match gdb's expectations.
|
|
|
|
Add elf_machine_dynamic() and elf_machine_load_address() for
all archs. elf_machine_dynamic() replaces the #ifdef mess to
get at the GOT. elf_machine_load_address() is needed to execute
ldso directly, this is not complete yet.
I probably broke one or two archs(only tested PPC) so please
try and report problems. For a report to be useful you need
to enable __SUPPORT_LD_DEBUG_EARLY__ and __SUPPORT_LD_DEBUG__
|
|
Mips did not honour the LD_BIND_NOW env. variable or the DT_BIND_NOW flag
in the dynamic section.
|
|
- Replace all open coded dynamic handling with a function. Reduces size.
- Fold special MIPS dynamic code into the dynamic_info item.
- Add RELRO support.
- Support linking with "-z now".
- prepare for DT_RELACOUNT/DT_RELCOUNT optimization.
- Add -z now to ld.so linking, this is what ld.so does anyway so
let the linker know that.
|
|
|
|
only the global GOT entry relocations for the loaded shared libs were being
handled. This made applications segfault when using un-fixedup symbols. After
many hours debugging to track down the problem, this patch makes the mips port
happy again.
-Erik
|
|
Since MIPS don't have COPY relocs it seems apropiate to define
DL_NO_COPY_RELOCS. This will optimize dl_find_hash somewhat.
|
|
Begin converting some big ugly macros to inline functions
instead
|
|
Hi it is me again.
This is the latest ldso patch. the NEW weak symbol handling works now
with a little special handling in _dl_find_hash(). You get to chose
if you want the new or old handling :)
There was 2 missing _dl_check_if_named_library_is_loaded() calls in _dlopen().
I then disabled the _dl_check_if_named_library_is_loaded() in dl-elf.c since
it is rendundant.
Question, why does some _dl_linux_resolver(), like i386, have 2 calls
to _dl_find_hash()? I think that is wrong, isn't it?
I really hope you can check this out soon ...
|
|
For sh64 we need implicit access to the symtab, primarily to get at the
->st_other value. This presently isn't possible, as PERFORM_BOOTSTRAP_RELOC()
is invoked as such:
PERFORM_BOOTSTRAP_RELOC(rpnt, reloc_addr, symbol_addr, load_addr);
while we can easily get the symtab_index value from rpnt->r_info, this still
doesn't buy us easy access to the actual table. As such, I've modified
PERFORM_BOOTSTRAP_RELOC() to take an additional SYMTAB argument. Most
architectures aren't going to care about this, but unfortunately we don't
have any other options for sh64.
The following patch fixes up the API for what we need for sh64, and updates
the other architectures appropriately.
|
|
out page alignment issues. As we we were assuming 4k pages, which
need not be the case...
|
|
|
|
Uh, this patch fixes a few bugs that I overlooked. Shoot, even BusyBox
wouldn't work until these are applied. Erik, plop this into CVS please.
Thanks.
|
|
I am very pleased to announce that the MIPS dynamic linker/loader
for uClibc is now working. It works on big and little endian
platforms.
A few minor changes were needed to avoid breaking ldd, and since this
makes some non-trivial changes, I have tested on x86, arm, and powerpc
to be sure thoese arches didn't get broken. Excellent work Steven!
|
|
|
|
complete, but off to a fine start.
|