Unix‎ > ‎Solaris‎ > ‎Solaris man pages‎ > ‎1‎ > ‎


     pvs - display the internal version  information  of  dynamic

     pvs [-Cdlnorsv] [-N name] file...

     The pvs utility displays any  internal  version  information
     contained  within  an  ELF  file.  Commonly, these files are
     dynamic executables and shared objects, and  possibly  relo-
     catable  objects. This version information can fall into one
     of two categories:

       o  version definitions

       o  version dependencies

     Version definitions describe the interfaces  that  are  made
     available by an ELF file. Each version definition is associ-
     ated to a set of global symbols provided by the file.   Ver-
     sion  definitions can be assigned to a file during its crea-
     tion by the link-editor using the -M option and the  associ-
     ated  mapfile directives. See the Linker and Libraries Guide
     for more details.

     Version dependencies describe the  binding  requirements  of
     dynamic  objects  on  the  version definitions of any shared
     object dependencies. When a dynamic object is built  with  a
     shared  object,  the  link-editor records information within
     the dynamic object indicating that the shared  object  is  a
     dependency.  This  dependency  must be satisfied at runtime.
     If the shared object also contains version definitions, then
     those  version  definitions  that  satisfy the global symbol
     requirements of the dynamic object are also recorded in  the
     dynamic  object  being  created.  At process initialization,
     the runtime linker uses any version dependencies as a  means
     of  validating  the  interface  requirements  of the dynamic
     objects used to construct the process.

     The following options are supported. If neither the -d or -r
     options are specified, both are enabled.

     -C       Demangles C++ symbol names.

     -d       Prints version definition information.

     -l       When used with the -s option,  prints  any  symbols
              that have been reduced from global to local binding
              due to  versioning.  By  convention,  these  symbol
              entries  are  located   in the .symtab section, and
              fall between the FILE symbol representing the  out-
              put  file,  and  the  FILE  symbol representing the
              first input file used to generate the output  file.
              These  reduced  symbol  entries  are  assigned  the
              fabricated version definition _REDUCED_. No reduced
              symbols  will  be  printed  if  the  file  has been
              stripped (see strip(1)), or  if  the  symbol  entry
              convention cannot be determined.

     -n       Normalizes  version  definition   information.   By
              default,  all version definitions within the object
              are displayed.  However,  version  definitions  can
              inherit other version definitions. Under normaliza-
              tion, only the head of  each  inheritance  list  is

     -N name  When used with the -d option, -N  prints  only  the
              information  for  the given version definition name
              and any of its inherited version definitions.  When
              used  with the -r option, -N prints only the infor-
              mation for the given dependency file name.

     -o       Creates  one-line  version  definition  output.  By
              default,  file, version definitions, and any symbol
              output is indented to ease human inspection.   This
              option  prefixes each output line with the file and
              version definition name and can be more useful  for
              analysis with automated  tools.

     -r       Prints version dependency  (requirements)  informa-

     -s       Prints the symbols  associated  with  each  version
              definition.  Any  data symbols are accompanied with
              the size, in bytes, of the data item.

     -v       Verbose output. Indicates any weak version  defini-
              tions, and any version definition inheritance. When
              used with the -N and -d options, the inheritance of
              the  base  version  definition  is also shown. When
              used with the -s option, the version symbol defini-
              tion is also shown.

     The following operands are supported.

     file     The  ELF file about which internal version informa-
              tion is displayed.

     Example 1: Displaying version definitions

     The following example displays the  version  definitions  of

     % pvs -d /lib/libelf.so.1

     Example 2: Creating a one-liner display

     A normalized, one-liner display,  suitable  for  creating  a
     mapfile  version control directive, can be created using the
     -n and -o options:

     % pvs -don /lib/libelf.so.1
     /lib/libelf.so.1 -  SUNW_1.1;

     Example 3: Displaying version requirements

     The following example displays the version  requirements  of
     ldd and pvs:

     % pvs -r /usr/bin/ldd /usr/bin/pvs
          libelf.so.1 (SUNW_1.1);
          libc.so.1 (SUNW_1.1);
          libelf.so.1 (SUNW_1.1);
          libc.so.1 (SUNW_1.1);

     If the requested version information is not  found,  a  non-
     zero value is returned. Otherwise, a 0 value is returned.
     Version information is determined not found when any of  the
     following is true:

       o  the -d option is specified and no  version  definitions
          are found.

       o  the -r option is specified and no version  requirements
          are found.

       o  neither the -d nor -r option is specified and  no  ver-
          sion definitions or version requirements are found.

     See attributes(5) for descriptions of the  following  attri-

    |       ATTRIBUTE TYPE        |       ATTRIBUTE VALUE       |
    | Availability                | SUNWtoo                     |

     ld(1), ldd(1), strip(1), elf(3ELF), attributes(5)

     Linker and Libraries Guide

Man pages from Solaris 10 Update 8. See docs.sun.com and www.oracle.com for further documentation and Solaris information.