Age | Commit message (Collapse) | Author |
|
- 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.
|
|
up a bit. Native and remote debugging of shared libs and threaded apps now
works on mips.
|
|
|
|
|
|
without LDSO_CACHE_SUPPORT turned on, LDSO_CONF and LDSO_CACHE are
not defined anywhere, but still used by ldconfig.c This patch allows
ldconfig to build again, although there may be a cleaner way to fix
this????
Applied with minor modification.
|
|
with them.
|
|
|
|
|
|
Remove definition of _dl_parse_copy_information() for powerpc.
Remaining archs can do the same.
Make debugging output of "relocation processing: xxx" a bit more sane.
|
|
|
|
Hello!
Here is the modified unsecvars patch that applies to cvs.
|
|
dl-cache.h and make use of it. Also disables the lib-path-redundancy check
for the case the cache is not used. Makes use of _PRELOAD_FILE_SUPPORT.
From Peter Mazinger.
|
|
From Peter Mazinger.
|
|
After the addition of a configuration option for
enabling the support of /etc/ld.so.cache, I thought
it might be a good idea to add one for the support
of the /etc/ld.so.preload file too. So here it is.
While doing this, I also noticed that the dynamic
linker would hang indefinitely if either LD_PRELOAD
or /etc/ld.so.preload contained a library which was
already loaded, so I made a patch for that too.
And of course, I could not resist from doing a little
clean up of comments and indentation, so here is a
patch for that too.
|
|
Mazinger implements the changes suggested by me on the uclibc list.
On Tuesday 28 September 2004 02:24 pm, Erik Andersen wrote:
> What I think should be done is
>
> *) Someone that cares about USE_CACHE should fix that option
> up to be sure it works, and give it a proper config entry
> in extra/Configs/Config.in, and rename it to something
> more appropriate such as LDSO_CACHE_SUPPORT.
>
> *) When LDSO_CACHE_SUPPORT=n, UCLIBC_RUNTIME_PREFIX /usr/X11R6/lib
> should be included in the default library search path in
> dl-elf.c, ldd, and ldconfig.
>
> *) When LDSO_CACHE_SUPPORT=y, UCLIBC_RUNTIME_PREFIX /usr/X11R6/lib
> should be excluded from the default library search path in
> dl-elf.c, ldd, and ldconfig, and those wishing to include
> X11 stuff should add that into /etc/ld.so.conf and re-run
> ldconfig.
>
> *) At present, LDSO_CONF and LDSO_CACHE use the same names
> and same structure as glibc. This precludes
> LDSO_CACHE_SUPPORT being uses in any sane fashion on a
> dial glibc and uClibc system. Just as it was necessary
> for use to use a different name for 'libuClibc' rather
> than 'libc', and 'ld-uClibc.so.0' rather than
> 'ld-linux.so.2' it seems that these configuration files
> really ought to be given different names.
>
|
|
Search in UCLIBC_RUNTIME_PREFIX"lib" before
UCLIBC_RUNTIME_PREFIX"usr/lib".
X11 users should enable USE_CACHE in Rules.mak, add
/usr/X11R6/lib to /etc/ld.so.conf and run ldconfig.
|
|
Move COPY relocs back to _dl_do_reloc().
White space cleanup.
|
|
|
|
|
|
Move COPY relocs back to _dl_do_reloc().
|
|
|
|
Someone needs to test if it works to build and run gcj.
|
|
|
|
but can be nonzero for JMP relocs as well.
All Rela arches need to do this, test and send a patch :)
Remove unneeded test in R_PPC_COPY.
|
|
but powerpc).
If you are using buildroot and soft floating point, you may have to
rebuild the libm.so library, copy it to staging_dir/lib and rebuild
your application.
Move handling of R_386_COPY back into _dl_do_reloc(all archs should
do this). Adjust the first argument to _dl_memcpy as it looks wrong
to have symtab[symtab_index].st_value as destination for the mem copy.
|
|
If you are using buildroot and soft floating point, you may have to
rebuild the libm.so library, copy it to staging_dir/lib and rebuild
your application.
Cleanups as well.
|
|
This needs testing with apps that have complex dependencies.
|
|
|
|
|
|
|
|
|
|
|
|
Now all functions and vaiables can be made static to reduce relocs.
Basicly, all variables should be merged into one struct variable
and then export that struct. Exported functions should be exported
as functions pointers in the above struct. This will reduce the
number of relocs inside ldso to a handful.
Add -Bsymbolic to linker for ldso. This will resolve all functions
(all JMP_SLOT goes away) and the remaining relocs are transformed into
RELATIVE relocs.
|
|
|
|
misread this code and removed it, sorry.
I printed the values of _dl_brkp and _dl_envp in ldso and
got this when executing:
ls:
__curbrk: 0x300c16e0
__environ: 0x1008372c
ldd:
__curbrk: 0x300776e0
__environ: 0x3007759c
why is__environ in the app when executing ls but not ldd?
|
|
|
|
|
|
|
|
the whole lot in a single pass.
-Erik
|
|
|
|
This removes some crap in libdl.c(and future libs which needs
to access ldso functions).
What do you think?
|
|
Fixed a bug in libdl.c where the RTLD_GLOBAL was assigned
wronly.
|
|
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
|
|
"I fixed the _dl_parse_copy_information in the same way than for the
powerpc and it works fine for me.
You may luck at the patch for the powerpc/elfinterp.c, where I change
the paramter of a dl_dprintf statement. Now we use the same
parameters than for the relocation copy."
Arch mantainers, please do the same.
When all arches has been fixed, we can remove of _dl_parse_copy_information,
it is just a waste of CPU cycles.
|
|
Hi Manuel & Erik
I think I know why MIPS is broken. _dl_perform_mips_global_got_relocations() is
broken. It will due to my latest changes reloctate ldso. This
function needs to die and its job should be done inside _dl_parse_relocation_information().
It is mostly a copy and paste job,
Also PERFORM_BOOTSTRAP_GOT and PERFORM_BOOTSTRAP_RELOCATION should be fixed, they
use symbols which aren't passed as arguments.
Jocke
|
|
Remove unused function parameter in ldso.
Remove echo option '-e' since it is not supported on Solaris.
|
|
|
|
to use '_dl_pagesize'
-Erik
|
|
|
|
|