Error while loading shared libraries

I’m getting the following error trying to run rootcint:

/usr/local/root/bin/rootcint: error while loading shared libraries: libCint.so.5.06: cannot open shared object file: No such file or directory
make[1]: *** [out/root_dict.cpp] Error 127

The full command I’m using is:
/usr/local/root/bin/rootcint -v -f out/root_dict.cpp -c -p -I…/common/include -Iinclude -I. -D_OAWG -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -D__extension__="" -D__attribute__\(X\)="" -D__const=const -D__restrict="" -D__signed=signed -D__volatile=volatile -D__BEGIN_DECLS= -D__END_DECLS= -D__THROW= include/VAArrayInfo.h include/VAConfigurationData.h include/VACoordinateData.h include/VADataClasses.h include/VAParameterData.h include/VAPixelStatusData.h include/VAQStatsData.h include/VARelGainData.h include/VARootIO.h include/VARunHeader.h include/VAShowerData.h include/VASimulationDataClasses.h include/VATelescopeData.h include/VATime.h include/VATOffsetData.h include/LinkDef.h

YES, I have $ROOTSYS/lib exported to my LD_LIBRARY_PATH.

Any ideas what is wrong?

Did you check that there is a file named /usr/local/root/lib/libCint.so.5.06?
If there isn’t then you install is not properly done.

Philippe

Yes, the file exists and is non-empty.

What about permission? Do you user have read and execute permission to this file?

Philippe

Yes, permissions are okay. In fact I’m trying this as su.

What does ldd rootcint or ldd /usr/local/root/bin/rootcint say?

Philippe

ldd /usr/local/root/bin/rootcint
libCint.so.5.06 => /usr/local/root/lib/libCint.so.5.06 (0x00002aaaaaaad000)
libdl.so.2 => /lib64/libdl.so.2 (0x0000003f68200000)
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x0000003f6a400000)
libm.so.6 => /lib64/libm.so.6 (0x0000003f68000000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x0000003f6a200000)
libc.so.6 => /lib64/libc.so.6 (0x0000003f67d00000)
/lib64/ld-linux-x86-64.so.2 (0x0000003f67b00000)

Note: I have a link /usr/local/root/lib/libCint.so.5.06 -> /usr/local/root/lib/root/libCint.so.5.06

[quote]Note: I have a link /usr/local/root/lib/libCint.so.5.06 -> /usr/local/root/lib/root/libCint.so.5.06[/quote]This sounds like a problem! It looks like the soft link is pointing to itself (and not to a real file!.

Philippe.

Look again… the link is:

/usr/local/root/lib/libCint.so.5.06

which points to the file:

/usr/local/root/lib/root/libCint.so.5.06

(The link and file ARE different!!)

by the way, the permissions for the link are fine as well (in case you were going to ask that :wink: )

ok. gladfully I am wrong :slight_smile:
Nonetheless there is an issue.
The runtime linked is apparently unable to load the library. It does find (per ldd) /usr/local/root/lib/libCint.so.5.06. However it seems unable to load it
per " libCint.so.5.06: cannot open shared object file: No such file or directory "
Now the only reason I know where this could happen are

  • the file ultimately pointed to (after resolving all links)
    • is not a proper shared library
    • is not readable/executable by the user

Is root.exe itself starting?

Philippe.

I know, this is a very strange error. The library file is readable/executable, and should be a proper library as I believe it was created when root was compiled

Yes, root.exe runs, but ldd reveals that it does not use libCint.so.*

Thanks for your quick replies. If I’ve exhausted your ideas, thanks for trying

Well that an important clue. What does it use? Ultimatily the file root.exe use and the file rootcint uses should be the same!

Philippe.

ldd /usr/local/root/bin/root
libXpm.so.4 => /usr/X11R6/lib64/libXpm.so.4 (0x0000003f69400000)
libX11.so.6 => /usr/X11R6/lib64/libX11.so.6 (0x0000003f68600000)
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x0000003f6a400000)
libm.so.6 => /lib64/libm.so.6 (0x0000003f68000000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x0000003f6a200000)
libc.so.6 => /lib64/libc.so.6 (0x0000003f67d00000)
libXext.so.6 => /usr/X11R6/lib64/libXext.so.6 (0x0000003f68a00000)
libdl.so.2 => /lib64/libdl.so.2 (0x0000003f68200000)
/lib64/ld-linux-x86-64.so.2 (0x0000003f67b00000)

humm. I did mean ‘root.exe’ not ‘root’ :slight_smile: ‘root’ is a smaller wrapper around root.exe (the real ROOT executable).

Cheers,
Philippe.

Sorry!

I have removed the link in /usr/local/root/lib, so now I have:

