This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

How can I know if libraries are old?


I've got some code built on Solaris with gcc 4.5.0. It is linked against the library

/usr/local/gcc-4.5.0/lib/libstdc++.so.6

Solaris ships with gcc 3.4.3 - i.e. much older. Now when I create a binary, and pass that to someone else (or even if run on the same computer with a different linker search path I get a problem. Instead of the binary linking against the gcc 4.5.0 version of the library, it uses

/usr/lib/libstdc++.so.6

For 99% of things, using the older library does not actually cause a problem, but for one program it does, and results in and error message:

RuntimeError: ld.so.1: gfan: fatal: relocation error: file /export/home/test/sage-4.6.alpha3/local/bin/gfan: symbol _ZNSt15_List_node_base7_M_hookEPS_: referenced symbol not found


Is there a way I can see what c++ library someone has, and determine if it's older than the one I built the program with? If so, they need to get a more recent library and have that in their linker search path before the old one.


dave


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]