gxx_personality_vo undefined reference

I have a user of my Fortran software trying to compile and link with the version 11 series PGI compiler. She is getting a link error for gxx_personality_vo. I’ve received this in the past, but unfortunately I’ve never written down how I fixed it.

She has not received this error compiling/linking with earlier PGI versions.

Google says this is a GNU issue with C++. However, she isn’t compiling in the C++ portion of the software. Any help would be appreciated.

Hi gindie11,

“gxx_personality_vo” is used with C++ exception handling. In 11.0 we did change C++ to use Zero-Cost Exception Handling (–zc_eh) by default and the only time I’ve seen this error is when mixing C++ compiled with and without --zc_eh.

I’ll double check with our compiler engineers, but I can’t think of any reason why you’d get this error with a pure Fortran link. While I’m doing this, can you double check with your user that no C++ objects are being used? Could a library with C++ code be linked in? Also, what link flags are being used?

  • Mat

Hi gindie11,

I asked one of our compiler engineers and she confirmed that the only time when we emit the “gxx_personality_vo” symbol is in C++ zero-cost exception handling code. The user must have included PGI compiled C++ object, a C++ library, or code generated by another compiler in the link.

  • Mat