We have a mixed language (C/Fortran) shared library (.so) called true_io.so that handles I/O for our various production apps.
Recently we released a new version of this shared library built with the latest 7.0-6 compiler. Our previous release of this shared library was built with 5.2 compiler.
This new shared library (7.0-6) gives the following runtime error when run with an production executable built with 5.2
missing symbol error : a325.exe : undefined symbol : [b]pghpf_sect1v[/b]
a325.exe works perfectly well with the old shared library built with the 5.2 compiler
We also noticed that most of the PGI fortran internal symbols sect* which come from libpgf90.a had been renamed from **pgf90** to pghpf_
true_io.so built PGI 5.2
nm true_io.so | grep -i sect
000000000002dd10 T pghpf_sect
000000000002e060 T pghpf_sect1
000000000002e330 T pghpf_sect1v
000000000002e5f0 T pghpf_sect2
000000000002ea60 T pghpf_sect2v
000000000002eeb0 T pghpf_sect3
000000000002f4a0 T pghpf_sect3v
true_io.so built PGI 7.0-6
nm true_io.so | grep -i sect
0000000000033990 T pgf90_sect
0000000000033e70 T pgf90_sect1
0000000000034240 T pgf90_sect1v
00000000000345e0 T pgf90_sect2
0000000000034bf0 T pgf90_sect2v
00000000000351b0 T pgf90_sect3
0000000000035b70 T pgf90_sect3v
..
..
0000000000033630 T pghpf_sect
0000000000036430 T pghpf_sect3
0000000000036ab0 T pghpf_sect3v
Newer version of a325.exe built with (7.0-6) do not exhibit this problem as they have the correct pgf90_sect1v symbol as compared to the old executable with the pghpf_sect1v symbol
This is huge issue for us as we have tons of applications that link against the shared true_io.so library. Most of the production apps have already been compiled with 5.2 and will probably not be rebuilt.
Any suggestions or ideas on how to fix this would be greatly appreciated.
Thanks.