ldd /usr/local/root/bin/root.exe
libCore.so => /usr/local/root/lib/libCore.so (0x00002aaaaaaad000)
libCint.so.5.06 => /usr/local/root/lib/root/libCint.so.5.06 (0x00002aaaab4a7000)
libHist.so.5.06 => /usr/local/root/lib/libHist.so.5.06 (0x00002aaaab8b4000)
libGraf.so.5.06 => /usr/local/root/lib/libGraf.so.5.06 (0x00002aaaabcae000)
libGraf3d.so.5.06 => /usr/local/root/lib/libGraf3d.so.5.06 (0x00002aaaac067000)
libGpad.so.5.06 => /usr/local/root/lib/libGpad.so.5.06 (0x00002aaaac27b000)
libTree.so.5.06 => /usr/local/root/lib/libTree.so.5.06 (0x00002aaaac49f000)
libMatrix.so.5.06 => /usr/local/root/lib/libMatrix.so.5.06 (0x00002aaaac7a3000)
libRint.so.5.06 => /usr/local/root/lib/libRint.so.5.06 (0x00002aaaacad5000)
libdl.so.2 => /lib64/libdl.so.2 (0x0000003f68200000)
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x0000003f6a400000)
libm.so.6 => /lib64/libm.so.6 (0x0000003f68000000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x0000003f6a200000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003f68800000)
libc.so.6 => /lib64/libc.so.6 (0x0000003f67d00000)
libcrypt.so.1 => /lib64/libcrypt.so.1 (0x0000003f6f000000)
libCore.so.5.06 => /usr/local/root/lib/libCore.so.5.06 (0x00002aaaacc39000)
/lib64/ld-linux-x86-64.so.2 (0x0000003f67b00000)

and

ldd /usr/local/root/bin/root.exe
libCore.so => /usr/local/root/lib/libCore.so (0x00002aaaaaaad000)
libCint.so.5.06 => /usr/local/root/lib/root/libCint.so.5.06 (0x00002aaaab4a7000)
libHist.so.5.06 => /usr/local/root/lib/libHist.so.5.06 (0x00002aaaab8b4000)
libGraf.so.5.06 => /usr/local/root/lib/libGraf.so.5.06 (0x00002aaaabcae000)
libGraf3d.so.5.06 => /usr/local/root/lib/libGraf3d.so.5.06 (0x00002aaaac067000)
libGpad.so.5.06 => /usr/local/root/lib/libGpad.so.5.06 (0x00002aaaac27b000)
libTree.so.5.06 => /usr/local/root/lib/libTree.so.5.06 (0x00002aaaac49f000)
libMatrix.so.5.06 => /usr/local/root/lib/libMatrix.so.5.06 (0x00002aaaac7a3000)
libRint.so.5.06 => /usr/local/root/lib/libRint.so.5.06 (0x00002aaaacad5000)
libdl.so.2 => /lib64/libdl.so.2 (0x0000003f68200000)
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x0000003f6a400000)
libm.so.6 => /lib64/libm.so.6 (0x0000003f68000000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x0000003f6a200000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003f68800000)
libc.so.6 => /lib64/libc.so.6 (0x0000003f67d00000)
libcrypt.so.1 => /lib64/libcrypt.so.1 (0x0000003f6f000000)
libCore.so.5.06 => /usr/local/root/lib/libCore.so.5.06 (0x00002aaaacc39000)
/lib64/ld-linux-x86-64.so.2 (0x0000003f67b00000)
[dsteele@castor sp24]$ ldd /usr/local/root/bin/rootcint
libCint.so.5.06 => /usr/local/root/lib/root/libCint.so.5.06 (0x00002aaaaaaad000)
libdl.so.2 => /lib64/libdl.so.2 (0x0000003f68200000)
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x0000003f6a400000)
libm.so.6 => /lib64/libm.so.6 (0x0000003f68000000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x0000003f6a200000)
libc.so.6 => /lib64/libc.so.6 (0x0000003f67d00000)
/lib64/ld-linux-x86-64.so.2 (0x0000003f67b00000)

i.e. looks like they are using the same libraries. root.exe starts up fine, but quits with a seg fault.

I did a make distclean and am currently recompiling in case there was a problem with libCint.so.5.06

Oops, here is the ldd for rootcint

ldd /usr/local/root/bin/rootcint
libCint.so.5.06 => /usr/local/root/lib/root/libCint.so.5.06 (0x00002aaaaaaad000)
libdl.so.2 => /lib64/libdl.so.2 (0x0000003f68200000)
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x0000003f6a400000)
libm.so.6 => /lib64/libm.so.6 (0x0000003f68000000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x0000003f6a200000)
libc.so.6 => /lib64/libc.so.6 (0x0000003f67d00000)
/lib64/ld-linux-x86-64.so.2 (0x0000003f67b00000)

Ok.

So we have:

[quote]
ldd /usr/local/root/bin/rootcint
libCint.so.5.06 => /usr/local/root/lib/root/libCint.so.5.06 (0x00002aaaaaaad000)
[/quote]and

[quote]ldd /usr/local/root/bin/root.exe
libCore.so => /usr/local/root/lib/libCore.so (0x00002aaaaaaad000)
libCint.so.5.06 => /usr/local/root/lib/root/libCint.so.5.06 (0x00002aaaab4a7000)
[/quote]AND we have root.exe starting BUT rootcint not starting?
I do not really know why/how this could happen :frowning:

Philippe.

I don’t know exactly what the (0x00002aaaaaaad000) means, but it looks like some sort of address. Is it a problem that for rootcint libCint.so.5.06 points to the same place as libCore.so does for root.exe?

[quote]I don’t know exactly what the (0x00002aaaaaaad000) means, but it looks like some sort of address. Is it a problem that for rootcint libCint.so.5.06 points to the same place as libCore.so does for root.exe?[/quote]No it is not a problem.

Philippe.

Note: rootcint will start, i.e. I can run rootcint -h and I get the help message. It is only when I try to actually use it (as in the command in my first post) that I get the shared object file error. I suspect the same might be true of root.exe.