pgacclnk error

Hi, I was using pgfortran-14.3 and mpich-3.0.4 to compile a application.

each object in the libabc.a is compiled with
mpif90 -c -acc -mp=numa

and the executable file is compiled with
mpif90 -acc -mp=numa -o abc.x libabc.a

The process of building libabc.a is all right, yet there is en nvlink fatal error while compiling the executable file abc.x

nvlink fatal : Input file ‘…/libabc.a’ abi does not match
pgacclnk: child process exit status 2: …/bin/pgnvd

Please let me know if anyone has a clue on this problem. Thanks!

Hi Chenhan Yu,

Unfortunately I’ve never seen this before and I’ve been unable to recreate the error here. Could you put together a reproducing example and send it to PGI Customer Support (trs@pgroup.com)?

Thanks,
Mat

I just found the problem. This error only occurs with the flag “-g”.
Compile the executable file with “-g” also can solve this problem.

Compile the whole library and the application in the following way can
reproduce this error.

error:

each object in the libabc.a is compiled with
mpif90 -c -g -acc -mp=numa

and the executable file is compiled with
mpif90 -acc -mp=numa -o abc.x abc.o libabc.a

correct:

each object in the libabc.a is compiled with
mpif90 -c -g -acc -mp=numa

and the executable file is compiled with
mpif90 -acc -mp=numa -g -o abc.x abc.o libabc.a

Thanks!

Ok, now I see the error. Try adding “-ta=tesla:nodebug” to your compilation to work around it.

From what I can tell, this is related to some other issues we were having with our initial device debug support. Those issues were resolved in 14.4 and it appears that this one was as well.

Thanks!
Mat