I'm sponsoring the following case for myself.   This case qualifies
for Architectural self-review, but I wish to record the following
information.

------------------------------------------------------------------------

6602451 documents the requirements for some new symbol visibilities.
These visibilities are defined as ELF_ST_VISIBILITY() values within
a symbols "st_other" field.

As this is a "public" ELF field, the proposal was passed around several
ELF vendors.  See:

  http://groups.google.com/group/generic-abi/browse_thread/thread/1a84adc1566616

The proposal started with our requirement to add STV_SINGLETON and
STV_ELIMINATE.  However, we found that SCO had already added to this
public arena with STV_EXPORTED.  We therefore intend to add three
new visibilities:

   STV_EXPORTED
         Indicates that a symbol is to remain global and can not be
         demoted or eliminated by any other linking technique.

   STV_SINGLETON
         Indicates that only once instance of the symbol can be bound
         to by any reference.  This is a long standing C++ requirement
         that has relied upon interposition (but has been broken by
         several linking techniques, such as symbol scoping, -Bsymbolic
         and direct-binding).

   STV_ELIMINATE
         Indicates that a symbol should be eliminated from any symbol
         tables.  Required by DTrace.

------------------------------------------------------------------------

This fast track also adds a new observability option to lari(1):

    User Commands                                           lari(1)

    SYNOPSIS
       lari [-bCDsVv] [-a | -i | -o] file | directory...           |

       lari [-CDosv] [-m [-d mapdir]] file                         |
    ....
       -V                                                          |
         Appends interesting symbol  visibilities.  Symbols  that  |
         are  defined  as  singleton or are defined protected are  |
         identified with this option.                              |

------------------------------------------------------------------------

Public Header additions:

  usr/src/uts/common/sys/elf.h

  #define       STV_EXPORTED    4
  #define       STV_SINGLETON   5
  #define       STV_ELIMINATE   6

  usr/src/uts/common/sys/link.h

  #define       DF_1_SINGLETON  0x02000000

------------------------------------------------------------------------
Release Binding:               Patch/Micro

  sys/elf.h additions            Commited
  sys/link.h additions           Commited
  lari(1) -V                     Commited


-- 

Rod.

Reply via email to