C/C++ and Fortran

 View Only

Use options to control whether static or shared XL compiler libraries are linked

By Archive User posted Wed March 12, 2014 04:34 AM

  

Originally posted by: ChristineLi


A new suboption xllibs has been added to the -qstaticlink option starting from the February 2014 Update for XL C/C++ for Linux, V12.1 (V12.1.0.6) and XL Fortran for Linux, V14.1 (V14.1.0.6). 

The -qstaticlink option controls whether static or shared runtime libraries are linked into an application.

image

When you specify -qstaticlink without suboptions, only static libraries are linked with the object file. When you specify -qnostaticlink without suboptions, shared libraries are linked with the object file.
 
When you specify  -qstaticlink=xllibs, the compiler links the static version of the XL compiler libraries. When you specify -qnostaticlink=xllibs, the compiler links the shared version of the XL compiler libraries. 

Conflicting compiler options are resolved as follows:

  • If you first specify -qnostaticlink without suboptions and then specify -qstaticlink with or without suboptions, -qnostaticlink is overridden. For example, -qnostaticlink -qstaticlink=xllibs is equivalent to -qstaticlink=xllibs.
  • If you specify -qstaticlink with or without suboptions followed by -qnostaticlink without suboptions, -qnostaticlink takes effect and shared libraries are linked. Otherwise, once you have specified -qstaticlink without suboptions, -qstaticlink takes effect and only static libraries are linked with the object file. For examples, see IBM Support Portal.

 

Notes:

  • If a runtime library is linked in statically while its message catalog is not installed on the system, messages are issued with message numbers only, and no message text is shown.
  • For XL C/C++ for Linux, V12.1, if a shared library or a dynamically linked application is supposed to throw or catch exceptions, you must link it with the shared libgcc with the -qnostaticlink=libgcc option in effect, which is the default.
0 comments
0 views

Permalink