Appendix A. Shared Libraries and GCC

Table of Contents
Whys and Wherefores
What You Need
Building libgcc.so
Building libstdc++.so
Where to Put Them
Checking it's all OK

Whys and Wherefores

On Solaris, and perhaps some other systems, the GCC distribution does not build or install shared libraries for some C and C++ support code by default. This doesn't cause problems building the speech tools with shared libraries for normal use as the system is capable of running programs built with a combination of shared and non-shared libraries.

However, when loading code into Java, all the support needed must be in shared libraries. For our purposes, what is needed is shared versions of libgcc, which is part of the normal gcc distribution, and libstdc++, which is part of the libg++ distribution.

You may have a shared version of libstdc++ (called libstdc++.so.SOMETHING) if so ignore the related instructions below.

The following steps are those I followed to build these libraries on Solaris 2.5 for use with gcc 2.7.2.1. These instructions should work for other GCC versions, replace 2.7.2 in all cases with the version number for your GCC - you can find this by running

unix$ gcc -v
and ignoring the last digit of the version.

You should probably do the following tasks on the oldest operating system version you want to use. For instance we have Solaris 5.5 and 5.6 machines, so I built my libraries on a 5.5 one.