Sun C++ 5.0 dynamic library problems (missing libCstd.so)

Sun C++ 5.0 dynamic library problems (missing libCstd.so)

Post by Rob Nielse » Fri, 07 Jan 2000 04:00:00



Hi,

I've got a bunch of libraries that get dynamically loaded by
applications at run time (Netscape Enterprise Server or Java for
example).

When NES/Java loads the libraries, the following error occurs:

ld.so.1: symbol __1cDstdbC__RTTI__1nDstdMout_of_range__: referenced
symbol not found

If an application is dynamically linked at compile time, this error
doesn't occur.

Further investigation, I found out that there's a
/opt/SUNWspro/SC5.0/lib/libCstd.a that is linked in during compile time
and resolves this and other symbols.

The problem here is that there isn't a corresponding libCstd.so, so
dynamic loading at runtime fails :-(

Rob

 
 
 

Sun C++ 5.0 dynamic library problems (missing libCstd.so)

Post by Rob Nielse » Wed, 12 Jan 2000 04:00:00



> Hi,

> I've got a bunch of libraries that get dynamically loaded by
> applications at run time (Netscape Enterprise Server or Java for
> example).

> When NES/Java loads the libraries, the following error occurs:

> ld.so.1: symbol __1cDstdbC__RTTI__1nDstdMout_of_range__: referenced
> symbol not found

> If an application is dynamically linked at compile time, this error
> doesn't occur.

> Further investigation, I found out that there's a
> /opt/SUNWspro/SC5.0/lib/libCstd.a that is linked in during compile time
> and resolves this and other symbols.

> The problem here is that there isn't a corresponding libCstd.so, so
> dynamic loading at runtime fails :-(

> Rob

I got this problem resolved through Sun's Support.  The solution is to
add the following when creating shared libraries with C++ 5.0:

    -Bstatic -lCstd -Bdynamic

Rob

 
 
 

1. Dynamic linking of libCstd.so on Solaris

Platform: Solaris 7 SPARC
Compiler: Sun Workshop C++ 5.0

Since migrating to the C++ standard library my executable
files have skyrocketed in size. For example, a 120k program
jumped up to 750k.  ldd output does not list libCstd, so I am
assuming that it is getting linked staticly which results in
the huge executable files.  I can't seem to find a way to get
Sun Workshop to link libCstd dynamicly.  There isn't even a
libCstd.so file, just a libCstd.a file.  Is there anyway to
convert the .a file to a .so?  Do I need to upgrade to 6.0?
I have a lot of executable files to distribute and I can't
afford to have 500 kbytes of baggage in every one of them.

Jeff

2. startx keeps changing video modes

3. SUN CC 5.0: shared libraries refuse to close - missing inline template functions!

4. ISDN and Linux

5. Shared Dynamic library problem and C++

6. Missing files from distribution CD?

7. Forte C++ and dynamic library problem

8. Internet Faststart 1.0 inconsistencies

9. Problem with stringstream in multithreading (Sun C++ 5.0)

10. Problems with Sun WorkShop C++ 5.0 on Sloaris 8

11. Where is libCstd.so under Solaris 8?

12. Problems compiling glib (solaris 5.6, Sun Workshop C++ 5.0)

13. libCstd.so.1 (Developer system support cluster vs. Core Solaris cluster )