unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (SunOS-5.10)
Page:
Section:
Apropos / Subsearch:
optional field

pvs(1)                           User Commands                          pvs(1)



NAME
       pvs - display the internal version information of dynamic objects

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

DESCRIPTION
       The  pvs  utility  displays  any internal version information contained
       within an ELF file. Commonly, these files are dynamic  executables  and
       shared objects, and possibly relocatable objects. This version informa-
       tion 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 associated to a set of global
       symbols provided by the file.  Version definitions can be assigned to a
       file during its creation by the link-editor using the -M option and the
       associated 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 ver-
       sion dependencies as a means of validating the  interface  requirements
       of the dynamic objects used to construct the process.

OPTIONS
       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 output 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  conven-
                tion 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 normalization, only the head of each inheritance list is
                displayed.



       -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 information 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) information.



       -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  definitions,  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
                definition is also shown.



OPERANDS
       The following operands are supported.

       file     The  ELF file about which internal version information is dis-
                played.



EXAMPLES
       Example 1: Displaying version definitions

       The following example displays the version definitions of libelf.so.1:

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

       Example 2: Creating a one-liner display

       A  normalized,  one-liner display, suitable for creating a mapfile ver-
       sion 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
       /usr/bin/ldd:
            libelf.so.1 (SUNW_1.1);
            libc.so.1 (SUNW_1.1);
       /usr/bin/pvs:
            libelf.so.1 (SUNW_1.1);
            libc.so.1 (SUNW_1.1);

EXIT STATUS
       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  version  defini-
            tions or version requirements are found.


ATTRIBUTES
       See attributes(5) for descriptions of the following attributes:


       tab()     allbox;     cw(2.750000i)|    cw(2.750000i)    lw(2.750000i)|
       lw(2.750000i).  ATTRIBUTE TYPEATTRIBUTE VALUE AvailabilitySUNWtoo


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

       Linker and Libraries Guide



SunOS 5.10                        14 Apr 2004                           pvs(1)