HP MLIB for Itanium Linux Version 9.6 Release Note
Table Of Contents
- Announcement
- What’s in This Version
- Known Problems and Workarounds
- Fortran I/O dependencies in SOLVERS library
- Default OpenMP library stack is too small for MLIB
- Incorrect math library link order for the Intel Fortran compiler
- Dealing with Underscore Compatibility and Duplicated Symbols
- User and Library Subprogram Name Conflicts
- Work length for LAPACK standard eigensolver routine ZHEEVD
- Compatibility Information
- Installation Requirements
- Software Availability in Native Languages
- Associated Documentation
- Support Information

HP MLIB for Itanium Linux Version 9.6 Release Note
Known Problems and Workarounds
HP MLIB for Itanium Linux Version 9.6 Release Note16
Note that the option -us (complimentary to -nus) is provided by the compiler but is totally
redundant.
The compiler also allows the option -nus to be applied to specified names rather than all
names in the source file.
The Fortran compiler option, combined with the MLIB provision of both variants of entry
point name, can cause duplicate symbol definitions at link time as the following examples
illustrate.
Itanium®2-based processors
Suppose you write your own Fortran version of the XERBLA subroutine. If you compile with
the Fortran compiler on Itanium®2-based processors using the compiler option -nus, your
xerbla.o object has an entry point xerbla (without the postpended underscore). However, the
Itanium®2-based MLIB libraries were compiled with the -us option, and the entry points
without underscores were added as synonyms to the entry points with underscores. Hence,
the various MLIB Fortran source subprograms that call XERBLA reference them as xerbla_.
Therefore, your xerbla (without the postpended underscore) does not satisfy the Fortran calls
to XERBLA, so the linker accesses xerbla.o from the library. This file contains both entry
points xerbla and xerbla_, and xerbla conflicts with your XERBLA subroutine.
Moreover, the various MLIB C source subprograms that call XERBLA still reference them as
xerbla (without the postpended underscore). It means that both xerbla and xerbla_ entry
points must be provided in your xerbla.o.
Use one of the following workarounds on Itanium®2-based processors if you are compiling
your own Fortran version of XERBLA:
• Compile your Fortran source for XERBLA with -nus and provide both xerbla and xerbla_
entry points.
SUBROUTINE XERBLA (SRNAME,INFO)
ENTRY XERBLA_ (SRNAME,INFO)
...
• For a more generic solution, regardless of the use of -nus, use ALIAS directives and
provide both xerbla and xerbla_ entry points.
ifort -us xerbla.f ... xerbla_
ifort -nus xerbla.f ... xerbla
Table 2 Command Line/Entry Point Relationship (Continued)
Command Line Fragment Entry Point