After a good bit more detective work, I got it running. Here’s an outline of the problem and solution.
The in-house libraries in the link (libcfutils, libprowess, etc) were built with a 6.x version of pgcc and contain some sort of reference to __mth_i_dsincosx. At link time, it appears that references to this function in the .o files resolve against this reference as dynamic relocations before the linker gets to the static PGI libs.
Rebuilding the in-house libraries with gcc makes the problem go away, but this is not a practical solution as the libraries would need extensive revalidation for production use. The workaround is to insert -Bstatic -lpgsse2 -Bdynamic right after the list of objects in the link line. This forces __mth_i_dsincosx to resolve against the static library before the linker gets to the in-house libraries.
It’s not clear to me why this function is a problem. I wonder if it might have something to do with the issue that was documented here:
I’m up to my elbows in link maps and other useful data that I can provide if you want to understand this further. However we’re back in business so I don’t need anything further.