Previous Next        Current Page: NeXtMidas User's Guide / Third-Party Compatibility / Portland Group Compiler
Release Information   
Getting Help   
Basic Concepts   
Result Parameters   
XML Support   
System Operation   
Java WebStart   
X-Midas Interoperability   
Third-Party Compatibility   
   - Apache   
   + Web Browsers   
   + WebStart   
   - Profilers   
   - NetBeans   
   - Eclipse   
   - JBuilder   
   - Intel Fortran Compiler   
   - Portland Group Compiler   
   - SWIG   
   - VNC   
Installation and Customization   
Running NeXtMidas Independently   
Timelines - Keywords, Updating, Known Issues   
Installing and Using Docker   

Portland Group Fortran (pgf77) Compiler

Portland Group Fortran Compiler compiles the XBC option tree and other X-Midas host primitives written in Fortran (see X-Midas Backwards Compatibility (XBC) for details on X-Midas host primitives in NeXtMidas).

Some PGI Fortran Compiler installations are not setup properly causing errors when building XBC. For example:

       nM> make all xbc
       INFO: Compiling /opt/midas/nxm282/nxm/host/newrate.for [BUILDOPT]
       /usr/bin/ld: /crtbeginS.o: No such file: No such file or directory
The issue here is that the PGI compiler setup file at <PGI_INSTALL_DIR>/bin/localrc (e.g. /usr/pgi/linux86/5.2/bin/localrc) does not point at the gcc installation. The key info here is that the linker was not finding one of the "C" run-time object file (as it was trying to look for it in the root directory)

There are several ways to solve this problem:
  1. Try to run the <PGI_INSTALL_DIR>/bin/makelocalrc utility. e.g. /usr/pgi/linux86/5.2/bin/makelocalrc -x `pwd`
  2. Hand modify the <PGI_INSTALL_DIR>/bin/localrc setup file as follows (e.g. on a RHEL4 system):
    set LFC=-lg2c;
    set LDSO=/lib/;
    set GCCDIR=/usr/lib/gcc/i386-redhat-linux/3.4.6/;
    set GCCINC=/usr/lib/gcc/i386-redhat-linux/3.4.6/include;
    set G77DIR=/usr/lib/gcc/i386-redhat-linux/3.4.6/;
    set LOCALRC=YES;
    set THROW=__THROW=;
  3. Add /usr/lib/gcc/i386-redhat-linux/3.4.6/ into /etc/ -or- to a new gcc3.4.6.conf file under /etc/