PGX 20.1.1
Documentation

Upgrading C++ Runtime Libraries

The enterprise scheduler of PGX Shared Memory and PGX in distributed execution mode require the libgcc_s.so.1, libstdc++.so.6 and libgomp.so.1 shared libraries with the minimum symbol versioning information mentioned in the system requirements of the installation instructions. The installation instructions also contain instructions for how to check if existing instances of the libraries exist on your system, whether they have the required minimum symbol versioning information, and how to point to the correct libraries before starting PGX.

The minimum required version of the aforementioned shared libraries come in with the GNU Compiler Collection (GCC) version 4.8.2 or later. If your system default GCC has an older version, you can either look for newer versions of the shared libraries possibly brought in by other software or you can build them from sources.

Building from Source

If the libraries are not available in your system, you can build them from sources and install them. First, it is necessary to get the packages essential for building from sources:

# run this on systems that use RPM packages
sudo yum install gcc gcc-c++ glibc-devel glibc-devel.i686
# run this on systems that use DEB packages
sudo apt-get install gcc g++ libc6-dev libc6-dev-i386

Then, you can use the following commands to build and install GCC 4.8.2:

wget https://ftp.gnu.org/gnu/gcc/gcc-4.8.2/gcc-4.8.2.tar.gz
tar xzf gcc-4.8.2.tar.gz
cd gcc-4.8.2
./contrib/download_prerequisites
cd ..
mkdir objdir
cd objdir
$PWD/../gcc-4.8.2/configure
make
sudo make install

Now that there should be a newer copy of the libraries in the system, either in some directory discovered via locate command or in the /usr/local/lib64, you can set the LD_LIBRARY_PATH environment variable accordingly:

export LD_LIBRARY_PATH=/usr/local/lib64:$LD_LIBRARY_PATH

To avoid setting the LD_LIBRARY_PATH after every login, you might want to add the command above to ~/.bash_profile.