PGI User Forum
 SearchSearch   MemberlistMemberlist     RegisterRegister   ProfileProfile    Log inLog in 

CUDA-x86.

64Bit: Segmentation fault in pgf90_template1 ()

 
Post new topic   Reply to topic    PGI User Forum Forum Index -> Programming and Compiling
View previous topic :: View next topic  
Author Message
ecki78



Joined: 22 Jun 2005
Posts: 6

PostPosted: Wed Jun 22, 2005 4:50 am    Post subject: 64Bit: Segmentation fault in pgf90_template1 () Reply with quote

Hi,

I have compiled the MUMPS-Solver (http://www.enseeiht.fr/lima/apo/MUMPS/) with the 64-Bit PGI-Compiler 6.0-4 (pgf90, pgcc) on an Opteron-Workstation running 64-Bit SuSE Linux 9.3. As compiler option only -O was set for both compilers. The compilation was successful, but one test-file (c_example) fails with the following error-message:

Code:
Program received signal SIGSEGV, Segmentation fault.
0x000000000050df7b in pgf90_template1 ()


In this file a FORTRAN90-Function is called from a C-Routine and the segmentation fault occurs when the FORTRAN90-Function is called.

All other example files which uses only FORTRAN90 run well.

If I compile the whole library with the 32-Bit PGI-Compiler then the segmentation fault does not occur.

Thanks,

Stefan
Back to top
View user's profile
mkcolg



Joined: 30 Jun 2004
Posts: 5943
Location: The Portland Group Inc.

PostPosted: Thu Jun 23, 2005 3:49 pm    Post subject: Reply with quote

Hi Stefan,

Thanks for the report. We were able to recreate the problem here and have determined that it is a compiler bug. I have created a technical problem report (TPR #3569) and have listed you as the point of contact.

The work around is to change how the "[CDSZ]MUMPS_F77" subroutines are defined. These subroutines can be found towards the end of the MUMPS source files "[cdsz]mumps_part8.F". For all occurrences of the assumed size arrays with the target attribute, change the '*' to a '1'.

Example from "src/dmumps_part8.F":
Code:
       INTEGER, TARGET :: IRN(*), JCN(*), ELPTR(*), ELTVAR(*)
       INTEGER, TARGET :: PERM_IN(*), IRN_loc(*), JCN_loc(*)
       INTEGER, TARGET :: LISTVAR_SCHUR(*)
       DOUBLE PRECISION, TARGET :: A(*), A_ELT(*), A_LOC(*), RHS(*)
       DOUBLE PRECISION, TARGET :: ROWSCA(*), COLSCA(*)
       DOUBLE PRECISION, TARGET :: SCHUR(*)

change to:
Code:
       INTEGER, TARGET :: IRN(1), JCN(1), ELTPTR(1), ELTVAR(1)
       INTEGER, TARGET :: PERM_IN(1), IRN_loc(1), JCN_loc(1)
       INTEGER, TARGET :: LISTVAR_SCHUR(1)
       DOUBLE PRECISION, TARGET :: A(1), A_ELT(1), A_LOC(1), RHS(1)
       DOUBLE PRECISION, TARGET :: ROWSCA(1), COLSCA(1)
       DOUBLE PRECISION, TARGET :: SCHUR(1)


Sorry of the inconvience,
Mat
Back to top
View user's profile
mkcolg



Joined: 30 Jun 2004
Posts: 5943
Location: The Portland Group Inc.

PostPosted: Fri Jul 01, 2005 2:14 pm    Post subject: Reply with quote

FYI, this error has been corrected and the fix will be available in the upcoming 6.0-5 release.

- Mat
Back to top
View user's profile
Display posts from previous:   
Post new topic   Reply to topic    PGI User Forum Forum Index -> Programming and Compiling All times are GMT - 7 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © phpBB Group