dlopen / dlsym issue ?
Peter S. Mazinger
ps.m at gmx.net
Tue Apr 11 09:20:35 UTC 2006
On Tue, 11 Apr 2006 jean-marie.verdun at splitted-desktop.org wrote:
> Hi Joakim,
>
> I basically took a lot of time reading and browsing the source code
> difference between 0.9.27 and latest snapshot focusing on libdl and ldso
> stuff. This is something which is easily upgradable as ld-so and libdl are
> statically linked shared object and are mostly independant of the other
> parts of the code.
> So I applied some upgrade from 0.9.27 source tree to libdl.c, ldso.c
> dl-elf.c and elfinterp.c.
> It is hard for me to have a look with 0.9.28 source tree, as there is huge
> amount of software compiled on top of the 0.9.27. It will take very long
> time to check that stuff.
.28 provides an update path to allow you to update libc, rebuild all your
apps, then rebuild .28 again without compatibility stuff enabled.
set DL_FINI_CRT_COMPAT (you should set MALLOC_GLIBC_COMPAT as well)
after rebuilding all apps you can disable DL_FINI_CRT_COMPAT
from .28 to svn you need ATEXIT_COMPAT/UCLIBC_SUSV3_LEGACY enabled, now
you need to rebuild anything using atexit(), then you can switch
ATEXIT_COMPAT off.
UCLIBC_SUSV3_LEGACY can't be switched off (it can be done, but there is no
"official" update path).
MALLOC_GLIBC_COMPAT has to stay enabled.
> What I could try to do is implementing a shorter implementation of the bug
> as to provide a reproducer to people having a 0.9.28 library.
> Does anyone know where I could download an ext2 image of a working 0.9.28
> version ?
> In the meantime here is the DT_NEEDED list from the evas_buffer_test.
> NEEDED libevas.so.1
> NEEDED libdl.so.0
> NEEDED libeet.so.0
> NEEDED libjpeg.so.62
> NEEDED libfontconfig.so.1
> NEEDED libfreetype.so.6
> NEEDED libz.so.1
> NEEDED libexpat.so.0
> NEEDED libm.so.0
> NEEDED libc.so.0
> but it is a normal behavior not seeing in this output any module.so shared
> object as they are automatically discovered during the execution and
> dlopen is called directly by the application itself.
works probably only if lazy binding is used (without -Wl,-z,now), and even
then there are some problems (for sure if RUNPATH/RPATH has $ORIGIN,
not supported by uClibc's ld.so)
Peter
--
Peter S. Mazinger <ps dot m at gmx dot net> ID: 0xA5F059F2
Key fingerprint = 92A4 31E1 56BC 3D5A 2D08 BB6E C389 975E A5F0 59F2
More information about the uClibc
mailing list