Problem with shared libraries after upgrade

I’ve just upgrade our PGI Fortran compilers from version 15.10 to version 16.1. At first glance, everything seemed to work nicely. Our codes compiled as usual. However, when I try to run our compiled executables, I get error messages like the following:

> ./run
./run: error while loading shared libraries: libnuma.so: cannot open shared object file: No such file or directory

After some investigation, I found that everything works as expected if I set LD_LIBRARY_PATH, i.e.

export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$PGI/linux86-64/2016/lib"

This was not necessary with earlier versions. I’ve skimmed the release notes and user guides, but I could not find anything about this being necessary after the update.

I think that libnuma.so is handled in one of three ways.

  1. The library libnuma.so.1 exists, and there is also a pointer
    libnuma.so in the /usr/lib directory to libnuma.so.1.

  2. libnuma.so.1 exists, but there is no file libnuma.so that points to it.
    In that case we put libnuma.so into the PGI library area, pointing to
    libnuma.so.1

  3. There is no libnuma.so.1 on the system, and no libnuma.so that points to it. In that case, we put a pointer and a dummy libnuma.so into the PGI library directory.

So if you have libnuma.so.1, make sure you also have
libnuma.so that is a soft-linked to libnuma.so.1, and you will not need
to add that directory.

dave