We have some fortran90 code that successfully compiles and runs on 32 bit Linux systems, eg Fedora Core 1. On a Opteron system running the 64 bit Fedora Core 2 and using pgf90, ld issues the following warnings:
/usr/bin/ld: Warning: alignment 16 of symbol sib_const_module_0_' in sib_const_module.o is smaller than 32 in SiBDRV.o /usr/bin/ld: Warning: alignment 16 of symbol sib_io_module_0_’ in sib_io_module.o is smaller than 32 in SiBDRV.o
and when run, the program dies with a seg fault.
It appears that the modules sib_io_module and sib_const_module have different alignment from the routines that use them even though they were all compiled with the same compiler switches. I tried using the -Mdalign, -Mllalign and -Mfunc32 switches but this had no effect.
Has anyone else seen this problem? Is there a fix?
Yes, we are using modules and yes, we do remove the .mod’s and .o’s before compiling. This code uses several modules yet only 2 of them cause the alignment warnings.
I think I’ll revert to pgf90-5.0 and see if works. I’m pretty sure we successfully compiled and ran an older version of this code on an Opteron a few months ago.
Looking through our techincal problem reports, I saw one that was similar to what you described. This problem was fixed in release 5.2, so you might want to try downloading the latest release at seeing if it works. You can download 5.2 at http://www.pgroup.com/support/download_release.php