Huliyar Nataraj wrote:
Dear Sir, I am using a 64-bit AMD apteron cluster with 8 GB RAM (RHEL platform). I face "relocation overflow" and "relocation truncated to fit errors" when I compile big fortran 77 codes using f77/g77 (even with ifort and pathf95) on it. Though it compiles successfully it cannot assemble or link the executables. I understand this may be because of large arrays or so. But the executable size is not more than 2GB. so I could not run my codes with large dimensions. Can you please tell me what options I can use while compiling these kind of codes. Sometimes, ulimit command or -m32 option worked but when I run the executable it simply dumps the core. Please suggest me what can I do to get rid of these problems?. Note: The gcc version I am using is gcc-3.2.3-42
Since your gcc is so old, and you are using RH, I might suspect you also have an old unreliable version of binutils (ld --version). Current gnu binutils release (2.17 or newer) tends to be more reliable on x86-64. If you have any static data objects (e.g. COMMON) larger than 2GB, you must use 64-bit compilation and set an appropriate mc-model (probably not supported by g77). g77 is clearly not supported well for x86-64; a current gcc (gfortran) or commercial compiler would be a better choice. If you are using cluster computing, in the usual sense (MPI or the like), you can't use -m32 unless everything is consistently 32-bit, including your MPI library build. Then your large RAM would not be visible, as your total address space limit would be 2GB.