[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference vaxaxp::vmsnotes

Title:VAX and Alpha VMS
Notice:This is a new VMSnotes, please read note 2.1
Moderator:VAXAXP::BERNARDO
Created:Wed Jan 22 1997
Last Modified:Fri Jun 06 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:703
Total number of notes:3722

312.0. "tools managing sybol_vector entries in large C++ shareable images?" by VNASWS::WILFRIED (Wilfried Bergmann, Austria) Wed Mar 12 1997 05:46

I raised this question in the TURRIS::C_PLUS_PLUS conference # 3483 and was
told that VMS enginieering is using some internal tools for this purpose,
e.g. validating that the order of symbol vector entries doesn't change, etc.

A customer developing/maintaining large C++ based shareable images both on
VAX and Alpha under OpenVMS (entries in the symbol vector in the 100's)
complained about the awkward, manual procedure, especially with C++
mangled names. The customer also wants to use single source files for both
VAX and Alpha.

Is there anything I can give to the customer (on a as-is basis)?

Thanks for your help!

Regards,
	Wilfried
T.RTitleUserPersonal
Name
DateLines
312.1TLE::REAGANAll of this chaos makes perfect senseWed Mar 12 1997 09:1414
    There must be some confusion.  The "tool" that Brian mentioned in
    the notesfile (3483.4) that is used makes sure that the symbol-vector 
    or transfer-vector are the same from one version to the next ON THE 
    SAME PLATFORM.  It doesn't build transfer-vectors or symbol-vectors. 
    It isn't a tool to let you produce both the .MAR and .OPT files at the 
    same time.
    
    You need a .MAR file on VAX for the transfer-vector and an .OPT file on
    Alpha for the symbol-vector.  As Brian mentioned, there isn't a
    widespread tool although (as Brian also mentioned) some groups have
    tried a few ways of semi-automating it and catching simple errors
    of omission.
    
    				-John
312.2Generate Definitions From Common Source...XDELTA::HOFFMANSteve, OpenVMS EngineeringWed Mar 12 1997 09:3625
   The symbol vector order is of interest on OpenVMS VAX only.

   The symbol vector order can be verified with ANALYZE/IMAGE on the
   shareable image, looking for the offsets of the universals, among
   other ways.

   Under OpenVMS Alpha, there's no need to verify the order of the
   vector (there's no vector), merely the existence of the expected
   symbol(s).

   Probably the easiest (big hack) is to process the MAP files via some
   DCL or PERL.

   Prying this out of the OpenVMS build environment and then having to
   support it is not something I'd look forward too -- I'd write up a
   local tool to do this.  (The tool is intended for looking for any
   vector cruft that might creep in from OpenVMS-release-to-release.)

   I'd also look at having a generic procedure that generates the symbol
   vector and the symbol options file from a common source (such as a
   sequential or indexed data file), and a once-in-a-while verification
   of the resulting vector and options file as valid.  (This is far and
   away the easiest, and it's fully supported and documented.)

312.3AUSS::GARSONDECcharity Program OfficeWed Mar 12 1997 16:4812
    re .0
    
    The difficulties of writing shareable images in C++ (in particular in
    regard to the symbols "exported") have been discussed in previous
    incarnations of this conference (q.v.).
    
    If you have non-C++ callers you would want to disable name mangling for
    the exported symbols. Even if all your callers are C++, you could in
    many cases do this.
    
    Failing that you should a) write some kind of hacky tool to handle it
    and b) have the customer formally escalate the problem.
312.4this is what I was thinking ofHNDYMN::MCCARTHYA Quinn Martin ProductionWed Mar 12 1997 18:1510
>>   Prying this out of the OpenVMS build environment and then having to
>>   support it is not something I'd look forward too -- I'd write up a

symvectst ?  Isn't it just was you mention, a command procedure 
that parses the output of ana/image and compares to a "known" data file
that you have blessed in the past.

The Alpha tool is VIC, which is, I think, written in BLISS.

bjm
312.5symbol vector order? re.2VNASWS::WILFRIEDWilfried Bergmann, AustriaThu Mar 13 1997 05:135
The symbol vector order _is_ important, if you want to deliver newer versions
of your shareable image without requireing all applications linked against
an earlier version of the shareable image to be re-linked, right?

/wb
312.6Symbol Vector Is VAX ConstructXDELTA::HOFFMANSteve, OpenVMS EngineeringThu Mar 13 1997 09:056
:The symbol vector order _is_ important, if you want to deliver newer versions
:of your shareable image without requireing all applications linked against
:an earlier version of the shareable image to be re-linked, right?

   Please re-read .2.

312.7ZIMBRA::BERNARDODave Bernardo, VMS EngineeringThu Mar 13 1997 09:417
    
    what?
    
    I think you've got that wrong Steve. Symbol vectors do 
    indeed exist on Alpha and their ordering is very important.
    
    d.
312.8UghXDELTA::HOFFMANSteve, OpenVMS EngineeringThu Mar 13 1997 10:479
:    I think you've got that wrong Steve. Symbol vectors do 
:    indeed exist on Alpha and their ordering is very important.

   OK, I'm operating with a different mindset.  (Is that a nice way of
   saying "I screwed up?".)  I've been viewing the vector as what is
   manually constructed by the user via Macro, and OpenVMS Alpha doesn't
   have that.  Off to log a QAR, as there's now no technical reason why
   the SYMBOL_VECTOR option shouldn't be ported to VAX.

312.9TLE::REAGANAll of this chaos makes perfect senseThu Mar 13 1997 11:305
    As for "no technical reason", I'll agree.  However, I'll bet that
    there is enough "political" reasons to never let this see the light
    of day...
    
    				-John
312.10.0 - give this a tryORAREP::LASTOVICAComparisons are as bad as clichesThu Mar 13 1997 13:18831
               <<< VAXAXP::NOTES$:[NOTES$ARCHIVE]ALPHA_EXAMPLES.NOTE;1 >>>
                   -< Alpha Programming Examples conference >-
================================================================================
Note 51.0    command procedure to make options and transfer vectors    4 replies
AZTECH::LASTOVICA "straight but not narrow minded"  140 lines  28-APR-1994 02:06
--------------------------------------------------------------------------------
    we use this command procedure to allow alpha and vax images to be built
    from the same code stream.  given the correct input data file, we
    create AXP or VAX linker options files and transfer vector files.
    
$!	B U I L D _ O P T I O N S _ X F E R V E C . C O M 
$!
$! P1 = input description file
$! P2 = output options file
$! P3 = output xfervectors file name
$! P4 = xfervectors psect name
$! P5 = VAX or ALPHA
$!
$! the format of the description file is as follows:
$!	TYPE~SYMBOLNAME
$!
$! where TYPE is one of:"ROUTINE"
$!			"SYMBOL"
$!			"OPTIONS_FILE_VAX"
$!			"OPTIONS_FILE_ALPHA"
$!			"OPTIONS_FILE_ALL"
$!			"TRANSFER_VECTORS_FILE_VAX"
$!			"TRANSFER_VECTORS_FILE_ALPHA"
$!			"TRANSFER_VECTORS_FILE_ALL"
$!
$! and SYMBOLNAME is the name of some symbol for "ROUTINE" or "SYMBOL" or
$! just some string for the other types.  this string will be written to
$! the specified file (options or transfer vectors).
$!
$! for ALPHA:
$!	the transfer vectors xfervec macro simply contains a .external to force
$!	objects to be fetched.  is written to the transfer vectors information,
$!	though one is created.  the options file is written with the 
$!	SYMBOL_VECTOR containing all the SYMBOLS and ROUTINES in the 
$!	description file.
$!
$! for VAX:
$!	the transfer vectors file is created and all ROUTINES are written to
$!	it as transfer vector entries.  the options file is written with all
$!	the symbols being written as universal symbols.
$!
$! this routine produces an options file as specified by P2, a macro source
$! file specified by P3.  the transfer vectors module name is the same as the
$! transfer vectors file name.
$!
$	p5 :== 'p5
$	alpha = p5 .eqs. "ALPHA"
$	first_comma = " "
$	no_open_paren = "true"
$	open/write options_file 'p2
$	open/write xfervectors_file 'p3
$	open/read desc 'p1
$!
$	write xfervectors_file "	.title	''f$parse(p3,,,"NAME")"
$	write xfervectors_file "	.ident	/1.0/
$	write xfervectors_file "
$	write xfervectors_file "; created ''f$time()' from ''p1'
$	write xfervectors_file "
$	write options_file "! created ''f$time()' from ''p1'
$	write xfervectors_file "	.macro xfervec	routine
$	if .not. alpha
$	then
$	    write xfervectors_file "	    .transfer	routine
$	    write xfervectors_file "	    .mask	routine
$	    write xfervectors_file "	    jmp		routine + 2
$	else
$	    write xfervectors_file "	.external routine
$	endif
$	write xfervectors_file "	.endm
$	write xfervectors_file "
$!
$	write xfervectors_file "	.psect ''p4',exe,nowrt,pic,shr
$	write xfervectors_file "
$!
$lp:
$	read/end=desc_eof desc d
$	type = f$edit(f$element(0,"~",d),"lowercase,collapse")
$	symbol = f$edit(f$element(1,"~",d),"lowercase,trim")
$!
$	if type .eqs. "options_file_vax" .and. .not. alpha then -
	    write options_file symbol
$!
$	if type .eqs. "options_file_alpha" .and. alpha then -
	    write options_file symbol
$!
$	if type .eqs. "options_file_all" then -
	    write options_file symbol
$!
$	if type .eqs. "transfer_vectors_file_vax" .and. .not. alpha then -
	    write xfervectors_file symbol
$!
$	if type .eqs. "transfer_vectors_file_alpha" .and. alpha then -
	    write xfervectors_file symbol
$!
$	if type .eqs. "transfer_vectors_file_all" then -
	    write xfervectors_file symbol
$!
$	if type .eqs. "symbol"
$	then
$	    if alpha
$	    then
$		if no_open_paren then write options_file "symbol_vector = ( -"
$		no_open_paren = "false"
$		write options_file "	''first_comma'''symbol' = data -"
$		first_comma = ","
$	    else
$		write options_file "universal=''symbol'"
$	    endif
$	endif
$!
$	if type .eqs. "routine"
$	then
$	    if alpha
$	    then
$		if no_open_paren then write options_file "symbol_vector = ( -"
$		no_open_paren = "false"
$		if symbol .eqs. "spare_procedure"
$		then
$		    write options_file "	''first_comma'spare_procedure -"
$		else
$		    write options_file "	''first_comma'''symbol' = procedure -"
$		endif
$		first_comma = ","
$	    endif
$	    if symbol .eqs. "spare_procedure"
$	    then
$		write xfervectors_file "	.blkb 8		; spare
$	    else
$		write xfervectors_file "	xfervec ''symbol'
$	    endif
$	endif
$!
$	goto lp
$desc_eof:
$	if alpha .and. .not. no_open_paren then write options_file "    )
$	write xfervectors_file "
$	write xfervectors_file "	.end
$	close desc
$	close options_file
$	close xfervectors_file
    
================================================================================
Note 51.1    command procedure to make options and transfer vectors       1 of 4
AZTECH::LASTOVICA "straight but not narrow minded"   37 lines  28-APR-1994 02:07
                              -< simple example >-
--------------------------------------------------------------------------------
options_file_all	~ gsmatch=lequal,2,1001
options_file_all	~ psect_attr=$code$,pic,shr,exe
options_file_all	~ psect_attr=dsn$plit,exe

options_file_all	~ collect=collect, -
options_file_all	~ $$dsn$copyshr_xfervec,dsn$code,$code$,dsn$plit

options_file_all	~ exe$:dsn$share/share

routine			~ dsn$copy_send_file 
routine			~ dsn$copy_receive_file
routine			~ dsn$copy_queue
routine			~ dsn$copy_get_file_info
routine			~ dsn$copy_validate_user

transfer_vectors_file_all ~ dsn$$copy
transfer_vectors_file_all ~ copy_defmaxsiz:: .long   dsn$copy_defmaxsiz

symbol			~ dsncopy$k_pasteof 
symbol			~ dsncopy$k_delete
symbol			~ dsncopy$k_notify_mail
symbol			~ dsncopy$k_notify_brdcst
symbol			~ dsncopy$k_accessnum    
symbol			~ dsncopy$k_requeue
symbol			~ dsncopy$k_seq_check    
symbol			~ dsncopy$k_noquemsg
symbol			~ dsncopy$k_com_cmdfil
symbol			~ dsncopy$k_noauthorization
symbol			~ dsncopy$k_defer_hangup


!
! force DZRO pages for this shareable image on VAX
!
options_file_vax	~ dzro_min=1
options_file_vax	~ unsupported=1
    
================================================================================
Note 51.2    command procedure to make options and transfer vectors       2 of 4
AZTECH::LASTOVICA "straight but not narrow minded"  607 lines  28-APR-1994 02:09
                      -< a slightly more complex example >-
--------------------------------------------------------------------------------
options_file_all	~ ident="STARS V2.6-1"
options_file_all	~ GSMATCH=LEQUAL,2,4010

options_file_vax	~ PSECT_ATTR=$CODE$,pic,shr
options_file_vax	~ psect_attr=_stars$stemming_table,exe
options_file_vax	~ psect_attr=_stars$plit,exe
options_file_vax	~ psect_attr=_stars$vega_plit,exe

options_file_vax	~ collect=xfer,_stars$transfer_vectors
options_file_vax	~ collect=code_plit,$code, _stars$code,$code$,_stars$vega_code,_lib$key0$, -
options_file_vax	~        _lib$state$,_stars$stemming_table,_stars$plit,_stars$vega_plit
options_file_vax	~ collect=data,_stars$own,_stars$vega_own,$local,_stars$global, -
options_file_vax	~        _stars$vega_global,cli$tables

options_file_all	~ stars$lib$:stars$dba/library
options_file_all	~ stars$lib$:stars$lib/library
options_file_all	~ stars$lib$:stars$vega/library

transfer_vectors_file_all	~ 1$:
transfer_vectors_file_all	~ .MACRO _ascid str
transfer_vectors_file_all	~	.ascid str
transfer_vectors_file_all	~	.align quad
transfer_vectors_file_all	~ .ENDM	_ascid
transfer_vectors_file_all	~ stars$libshr_base == .

symbol			~ STARS$LIBSHR_BASE
symbol			~ STARS$GD_DATABASE_IDENTIFIER
symbol			~ STARS$GD_DATABASE_TIME
symbol			~ STARS$GD_DELETED_ARTICLES
symbol			~ STARS$GD_EDITORIAL_REVIEW
symbol			~ STARS$GD_EUR_CUSTOMER_READABLE
symbol			~ STARS$GD_FIELD_READABLE
symbol			~ STARS$GD_FLASH
symbol			~ STARS$GD_GIA_CUSTOMER_READABLE
symbol			~ STARS$GD_INIT_MESSAGE_DISPLAY
symbol			~ STARS$GD_LOCAL
symbol			~ STARS$GD_MAIN_SESSION
symbol			~ STARS$GD_MAIN_SESSION_DESC
symbol			~ STARS$GD_COORDINATE_SESSION
symbol			~ STARS$GD_POST_MESSAGE_DISPLAY
symbol			~ STARS$GD_READY
symbol			~ STARS$GD_TECHNICAL_REVIEW
symbol			~ STARS$GD_USA_CUSTOMER_READABLE
symbol			~ STARS$GD_USED_ARTICLES
symbol			~ STARS$GD_VEGA_VERSION
symbol			~ STARS$GD_VERSION
symbol			~ STARS$GK_FLAG_TYPE
symbol			~ STARS$K_COORDINATED_ID
symbol			~ STARS$K_ADD
symbol			~ STARS$K_ADD_NOISEWORD
symbol			~ STARS$K_ADD_SYNONYM
symbol			~ STARS$K_APPL_DSIN
symbol			~ STARS$K_APPL_DSNLINK
symbol			~ STARS$K_APPL_INCA
symbol			~ STARS$K_APPL_STARS
symbol			~ STARS$K_APPL_MOSAIC
symbol			~ STARS$K_APPL_UNKNOWN
symbol			~ STARS$K_ARTICLE_QUALITY
symbol			~ STARS$K_ASSOC_FUNCTION
symbol			~ STARS$K_AUDIT
symbol			~ STARS$K_BADGE_TYPE
symbol			~ STARS$K_BOOLEAN_QUERY
symbol			~ STARS$K_BOOLEAN_SUBQUERY
symbol			~ STARS$K_CLIENT_V23
symbol			~ STARS$K_CLIENT_V24
symbol			~ STARS$K_CLIENT_V25
symbol			~ STARS$K_CLIENT_V26
symbol			~ STARS$K_CLOSE
symbol			~ STARS$K_DELETE
symbol			~ STARS$K_DELETE_NOISEWORD
symbol			~ STARS$K_DELETE_SYNONYM
symbol			~ STARS$K_EXTRACT
symbol			~ STARS$K_FLAG_TYPE
symbol			~ STARS$K_GEOGRAPHY_TYPE
symbol			~ STARS$K_HEADER_SEARCH
symbol			~ STARS$K_HEADER_SUBSEARCH
symbol			~ STARS$K_IL_ARTICLE
symbol			~ STARS$K_IL_QUERY
symbol			~ STARS$K_IL_QUERY_DB
symbol			~ STARS$K_IL_SRQ
symbol			~ STARS$K_INTRUSIVE_LOGGING
symbol			~ STARS$K_KEY_TYPE
symbol			~ STARS$K_LOG
symbol			~ STARS$K_NAME_TYPE
symbol			~ STARS$K_NETSERVER_BUFSIZ
symbol			~ STARS$K_NOFLAG_TYPE
symbol			~ STARS$K_NONE
symbol			~ STARS$K_OPEN
symbol			~ STARS$K_OWNER
symbol			~ STARS$K_OWNER_TYPE
symbol			~ STARS$K_PURGE
symbol			~ STARS$K_QUERY
symbol			~ STARS$K_QUERY_SUMMARY
symbol			~ STARS$K_REMOVE_SYNONYM
symbol			~ STARS$K_REPLACE
symbol			~ STARS$K_SELECT
symbol			~ STARS$K_SERVER_V23
symbol			~ STARS$K_SERVER_V24
symbol			~ STARS$K_SERVER_V25
symbol			~ STARS$K_SERVER_V26
symbol			~ STARS$K_SITE_TYPE
symbol			~ STARS$K_STARS_TYPE
symbol			~ STARS$K_SUBQUERY
symbol			~ STARS$K_TITLE_LIST
symbol			~ STARS$K_VEGA_GET
symbol			~ STARS$K_VEGA_PUT
symbol			~ STARS$K_VEGA_UPDATE
symbol			~ STARS$M_DFS_SERVED
symbol			~ STARS$M_ENABLE_ROOT
symbol			~ STARS$M_EXT_HYPHEN
symbol			~ STARS$M_EXT_PAREN
symbol			~ STARS$M_EXT_PREFACE
symbol			~ STARS$M_EXT_SPACE
symbol			~ STARS$M_FAL_REMOTE
symbol			~ STARS$M_INDEX_MAINTENANCE
symbol			~ STARS$M_INDEX_MESSAGE
symbol			~ STARS$M_INDEX_TEXT
symbol			~ STARS$M_INDEX_TITLE
symbol			~ STARS$M_MODE_ACTIVE
symbol			~ STARS$M_MODE_DEFERRED_WRITE
symbol			~ STARS$M_MODE_EXCLUSIVE
symbol			~ STARS$M_MODE_FIXED_KEYREC
symbol			~ STARS$M_MODE_IGNORE_IDENTIFIER
symbol			~ STARS$M_MODE_INCLUDE_DELETED
symbol			~ STARS$M_MODE_NOISE
symbol			~ STARS$M_MODE_NOSERVER
symbol			~ STARS$M_MODE_NOUSERDATA
symbol			~ STARS$M_MODE_READONLY
symbol			~ STARS$M_MODE_RONOISESYN
symbol			~ STARS$M_MODE_ROOT
symbol			~ STARS$M_MODE_SPELL
symbol			~ STARS$M_MODE_SYNONYM
symbol			~ STARS$M_SERVED_REMOTE
symbol			~ STARS$M_VEGA_BLINK
symbol			~ STARS$M_VEGA_CONVERT_TABS
symbol			~ STARS$M_VEGA_DELETE_BITMAP
symbol			~ STARS$M_VEGA_EXCLUSIVE
symbol			~ STARS$M_VEGA_MODIFY_BITMAP
symbol			~ STARS$M_VEGA_NOCHECKSUM
symbol			~ STARS$M_VEGA_NOSERVER
symbol			~ STARS$M_VEGA_READONLY
symbol			~ STARS$M_VEGA_REMOVE_HIDDEN_TEXT
symbol			~ STARS$M_VEGA_SEGMENT
symbol			~ STARS$M_VEGA_UPDATE_DATES
symbol			~ STARS$V_DFS_SERVED
symbol			~ STARS$V_ENABLE_ROOT
symbol			~ STARS$V_EXT_HYPHEN
symbol			~ STARS$V_EXT_PAREN
symbol			~ STARS$V_EXT_PREFACE
symbol			~ STARS$V_EXT_SPACE
symbol			~ STARS$V_FAL_REMOTE
symbol			~ STARS$V_INDEX_MAINTENANCE
symbol			~ STARS$V_INDEX_MESSAGE
symbol			~ STARS$V_INDEX_TEXT
symbol			~ STARS$V_INDEX_TITLE
symbol			~ STARS$V_MODE_ACTIVE
symbol			~ STARS$V_MODE_EXCLUSIVE
symbol			~ STARS$V_MODE_FIXED_KEYREC
symbol			~ STARS$V_MODE_DEFERRED_WRITE
symbol			~ STARS$V_MODE_IGNORE_IDENTIFIER
symbol			~ STARS$V_MODE_INCLUDE_DELETED
symbol			~ STARS$V_MODE_NOISE
symbol			~ STARS$V_MODE_NOSERVER
symbol			~ STARS$V_MODE_NOUSERDATA
symbol			~ STARS$V_MODE_READONLY
symbol			~ STARS$V_MODE_RONOISESYN
symbol			~ STARS$V_MODE_ROOT
symbol			~ STARS$V_MODE_SPELL
symbol			~ STARS$V_MODE_SYNONYM
symbol			~ STARS$V_SERVED_REMOTE
symbol			~ STARS$V_VEGA_BLINK
symbol			~ STARS$V_VEGA_CONVERT_TABS
symbol			~ STARS$V_VEGA_DELETE_BITMAP
symbol			~ STARS$V_VEGA_EXCLUSIVE
symbol			~ STARS$V_VEGA_MODIFY_BITMAP
symbol			~ STARS$V_VEGA_NOCHECKSUM
symbol			~ STARS$V_VEGA_NOSERVER
symbol			~ STARS$V_VEGA_READONLY
symbol			~ STARS$V_VEGA_REMOVE_HIDDEN_TEXT
symbol			~ STARS$V_VEGA_SEGMENT
symbol			~ STARS$V_VEGA_UPDATE_DATES
symbol			~ STARS$_ACCREMOTE
symbol			~ STARS$_BADACTION
symbol			~ STARS$_BADANDNOT
symbol			~ STARS$_BADANDORNOT
symbol			~ STARS$_BADLSDHB
symbol			~ STARS$_BADRULE
symbol			~ STARS$_BADVERSION
symbol			~ STARS$_BUG
symbol			~ STARS$_CACHEWRITTEN
symbol			~ STARS$_CCBUFOVR
symbol			~ STARS$_CHKENTERNAME
symbol			~ STARS$_CLOSE_PAREN
symbol			~ STARS$_CONNLOST
symbol			~ STARS$_CONVERTED
symbol			~ STARS$_CONVERTING
symbol			~ STARS$_COPYDICT
symbol			~ STARS$_COPYNOISE
symbol			~ STARS$_COPYSYN
symbol			~ STARS$_CREATEART
symbol			~ STARS$_CREATEKEY
symbol			~ STARS$_CREATENOISE
symbol			~ STARS$_CREATESYN
symbol			~ STARS$_CREATETITLE
symbol			~ STARS$_DBERROR
symbol			~ STARS$_DBFULL
symbol			~ STARS$_DBNOTV25
symbol			~ STARS$_DBUDTOOBIG
symbol			~ STARS$_DBV24
symbol			~ STARS$_DELETED
symbol			~ STARS$_DELETE_PENDING
symbol			~ STARS$_DISUSERDATA
symbol			~ STARS$_DONTORNOT
symbol			~ STARS$_DUPSYN
symbol			~ STARS$_EMPTYSTACK
symbol			~ STARS$_END_OF_LINE
symbol			~ STARS$_EOL
symbol			~ STARS$_EXPRESSPROB
symbol			~ STARS$_FACILITY
symbol			~ STARS$_FILTER_ADD
symbol			~ STARS$_FILTER_DELETE
symbol			~ STARS$_FLAGDEINDEXED
symbol			~ STARS$_FLAGINDEXED
symbol			~ STARS$_GEOGDEINDEXED
symbol			~ STARS$_GEOGINDEXED
symbol			~ STARS$_GEOGSET
symbol			~ STARS$_HYPHENWORD
symbol			~ STARS$_ICONVERTING
symbol			~ STARS$_IDNOTFOUND
symbol			~ STARS$_IDNOTUNIQUE
symbol			~ STARS$_INACTIVE
symbol			~ STARS$_INDEXMISMATCH
symbol			~ STARS$_INITKEY
symbol			~ STARS$_INVARTNUM
symbol			~ STARS$_INVDBITMLST
symbol			~ STARS$_INVKEYTYPE
symbol			~ STARS$_INVPRIV
symbol			~ STARS$_INVSDHB
symbol			~ STARS$_KEYNOTPRESENT
symbol			~ STARS$_LOGDISABLED
symbol			~ STARS$_LOGNOTOPEN
symbol			~ STARS$_LOWMAXARTS
symbol			~ STARS$_MAXDBOPEN
symbol			~ STARS$_NOACCESS
symbol			~ STARS$_NOCREATEDICT
symbol			~ STARS$_NODBDIR
symbol			~ STARS$_NODBLINFO
symbol			~ STARS$_NODBUSERDATA
symbol			~ STARS$_NODELCURRSESSION
symbol			~ STARS$_NOISEMISMATCH
symbol			~ STARS$_NOLOGOWNERTYPE
symbol			~ STARS$_NOMORE
symbol			~ STARS$_NONETACCESS
symbol			~ STARS$_NOPRIV
symbol			~ STARS$_NOROOMSYN
symbol			~ STARS$_NOSDHBAVL
symbol			~ STARS$_NOSUCHSYN
symbol			~ STARS$_NOSYNCH
symbol			~ STARS$_NOSYNONYMS
symbol			~ STARS$_NOTACTIVE
symbol			~ STARS$_NOTFND
symbol			~ STARS$_NOTINSET
symbol			~ STARS$_NOTRCVRBL
symbol			~ STARS$_NOUSERDATA
symbol			~ STARS$_OLDGEOG
symbol			~ STARS$_OLDOWNER
symbol			~ STARS$_OLDSITE
symbol			~ STARS$_OPEN_PAREN
symbol			~ STARS$_OPERDISABLED
symbol			~ STARS$_OREXPECT
symbol			~ STARS$_OWNERDEINDEXED
symbol			~ STARS$_OWNERINDEXED
symbol			~ STARS$_OWNERSET
symbol			~ STARS$_PARWORDEXPECT
symbol			~ STARS$_PREFACED
symbol			~ STARS$_PREVDELETED
symbol			~ STARS$_REMOTE
symbol			~ STARS$_RESTRICTFULL
symbol			~ STARS$_RMDBMAX
symbol			~ STARS$_RMDBNOACCESS
symbol			~ STARS$_RMDBNOTAVAIL
symbol			~ STARS$_RMDBNOTFOUND
symbol			~ STARS$_RONOHDR
symbol			~ STARS$_ROOTMISMATCH
symbol			~ STARS$_SESSIONNOTFND
symbol			~ STARS$_SITEDEINDEXED
symbol			~ STARS$_SITEINDEXED
symbol			~ STARS$_SITESET
symbol			~ STARS$_SPELLMISMATCH
symbol			~ STARS$_SUBQNOMAT
symbol			~ STARS$_SVR23
symbol			~ STARS$_SVRNOT25
symbol			~ STARS$_SYNONYMMISMATCH
symbol			~ STARS$_TIMEOUT
symbol			~ STARS$_TITLETOOLONG
symbol			~ STARS$_TOTCONVERTED
symbol			~ STARS$_TOTDELCONVERTED
symbol			~ STARS$_UDMISMATCH
symbol			~ STARS$_USERDATAERR
symbol			~ STARS$_VEGA_ALLOCBLINK
symbol			~ STARS$_VEGA_BADBLINK
symbol			~ STARS$_VEGA_BADHLINK
symbol			~ STARS$_VEGA_BADVIN
symbol			~ STARS$_VEGA_BITOUTRANGE
symbol			~ STARS$_VEGA_BMBLINK
symbol			~ STARS$_VEGA_BUFCHKSUM
symbol			~ STARS$_VEGA_BUFNOTBM
symbol			~ STARS$_VEGA_BUFNOTMAPPED
symbol			~ STARS$_VEGA_CONTNOLINK
symbol			~ STARS$_VEGA_DELETED
symbol			~ STARS$_VEGA_DSBLCHKSUM
symbol			~ STARS$_VEGA_EOI
symbol			~ STARS$_VEGA_FIRSTBLINK
symbol			~ STARS$_VEGA_FIRSTCONT
symbol			~ STARS$_VEGA_FMTERR
symbol			~ STARS$_VEGA_HDRCHKSUM
symbol			~ STARS$_VEGA_INCBMFL
symbol			~ STARS$_VEGA_INCBUFSIZ
symbol			~ STARS$_VEGA_INVACCMOD
symbol			~ STARS$_VEGA_ITMALROPN
symbol			~ STARS$_VEGA_ITMCNTBUG
symbol			~ STARS$_VEGA_ITMNOTOPN
symbol			~ STARS$_VEGA_LARGEBUF
symbol			~ STARS$_VEGA_LASTCONT
symbol			~ STARS$_VEGA_MOREONEGET
symbol			~ STARS$_VEGA_MOREONEPUT
symbol			~ STARS$_VEGA_MULTIREC
symbol			~ STARS$_VEGA_NOALLOCBM
symbol			~ STARS$_VEGA_NODELETEBM
symbol			~ STARS$_VEGA_NOEXTQTY
symbol			~ STARS$_VEGA_NOMODIFYBM
symbol			~ STARS$_VEGA_NONETACCESS
symbol			~ STARS$_VEGA_NOSYNCH
symbol			~ STARS$_VEGA_NOTALLOCBM
symbol			~ STARS$_VEGA_NOTDELBM
symbol			~ STARS$_VEGA_NOTDELETED
symbol			~ STARS$_VEGA_NOTMODBM
symbol			~ STARS$_VEGA_NOTOPEN
symbol			~ STARS$_VEGA_NOTOPNGET
symbol			~ STARS$_VEGA_NOTOPNPUT
symbol			~ STARS$_VEGA_ONEREC
symbol			~ STARS$_VEGA_READONLY
symbol			~ STARS$_VEGA_REMOTE
symbol			~ STARS$_VEGA_RMSGETTMO
symbol			~ STARS$_VEGA_RMSPUTTMO
symbol			~ STARS$_VEGA_SEGNYI
symbol			~ STARS$_VEGA_SMALLBUF
symbol			~ STARS$_VEGA_TIMEOUT
symbol			~ STARS$_VEGA_UNALLOC
symbol			~ STARS$_VEGA_ZEROVFHB
symbol			~ stars$_coordincorrupt
symbol			~ stars$_coordindate
symbol			~ stars$_parentdbopen
symbol			~ stars$k_query_english
symbol			~ stars$k_query_boolean
symbol			~ stars$k_query_auto_boolean
symbol			~ stars$_createphrase
symbol			~ stars$_notphrase
symbol			~ stars$_phrase
symbol			~ stars$_phrasenotindexed
symbol			~ stars$_partphrase
symbol			~ stars$_phraseexists
symbol			~ stars$k_phrase_type
symbol			~ stars$k_phrase_reindex_type
symbol			~ stars$m_mode_phrase
symbol			~ stars$v_mode_phrase
symbol			~ stars$k_add_phrase
symbol			~ stars$k_delete_phrase
symbol			~ stars$_nophrasefile

routine			~ stars$initialize
routine			~ stars$close
routine			~ stars$cleanup
routine			~ stars$add_keyword
routine			~ stars$delete_keyword
routine			~ stars$remove_keyword
routine			~ stars$get_article_number
routine			~ stars$delete_article_number
routine			~ stars$index_article
routine			~ stars$delete_article
routine			~ stars$add_title
routine			~ stars$delete_title
routine			~ stars$get_title
routine			~ stars$keyword_matches
routine			~ stars$search_init
routine			~ stars$search_keyword_and
routine			~ stars$search_keyword_or
routine			~ stars$search_keyword_and_not
routine			~ stars$undo_last_search
routine			~ stars$search_next
routine			~ stars$add_noiseword
routine			~ stars$delete_noiseword
routine			~ stars$is_noiseword
routine			~ stars$add_synonym
routine			~ stars$delete_synonym
routine			~ stars$remove_synonym
routine			~ stars$get_synonym
routine			~ stars$expand_synonyms
routine			~ stars$remove_suffixes
routine			~ stars$correct_spelling
routine			~ stars$query_word
routine			~ stars$query
routine			~ stars$query_multi
routine			~ stars$search_next_multi
routine			~ stars$match_query
routine			~ stars$db_info
routine			~ stars$extract_word
routine			~ stars$push_article_set
routine			~ stars$pop_article_set
routine			~ stars$reset_stack
routine			~ stars$push_article_set_multi
routine			~ stars$pop_article_set_multi
routine			~ stars$reset_stack_multi
routine			~ stars$get_user_data
routine			~ stars$put_user_data
routine			~ stars$free_user_data_lock
routine			~ stars$list_noisewords
routine			~ stars$list_synonyms
routine			~ stars$replace_article
routine			~ stars$set_query_algorithm
routine			~ stars$search_all
routine			~ stars$search_all_multi
routine			~ stars$search_elim_article
routine			~ stars$elim_dbl_brackets
routine			~ stars$search_keyword_load
routine			~ stars$build_boolean_tree
routine			~ stars$evaluate_boolean_tree
routine			~ stars$delete_boolean_tree
routine			~ stars$purge_title
routine			~ stars$purge_articles
routine			~ stars$get_db_user_data
routine			~ stars$put_db_user_data
routine			~ stars$delete_db_user_data
routine			~ stars$free_db_user_data_lock
routine			~ stars$alloc_article_number
routine			~ stars$set_db_flags
routine			~ stars$not_and_search_keyword
routine			~ stars$not_and_pop_stack
routine			~ stars$pop_and_not_stack
routine			~ stars$pop_and_stack
routine			~ stars$pop_or_stack
routine			~ stars$get_user_data_and_title
routine			~ stars$change_db_info
routine			~ stars$open_log_file
routine			~ stars$write_log_record
routine			~ stars$close_log_file

routine			~ stars$vega_create_file
routine			~ stars$vega_open_file
routine			~ stars$vega_close_file
routine			~ stars$vega_open_item
routine			~ stars$vega_close_item
routine			~ stars$vega_delete_item
routine			~ stars$vega_get_record
routine			~ stars$vega_put_record
routine			~ stars$vega_get_string
routine			~ stars$vega_put_string
routine			~ stars$vega_update_string
routine			~ stars$vega_purge_items
routine			~ stars$vega_backup_mod_buffers
routine			~ stars$create_unique_id
routine			~ stars$find_unique_id
routine			~ stars$get_highlight_map

routine			~ strsdba$check_privilege
routine			~ strsdba$close_database
routine			~ strsdba$find_db
routine			~ strsdba$get_db_info
routine			~ strsdba$get_dbcb_info
routine			~ strsdba$get_next_db
routine			~ strsdba$get_next_open_db
routine			~ strsdba$initialize
routine			~ strsdba$open_database
routine			~ strsdba$rewind
routine			~ strsdba$terminate

routine			~ stars$create_database
routine			~ stars$convert_database
routine			~ stars$vega_convert_file
routine			~ stars$index_userdata
routine			~ stars$search_keyword_and_multi
routine			~ stars$search_keyword_or_multi
routine			~ stars$search_keyword_not_multi
routine			~ stars$do_logical_query
routine			~ stars$add_restriction
routine			~ stars$create_session
routine			~ stars$delete_session
routine			~ stars$select_session
routine			~ stars$get_current_session
routine			~ stars$get_session_info
routine			~ stars$find_database_in_session
routine			~ stars$get_next_session_database

routine			~ stars$vega_compute_checksum

routine			~ stars$search_date_and

routine			~ strsdba$get_print_queue
routine			~ strsdba$get_print_queue_list

routine			~ stars$coordinate_exclude
routine			~ stars$set_cdb
routine			~ stars$search_and_not_multi

routine			~ stars$$get_coordination_info
routine			~ stars$swap_top_article_set
routine			~ strsdba$return_owners

routine			~ stars$$initialize_compress
routine			~ stars$$finish_compress
routine			~ stars$$compress

routine			~ stars$$initialize_decompress
routine			~ stars$$finish_decompress
routine			~ stars$$decompress

routine			~ stars$alter_session
routine			~ strsdba$cleanup_bad_connections

routine			~ stars$add_phrase
routine			~ stars$delete_phrase
routine			~ stars$is_phrase
routine			~ stars$list_phrases

routine			~ stars$extract_get_term
routine			~ stars$extract_init
routine			~ stars$extract_finish
routine			~ stars$extract_do_line
routine			~ stars$search_reindex
routine			~ stars$index_phrases_of_article
routine			~ stars$begin_phrase_reindexing
routine			~ stars$end_phrase_reindexing

symbol			~ stars$_phrasedeleted


transfer_vectors_file_all	~
transfer_vectors_file_vax	~;
transfer_vectors_file_vax	~; Leave space to the end of the current section.  the next section *MUST* start
transfer_vectors_file_vax	~; at offset 600 (hex) so that the symbols are always at the right place!  1536
transfer_vectors_file_vax	~; is hex 600 expressed in decimal.
transfer_vectors_file_vax	~;
transfer_vectors_file_vax	~	.blkb	<^X600 - .-1$>
transfer_vectors_file_vax	~	assume . eq 1536
transfer_vectors_file_alpha	~.align quad
transfer_vectors_file_all	~	stars$gd_enable_root::		_ascid </ENABLE ROOT/>
transfer_vectors_file_all	~	stars$gd_index_title::		_ascid </INDEX TITLE/>
transfer_vectors_file_all	~	stars$gd_index_text::		_ascid </INDEX TEXT/>
transfer_vectors_file_all	~	stars$gd_index_message::	_ascid </INDEX MESSAGE/>
transfer_vectors_file_all	~	stars$gd_index_maintenance::	_ascid </INDEX MAINTENANCE/>
transfer_vectors_file_all	~
transfer_vectors_file_all	~	stars$gd_version::		_ascid </STARS$LIBSHR V2.6-1/>
transfer_vectors_file_all	~	stars$gd_deleted_articles::	_ascid </DELETED ARTICLES/>
transfer_vectors_file_all	~	stars$gd_used_articles::	_ascid </USED ARTICLES/>
transfer_vectors_file_all	~	stars$gd_database_time::	_ascid </DB TIME/>
transfer_vectors_file_all	~	stars$gd_database_identifier::	_ascid </DB IDENTIFIER/>
transfer_vectors_file_all	~
transfer_vectors_file_all	~	stars$gd_flash::		_ascid </FLASH/>
transfer_vectors_file_all	~	stars$gd_local::		_ascid </LOCAL/>
transfer_vectors_file_all	~	stars$gd_ready::		_ascid </READY/>
transfer_vectors_file_all	~	stars$gd_usa_customer_readable::_ascid </USA_CUSTOMER_READABLE/>
transfer_vectors_file_all	~	stars$gd_eur_customer_readable::_ascid </EUR_CUSTOMER_READABLE/>
transfer_vectors_file_all	~	stars$gd_gia_customer_readable::_ascid </GIA_CUSTOMER_READABLE/>
transfer_vectors_file_all	~	stars$gd_init_message_display::	_ascid </INIT_MESSAGE_DISPLAY/>
transfer_vectors_file_all	~	stars$gd_post_message_display::	_ascid </POST_MESSAGE_DISPLAY/>
transfer_vectors_file_all	~	stars$gd_editorial_review::	_ascid </EDITORIAL_REVIEW/>
transfer_vectors_file_all	~	stars$gd_technical_review::	_ascid </TECHNICAL_REVIEW/>
transfer_vectors_file_all	~	stars$gd_field_readable::	_ascid </FIELD_READABLE/>
transfer_vectors_file_all	~
transfer_vectors_file_all	~	stars$gd_main_session::		_ascid </MAIN/>
transfer_vectors_file_all	~	stars$gd_main_session_desc::	_ascid </Main STARS session/>
transfer_vectors_file_all	~
transfer_vectors_file_all	~	stars$gd_coordinate_session::	_ascid </COORDINATE/>
transfer_vectors_file_all	~
transfer_vectors_file_all	~	stars$gd_phrase_time::		_ascid </PHRASE RE-INDEX TIME/>
transfer_vectors_file_all	~	stars$gd_phrase_number::	_ascid </LAST PHRASE NUMBER/>
transfer_vectors_file_all	~
transfer_vectors_file_all	~;
transfer_vectors_file_all	~; leave the copyright message last since it can move freely
transfer_vectors_file_all	~;
transfer_vectors_file_all	~.if not_defined target
transfer_vectors_file_all	~	.ascii	/ COPYRIGHT � 1988,1994 DIGITAL EQUIPMENT CORPORATION. All rights reserved/
transfer_vectors_file_all	~.endc
transfer_vectors_file_all	~
transfer_vectors_file_all	~.if	defined target
transfer_vectors_file_all	~	.ascii	/ TARGET->SMART SEARCH/
transfer_vectors_file_all	~
transfer_vectors_file_all	~	.ascii	/ Copyright Target Systems Corporation 1988, 1992. All rights reserved./
transfer_vectors_file_all	~
transfer_vectors_file_all	~	.ascii	/ Portions Copyright � 1988,1994 Digital Equipment Corporation. All rights  reserved./
transfer_vectors_file_all	~
transfer_vectors_file_all	~	.ascii	/ This software is proprietary to and embodies the confidential technology of/
transfer_vectors_file_all	~	.ascii	/ Target Systems Corporation. Possession, use, or copying of this software and/
transfer_vectors_file_all	~	.ascii	/ media is authorized only pursuant to a written license from Target Systems/
transfer_vectors_file_all	~	.ascii	/ or an authorized sublicensor./
transfer_vectors_file_all	~
transfer_vectors_file_all	~	.ascii	/ Portions of this software are proprietary to and embody the confidential/
transfer_vectors_file_all	~	.ascii	/ technology of Digital Equipment Corporation. Possession, use, or copying of/
transfer_vectors_file_all	~	.ascii	/ this software and media is authorized only pursuant to a written license/
transfer_vectors_file_all	~	.ascii	/ from Digital or an authorized sublicensor./
transfer_vectors_file_all	~
transfer_vectors_file_all	~	.ascii	/ Restricted Rights:  Use, duplication, or disclosure by the U.S./
transfer_vectors_file_all	~	.ascii	/ Government is subject to restrictions as set forth in subparagraph (c)/
transfer_vectors_file_all	~	.ascii	/ (1) (ii) of DFARS 252.227-7013, or in FAR 52.227-19, or in FAR 52.227-14 /
transfer_vectors_file_all	~	.ascii	/ Alt. III, as applicable./
transfer_vectors_file_all	~.endc
    
================================================================================
Note 51.3    command procedure to make options and transfer vectors       3 of 4
AZTECH::LASTOVICA "straight but not narrow minded"   20 lines  28-APR-1994 02:10
                         -< example from DESCRIP.MMS >-
--------------------------------------------------------------------------------
    .ifdef _alpha
    BFLAGS = /debug/LIST/OBJECT=$(MMS$TARGET_NAME)/OPTIMIZE/CHECK=NOAlign
    MFLAGS = /debug/LIST/OBJECT=$(MMS$TARGET_NAME)
    _vax_or_alpha = alpha
    .else
    BFLAGS = /debug/LIST/OBJECT=$(MMS$TARGET_NAME)/OPTIMIZE=(speed)
    MFLAGS = /debug/LIST/OBJECT=$(MMS$TARGET_NAME)
    _vax_or_alpha = vax
    .endif
    
    stars$lib_xfervec.mar, -
    stars$Libshr.opt                : stars$libshr_description.dat, -
                                    stars$build_options_xfervec.com
            @stars$build_options_xfervec.com -
                    stars$libshr_description.dat -
                    stars$libshr.opt -
                    stars$lib_xfervec.mar -
                    _stars$transfer_vectors -
                    $(_vax_or_alpha)
    
================================================================================
Note 51.4    command procedure to make options and transfer vectors       4 of 4
AZTECH::LASTOVICA "straight but not narrow minded"     1 line  28-APR-1994 02:11
                         -< example from a SETUP.COM >-
--------------------------------------------------------------------------------
    $ mmsd          ==      "mms/macro=(""_alpha=1"",""mmsdebug=/debug"")"