NCSA Home
Contact Us | Intranet | Search

IBM pSeries 690 Compilation and Linking FAQ

 

How do I find the versions of the compilers?

    Use the lslpp command and grep for the compiler.
    Fortran    lslpp -l | grep xlf
    C    lslpp -l | grep vac.C

Why do I get "unresolved reference" errors for some LAPACK routines when I link with ESSL?

    ESSL does not include all the routines in LAPACK, so you'll have to link to the complete version of LAPACK to get the missing routines. Please add the following to the end of your link options if your program is 32-bit:

        -L/usr/local/apps/math/lapack/LAPACK -llapack-SP4_32
    

    If your program is 64-bit (-q64), use the following link options:

        -L/usr/local/apps/math/lapack/LAPACK -llapack-SP4_64
    

    Do not remove references to ESSL and PESSL since you will want to use the LAPACK routines there if they are available.

How can I create an executable that only uses static libraries?

    To create an executable that does not use any dynamic libraries, add the following linker switches:
       -bnoso -bI:/usr/lib/syscalls.exp
    
    The -bstatic can also be used in place of the -bnoso option.

Why do I get undefined symbols when I try to link my 64-bit MPI program?

    If you see errors like the following when you try to link your program:
      % mpxlf -q64 mpi_sample.f
      ** hello   === End of Compilation 1 ===
      1501-510  Compilation successful for file mpi_sample.f.
      ld: 0711-328 ERROR: Undefined initfini symbol: poe_remote_main
      ld: 0711-317 ERROR: Undefined symbol: .mpi_init
      ld: 0711-317 ERROR: Undefined symbol: .mpi_comm_size
      ld: 0711-317 ERROR: Undefined symbol: .mpi_comm_rank
      ld: 0711-317 ERROR: Undefined symbol: .mpi_finalize
      ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
    
    You must use _r at the end of the compiler name when you compile 64-bit MPI programs. See the table of compiler commands.

Why do I get the error "No more system resources available" when I try to compile?

    It is possible that the compiler needs more memory than is available with your interactive limits. Please send an exact copy of the error message, a pointer to your source code, and a reference to this FAQ entry to NCSA's Consulting Office.