Hi Ginn, Ginn Chen píše v út 13. 07. 2010 v 05:58 -0600: > If it dumps a core, I think you met a known issue of nspr library. > When nspr initializes, it tries to find nspr_use_zone_allocator in all > dependency libraries. > If one of these libraries is marked as lazy loaded, and it uses nspr in > .init, it will reenter nspr initialization and crash. >
I do not believe FBreader or its own libraries know about nspr but yes, it seems that .init is reentered again (I will check if there is some core file after this). But it would be good to understand the trigger here because FBReader is using only public libraries and knows nothing about nspr deep in library stack. I will look at FBReader:/usr/lib/zlibrary/ui/zlui-gtk.so internals if it has some own init section. > Solutions: > 1) Do not use lazy load for these libraries, or export LD_BIND_NOW=1 > 2) In executable, define a global symbol for nspr_use_zone_allocator, assign > it to zero. > I can use 2) as temporary workaround but still system libraries should be safe from this. Best regards, Milan > Ginn > > On Jul 13, 2010, at 12:55 AM, Milan Jurik wrote: > > > Hi Rod, > > > > Rod Evans píše v ne 11. 07. 2010 v 22:27 -0700: > >> On 7/11/10 1:35 PM, Milan Jurik wrote: > >>> Hi, > >>> > >>> I am trying to use FBReader (http://www.fbreader.org/) on OSol, b143. > >>> But the result fails with > >>> > >>> $ LC_ALL=C FBReader > >>> loading /usr/lib/zlibrary/ui/zlui-gtk.so > >>> ld.so.1: FBReader: fatal: nspr_use_zone_allocator: can't find symbol > >> > >> Try: > >> > >> $ LC_ALL=C LD_DEBUG=files,symbols LD_DEBUG_OUTPUT=/tmp/dbg FBReader > >> > >> And then inspect the /tmp/dbg.{pid} that produces the > >> nspr_use_zone_allocator error. You should see who is > >> making the reference, and which libraries are being > >> searched for the definition. > >> > >> These failures are typically because the object making > >> the reference hasn't defined the dependency it requires > >> that provides the symbol, or the required dependency has > >> been changed and no longer offers the required definition. > >> > > > > If I compare "files,symbols", then I do not see minor difference, > > FBReader nspr_use_zone_allocator hunt stats with: > > > > 02534: 1: symbol=nspr_use_zone_allocator; dlsym() called from > > file=/usr/lib/mps > > /libnspr4.so; starting at file=/usr/bin/FBReader > > [...] > > 02534: 1: rescanning for lazy dependencies for symbol: > > nspr_use_zone_allocator > > > > > > While, curl contains only the second line. > > > > Both "FBReader" and "curl" contains: > > > > 02534: 1: ld.so.1: FBReader: fatal: nspr_use_zone_allocator: can't find > > symbol > > > > 02536: 1: ld.so.1: curl: fatal: nspr_use_zone_allocator: can't find > > symbol > > > > But curl is ignoring it and continue. FBReader in more detailed log > > ("files,bindings,detail") a bit later produce: > > > > > > 03065: 1: binding file=/usr/lib/libzlcore.so.0.13 (dlsym) to > > file=/usr/lib/zlibrary/ui/zlui-gtk.so (0xfdf30f38:0x20f38): symbol > > 'initLibrary' > > ld.so.1: FBReader: fatal: nspr_use_zone_allocator: can't find symbol > > > > And FBReader ends. > > > > Best regards, > > > > Milan > > > > _______________________________________________ > > tools-linking mailing list > > [email protected] > _______________________________________________ tools-linking mailing list [email protected]
