loader issue ?

Peter S. Mazinger ps.m at gmx.net
Tue Jun 6 10:36:33 UTC 2006


On Tue, 6 Jun 2006 jean-marie.verdun at splitted-desktop.org wrote:

> Hi Peter,
> 
> Thanks for the information, but the same stuff compiled on a glibc 
> environment do not raised the issue. (I check the link target etc for each 
> stuff). Do you believe that the glibc loader stack is using some hints ? The other thing is that despite the fact that 

search the uClibc archives, the different behaviour in uClibc was 
explained by Joakim Tjernlund

> DT_NEEDED is not declared into one shared object, the LD_PRELOAD 
> environment variable should make disappear this issue ?
> 
> I will try to make further investigation.
> Jm

search the libs in /usr/lib/mozilla* which need those symbols and modify
the mozilla build to link against those libs, at least this would be what 
I would do (I am struggling w/ some other bug in uClibc-svn that does 
not allow to load any page from within firefox, so I won't research the 
missing symbols stuff in near future)

Peter
> 
> On Tue, 6 Jun 2006, Peter S. Mazinger wrote:
> 
> > On Tue, 6 Jun 2006 jean-marie.verdun at splitted-desktop.org wrote:
> >
> >> Hi Pete,
> >>
> >> Both libraries are specified during link phase of Eterm and Firefox.
> >
> > it is not eterm/firefox itself that fails, it is one of the used libs that
> > miss those symbols and do not have DT_NEEDED for those libs (I had the
> > problem myself, but haven't went to track down what has to be really done)
> >
> >> How can I check that the DT_NEEDED flags is set ?
> >
> > readelf -d <binary> | grep NEEDED
> >
> >> I attach an output of the LD_DEBUG load phase for the Eterm program.
> >>
> >> Jm
> >>
> >> On Tue, 6 Jun 2006, Peter S. Mazinger wrote:
> >>
> >>> On Mon, 5 Jun 2006 jean-marie.verdun at splitted-desktop.org wrote:
> >>>
> >>>> Hi,
> >>>>
> >>>> I made some progress porting enlightenment on top of Kdrive server and
> >>>> uClibc library. I am facing at the present time two strange behavior, one
> >>>> meet with Mozilla Firefox and one meet with Eterm. I do believe that both
> >>>> of them are coming from the same place.
> >>>> Some symbol are declared unresolved despite that they are declared
> >>>> into opened shared object during program startup.
> >>>
> >>> uClibc's ldso requires that you have DT_NEEDED entry for each lib you need
> >>> for an app.
> >>>>
> >>>> Running Eterm I got this error:
> >>>> Eterm: can't resolve symbol '__imlib_LoadImage'
> >>>
> >>> eterm needs probably DT_NEEDED for libImlib2.so
> >>>
> >>>> And firefox
> >>>> /usr/local/lib/firefox-1.5.0.2/firefox-bin: Can't resolve symbol
> >>>> 'pango_xft_get_font_map'
> >>>
> >>> libpangoxft.so here
> >>>
> >>>>
> >>>> Those symbols are standing respectively into:
> >>>> /usr/lib/libImlib2.so
> >>>>
> >>>> nm /usr/lib/libImlib2.so | grep __imlib_LoadImage
> >>>> return 0001e600 t __imlib_LoadImage
> >>>>
> >>>> and libpangoxft-1.0.so into /usr/lib regarding firefox issue.
> >>>>
> >>>> Using LD_PRELOAD is a workaround for firefox and I got it running
> >>>
> >>> better add the missing libs -lImlib2/-lpangoxft at link time to the
> >>> app/lib that is requiring it
> >>>
> >>>> successfully (I can browse Internet web pages), but this hint do not work
> >>>> for the Eterm issue. Imlib is quite complex stuff as the library is used
> >>>> to open image manipulation shared objects to support various format into:
> >>>> /usr/lib/imlib2/loaders/
> >>>> where ls return
> >>>>
> >>>> /usr/lib/imlib2/loaders/ani.so*   /usr/lib/imlib2/loaders/ico.so*
> >>>> /usr/lib/imlib2/loaders/png.so*   /usr/lib/imlib2/loaders/xcf.so*
> >>>> /usr/lib/imlib2/loaders/argb.so*  /usr/lib/imlib2/loaders/id3.so*
> >>>> /usr/lib/imlib2/loaders/pnm.so*   /usr/lib/imlib2/loaders/xpm.so*
> >>>> /usr/lib/imlib2/loaders/bmp.so*   /usr/lib/imlib2/loaders/jpeg.so*
> >>>> /usr/lib/imlib2/loaders/tga.so*   /usr/lib/imlib2/loaders/zlib.so*
> >>>> /usr/lib/imlib2/loaders/bz2.so*   /usr/lib/imlib2/loaders/lbm.so*
> >>>> /usr/lib/imlib2/loaders/tiff.so*
> >>>>
> >>>> Each of those object are opened. And after the loader can't resolve
> >>>> symbols standing into the original Imlib2.so file.
> >>>>
> >>>> I am using now, the standard 0.9.28 release (migrate from 0.9.27). It is
> >>>> hard for me to manage a test with SVN version. I can provide access to a
> >>>
> >>> svn will behave the same
> >>>
> >>> Peter
> >>>
> >>>> root fs where my environment stands, or provide any help needed to track
> >>>> down this issue.
> >>>>
> >>>> I will continue to try to understand it by producing a simple reproducer,
> >>>> but seems to be quite difficult at the present time.
> >>>>
> >>>> If LD_DEBUG set to 1 output is requested I can send it to you !
> >>>>
> >>>> Jm
> >>>>
> >>>>
> >>>
> >>> --
> >>> Peter S. Mazinger <ps dot m at gmx dot net>           ID: 0xA5F059F2
> >>> Key fingerprint = 92A4 31E1 56BC 3D5A 2D08  BB6E C389 975E A5F0 59F2
> >>>
> >>
> >
> > -- 
> > Peter S. Mazinger <ps dot m at gmx dot net>           ID: 0xA5F059F2
> > Key fingerprint = 92A4 31E1 56BC 3D5A 2D08  BB6E C389 975E A5F0 59F2
> >
> 
> 

-- 
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