Community Packages

Please read this before reporting a bug:
https://wiki.archlinux.org/title/Bug_reporting_guidelines

Do NOT report bugs when a package is just outdated, or it is in the AUR. Use the 'flag out of date' link on the package page, or the Mailing List.

REPEAT: Do NOT report bugs for outdated packages!
Tasklist

FS#25391 - [root] incorrect dependent libraries for ROOT libraries

Attached to Project: Community Packages
Opened by Sebastien Binet (bins) - Wednesday, 03 August 2011, 16:03 GMT
Last edited by Thomas Dziedzic (tomd123) - Thursday, 04 August 2011, 20:52 GMT
Task Type Bug Report
Category Packages
Status Closed
Assigned To Thomas Dziedzic (tomd123)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description:

it seems the dependent libraries for all (?) ROOT libraries are missing.
e.g:
me@archlinux$ ldd /usr/lib/root/libCore.so.5.30
linux-vdso.so.1 => (0x00007fff6398d000)
libz.so.1 => /usr/lib/libz.so.1 (0x00007f0e401a4000)
liblzma.so.5 => /usr/lib/liblzma.so.5 (0x00007f0e3ff82000)
libpcre.so.0 => /lib/libpcre.so.0 (0x00007f0e3fd46000)
libcrypt.so.1 => /lib/libcrypt.so.1 (0x00007f0e3fb0f000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f0e3f805000)
libm.so.6 => /lib/libm.so.6 (0x00007f0e3f582000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007f0e3f36c000)
libc.so.6 => /lib/libc.so.6 (0x00007f0e3f00b000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00007f0e3eded000)
/lib/ld-linux-x86-64.so.2 (0x00007f0e40d71000)

whereas, at CERN:
me@lxplus: ldd /afs/cern.ch/atlas/offline/external/LCGCMT/LCGCMT_60c/InstallArea/x86_64-slc5-gcc43-opt/lib/libCore.so
linux-vdso.so.1 => (0x00007fff053fc000)
libz.so.1 => /afs/cern.ch/atlas/offline/external/LCGCMT/LCGCMT_60c/InstallArea/x86_64-slc5-gcc43-opt/lib/libz.so.1 (0x00002b9f73ad8000)
libncurses.so.5 => /usr/lib64/libncurses.so.5 (0x00002b9f73cef000)
libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00002b9f73f69000)
libCint.so => /afs/cern.ch/atlas/offline/external/LCGCMT/LCGCMT_60c/InstallArea/x86_64-slc5-gcc43-opt/lib/libCint.so (0x00002b9f741a1000)
libdl.so.2 => /lib64/libdl.so.2 (0x00002b9f74b36000)
libstdc++.so.6 => /afs/cern.ch/sw/lcg/external/gcc/4.3.5/x86_64-slc5/lib64/libstdc++.so.6 (0x00002b9f74d3a000)
libm.so.6 => /lib64/libm.so.6 (0x00002b9f75040000)
libgcc_s.so.1 => /afs/cern.ch/sw/lcg/external/gcc/4.3.5/x86_64-slc5/lib64/libgcc_s.so.1 (0x00002b9f752c4000)
libc.so.6 => /lib64/libc.so.6 (0x00002b9f754da000)
/lib64/ld-linux-x86-64.so.2 (0x00002b9f72f25000)


ie: the dependence against libCint.so is missing.

the same "feature" shows up for a few of the other ROOT libraries I tested.

this means one cannot dlopen e.g. libCore.so:

me@archlinux$ python2
>>> import ctypes
>>> ctypes.cdll.LoadLibrary("libCore.so")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/ctypes/__init__.py", line 431, in LoadLibrary
return self._dlltype(name)
File "/usr/lib/python2.7/ctypes/__init__.py", line 353, in __init__
self._handle = _dlopen(self._name, mode)
OSError: /usr/lib/root/libCore.so: undefined symbol: _ZTIN4Cint11G__TypeInfoE

whereas it of course work fine at CERN:
me@lxplus$ python2
>>> import ctypes
>>> ctypes.cdll.LoadLibrary("libCore.so")
<CDLL 'libCore.so', handle 335dcd0 at 2b446cb95c90>

===
I suppose this has to do with -Wl,--as-needed in the LDFLAGS but didn't find a way to test that. (I tried to export LDFLAGS with just -Wl,--hash-style=gnu to no avail)

-s
This task depends upon

Closed by  Thomas Dziedzic (tomd123)
Thursday, 04 August 2011, 20:52 GMT
Reason for closing:  Fixed
Additional comments about closing:  pkgrel 4
Comment by Thomas Dziedzic (tomd123) - Thursday, 04 August 2011, 16:27 GMT
This is strange,
I tried recompiling with:
unset CFLAGS
unset CXXFLAGS
unset LDFLAGS
and it didn't fix this.

Do you know which flags were used to build the root that is working?
Comment by Sebastien Binet (bins) - Thursday, 04 August 2011, 16:59 GMT
the linking was done like that:

g++ -shared -Wl,-soname,libCore.so -m64 -g -o lib/libCore.so [..bunch of .o ..] -lz lib/liblzma.a lib/libpcre.a -lcrypt -Llib -lCint -ldl

which indeed looks better than what I have in my build-log:

g++ -shared -Wl,-soname,libCore.so -m64 -O2 -o lib/libCore.so [..bunch of .o ..] -lz -llzma -L/usr/lib -lpcre -lcrypt

here is the build-log of the CERN nightlies:
http://lcgapp.cern.ch/spi/aaLibrarian/nightlies/x86_64-slc5-gcc43-dbg/dev1.Thu_ROOT_5_30_00-patches-x86_64-slc5-gcc43-dbg-log.html

-s
Comment by Sebastien Binet (bins) - Thursday, 04 August 2011, 17:24 GMT
ah!
looking at the configure options, one can see that very import switch:
--enable-explicitlink

which is self explaining :)

(that fixed it for me)
Comment by Thomas Dziedzic (tomd123) - Thursday, 04 August 2011, 18:53 GMT
yes, I also came to the same conclusion :)

I am testing a clean rebuild right now and will update as soon as I get everything built and working.
Comment by Thomas Dziedzic (tomd123) - Thursday, 04 August 2011, 20:52 GMT
pushed the fixed package

thanks for the info, if you have any more suggestions, I am happy to listen

closing...

Loading...