libaccapimp.so: could not read symbols: Bad value

Hi,

I am trying to compile a code using scorep/1.4.2 and pgi/15.7 on Cray XC
but I get at link time:

/usr/bin/ld.x: __pgi_uacc_pdata: TLS reference in /opt/pgi/15.7.0/linux86-64/15.7/lib/libaccapimp.so mismatches non-TLS definition in /opt/pgi/15.7.0/linux86-64/15.7/lib/libaccg.so section .data
/opt/pgi/15.7.0/linux86-64/15.7/lib/libaccapimp.so: could not read symbols: Bad value
pgacclnk: child process exit status 1: /usr/bin/ld

Is there a known workaround ?

Best,

jg.

Hi jg,

We have not seen this before so I’d like to try and recreate it.

I downloaded and built “scorep/1.4.2” but didn’t see this error. How are you configuring scorep and what options are you using? What MPI are you using?

I did notice that scorep is configured to use our old “pgCC/pgcpp” C++ compiler, instead of pgc++. I not sure this is causing the error, but it’s possible.

  • Mat

Hi Mat,

Thank you for the suggestion, i’ll try it.
I am in contact with Seb. Deldon to give him access to the system.
Would you also like to have an account ?
If so, can you give me detailed infos (address, tel, email…)

jg.

According to this document:
http://docs.cray.com/books/S-9408-1508//S-9408-1508.pdf

“The [Cray] CC command will invoke pgc++ instead of pgCC when PGI 15 is used.”

which may confirm your remark.
What’s the difference between pgc++ and pgCC ?

jg.

I am in contact with Seb. Deldon to give him access to the system

Yes, Seb sent your issue to me to see if I had any ideas.

Would you also like to have an account?

While Seb is quite capable, this type of issue is more under my purview (Seb’s a compiler engineer). I’ll get you’re email from Seb and we can correspond directly.

What’s the difference between pgc++ and pgCC ?

pgc++ is our GNU g++ compatible compiler. It uses the GNU STL and header files as well the same name mangling and exception handling. pgCC is our older PGI specific C++ compiler and is not object compatible with g++. pgCC has been deprecated and will no longer be supported in a future release.

While this could be a side issue, scorep is hard coded to look for “pgCC”. This may cause problems if “pgc++” is used. Are you part of scorep or know the authors? We may want to involve them so we can get this addressed in future versions of scorep.

  • Mat

Hi,

I’ll get you’re email from Seb and we can correspond directly.

Feel free to contact me directly, i’ll be available anytime.

Dear mkcolg,

I found this message and I got a similar error message with my system: ##################################
/opt/rh/devtoolset-2/root/usr/bin/ld: __pgi_uacc_pdata: TLS definition in /share/apps/pgi/linux86-64/15.7/lib/libaccgmp.so section .tbss mismatches non-TLS reference in /share/apps/pgi/linux86-64/15.7/lib/libaccapi.so
/share/apps/pgi/linux86-64/15.7/lib/libaccapi.so: could not read symbols: Bad value
pgacclnk: child process exit status 1: /opt/rh/devtoolset-2/root/usr/bin/ld
make[1]: *** [carp] Error 2
make[1]: Leaving directory `/home/rosenste/src/carp-dcse-pt/CARP’
make: *** [all] Error 2
##################################

Did you solve this problem already? And if yes: how?

Kindest Regards
Stefan

Hi Stefan,

While your issue occurs with a different library, I believe that this is the same issue as TPR#21899 where we were missing a library that caused issue on a few systems. This was fixed in a later release.

Do you have access to the latest 16.3 release?

Thanks,
Mat

I got it!
For me it was a linking problem. It works for me with the command line:

pgc++ -O2 -I/usr/mpi/gcc/openmpi-1.8.4/include -ta=nvidia:cc2+,cuda7.0,fastmath

in the Makefile.

Cheers
Stefan