Invokes the Librarian utility to create, modify, or describe an object, macro, help, text, or shareable image library. Format LIBRARY library-file-spec [input-file-spec[,...]]
1 – Command Parameters
library-file-spec The name of the library you want to create or modify. This parameter is required. If you do not specify a library file, you are prompted for one, as follows: _Library: No wildcard characters are allowed in the library file specification. If the file specification does not include a file type and if the command string does not indicate one, the LIBRARY command assumes a default type of .OLB, indicating an object library. input-file-spec[,...] The names of one or more files that contain modules you want to insert into the specified library. If you specify more than one input file, separate the file specifications with commas. The input file specification is required when you specify /REPLACE, which is the LIBRARY command's default operation, or /INSERT, which is an optional qualifier. When you use the /CREATE qualifier to create a new library, the input file specification is optional. If you include an input file specification with the /CREATE qualifier, LIBRARY first creates a new library and then inserts the contents of the input files into the library.
2 /ALPHA_(Alpha_and_VAX_only)
Directs LIBRARIAN to work with an OpenVMS Alpha object library when used with the /OBJECT qualifier or to work with an OpenVMS Alpha shareable image library when used with the /SHARE qualifier. When used with the /CREATE qualifier, LIBRARIAN creates an OpenVMS Alpha library of either an object or shareable image type depending whether /OBJECT or /SHARE is specified. The default is /ALPHA on OpenVMS Alpha systems and /VAX on OpenVMS VAX systems. The OpenVMS I64 Librarian does not accept this qualifier because it works exclusively with I64 libraries. Format /ALPHA
2.1 – Examples
1.$ LIBRARY/ALPHA/CREATE TESTLIB ERRMSG.OBJ,STARTUP.OBJ This LIBRARY command creates an OpenVMS Alpha object library named TESTLIB.OLB and places the files ERRMSG.OBJ and STARTUP.OBJ as modules in the library. 2.$ LIBRARY/ALPHA/SHARE/CREATE SHARELIB.OLB This LIBRARY command creates an OpenVMS Alpha shareable image library called SHARELIB.OLB.
3 /BEFORE
Specifies that only those modules inserted earlier than a particular time be listed. Format /BEFORE[=time] time Limits the modules to be listed to those inserted in the library before a specified time. You can specify an absolute time or a combination of absolute and delta times.
3.1 – Example
$ LIBRARY/LIST/BEFORE=15-APR-:15 MATHLIB This LIBRARY command lists the modules that were inserted into MATHLIB.OLB before 3 p.m. on April 15.
4 /COMPRESS
Recovers space that was occupied by modules deleted from the library. When you specify /COMPRESS, LIBRARY creates a new library. You can use options to the /COMPRESS qualifier to make some specifications in the new version of the library different from the original library. Format /COMPRESS[=(option[,...])] option An option that alters the size or format of the library, overriding the values specified when the library was created. You can specify one or more of the following options: BLOCKS:n, GLOBALS:n, HISTORY:n, KEEP, KEYSIZE:n, MODULES:n, or VERSION:n.
4.1 – Example
$ LIBRARY/COMPRESS=(KEYSIZE:40,MODULES:80)/TEXT SOURCE This LIBRARY command creates a new version of the text library SOURCE.TLB. Space left after modules were deleted from the old version is recovered in the new version. The new version can contain up to 80 modules; the maximum length of module names in the new version is 40.
5 /CREATE
Requests the DCL command LIBRARY to create a new library. When you specify /CREATE, you can optionally specify a file or a list of files that contains modules to be placed in the library. On OpenVMS VAX systems, the /CREATE qualifier creates a VAX library by default when used to create object and shareable image libraries. On OpenVMS Alpha systems, the /CREATE qualifier createsan Alpha library by default when used to create object and shareable image libraries. (Note that you cannot have Alpha modules and VAX modules in the same library.) On OpenVMS I64 systems, the /CREATE qualifier creates an ELF library when used to create object and shareable image libraries. Format /CREATE[=(option[,...])] option An option that overrides the system defaults to control the size or format of the library. You can specify one or more of the following options: BLOCKS:n, CASE_SENSITIVE:[YES/NO], GLOBALS:n, HISTORY:n, KEEP, KEYSIZE:n, MODULES:n, or VERSION:n.
5.1 – Examples
1.$ LIBRARY/CREATE TESTLIB ERRMSG,STARTUP This LIBRARY command creates an object module library named TESTLIB.OLB and places the files ERRMSG.OBJ and STARTUP.OBJ as modules in the library. 2.$ LIBRARY/MACRO/CREATE=(BLOCKS:40,MODULES:100) MYMAC TEMP $ MACRO MYMAC/LIBRARY,CYGNUS/OBJECT This LIBRARY command creates a macro library named MYMAC.MLB from the macros in the file TEMP.MAR. The new library has room for 100 modules in a 40-block file. If the input file contains multiple macros, each macro is entered in the new library.
6 /CROSS_REFERENCE
Requests a cross-reference listing of an object library. Format /CROSS_REFERENCE[=(option[,...])] option An option that produces a cross-reference listing that is not limited to only symbols by name and symbols by value. You can specify one or more of the following options: ALL, MODULE, NONE, SYMBOL, or VALUE.
6.1 – Example
$ LIBRARY/CROSS_REFERENCE=ALL/OUTPUT=SYS$OUTPUT LIBRAR This LIBRARY command requests a cross-reference listing of the object library LIBRAR.OLB. The cross-reference listing is displayed at the terminal. The listing includes cross- references by symbol, by value, and by module.
7 /DATA
Stores a library in data-reduced format or expands a library previously stored in data-reduced format. Format /DATA=option option The option REDUCE, which stores a library in data-reduced format, or the option EXPAND, which expands a library previously stored in data-reduced format. There is no default; you must specify one of the options. ________________________ Note ________________________ For I64 systems, VSI strongly recommends that DCX data-reduced ELF object libraries first be expanded before performing Linker operations. ______________________________________________________
7.1 – Example
$ LIBRARY/TEXT/DATA=REDUCE TEXTLIB This LIBRARY command stores the data in the text library TEXTLIB.TLB in data-reduced format.
8 /DELETE
Requests the LIBRARY command to delete (physically remove) one or more modules from a library. Format /DELETE=(module[,...]) module The name of the module to be deleted.
8.1 – Example
$ LIBRARY/DELETE=FREEZE/LOG THAW This LIBRARY command physically removes the module FREEZE from the object library THAW. A message is displayed to confirm that the module was deleted.
9 /DEMANGLED_SYMBOLS_(I64_Only)
Lists symbols from an ELF object or ELF shareable image library that were altered by a language processor (a process known as "mangling") and prints their corresponding "demangled" name (that is, the name found in the source code). Mangled names are output as external symbols from an object module or as universal symbols from a shareable image. You can use /OUTPUT=file-spec to direct the generated output from the demangling process to a file specification you choose. When you do not specify a file, the default is the current disk and directory, using the name of the library as the filename and the extension .LIS as the file type. Format /DEMANGLED_SYMBOLS
9.1 – Examples
1.$ LIBRARY/DEMANGLED_SYMBOLS/OUTPUT=SYS$OUTPUT OBJLIB.OLB This LIBRARY command outputs the demangled symbols from an object library and displays them on the terminal. 2.$ LIBRARY/DEMANGLED_SYMBOLS/OUTPUT=DUMP.LIS SHAREIMG.OLB This LIBRARY command outputs a full listing of the demangled symbols from the shareable image library SHAREIMG.OLB; the output is written to a file named DUMP.LIS. 3.$ LIBRARY/DEMANGLED_SYMBOLS/ONLY=$ONE SYMBOLIB This LIBRARY command outputs a full listing of the demangled symbols for the module $ONE in object library SYMBOLIB.OLB. The output is written to a file named SYMBOLIB.LIS.
10 /EXTRACT
Copies one or more modules from a library into a file. Format /EXTRACT=(module[,...]) module The name of the module to be copied.
10.1 – Example
$ LIBRARY/EXTRACT=(ALLOCATE,APPEND)/OUTPUT=MYHELP SYS$HELP:HELPLIB.HLB This LIBRARY command specifies that the modules ALLOCATE and APPEND are to be extracted from the help library HELPLIB.HLB and output to the file MYHELP.HLP in your current default directory.
11 /FULL
Requests a full description of each module in the module name table. Format /FULL
11.1 – Example
$ LIBRARY/LIST=MYMAC.LIS/FULL MYMAC.MLB This LIBRARY command requests a full listing of the macro library MYMAC; the output is written to a file named MYMAC.LIS.
12 /GLOBALS
For object and shareable image module libraries, controls whether the names of global symbols in modules being inserted in the library, as well as Unix-style weak symbols and group symbols from ELF objects, are included in the global symbol table. Format /GLOBALS /NOGLOBALS
12.1 – Example
$ LIBRARY/INSERT/NOGLOBALS TOOLS SPELL This LIBRARY command inserts the modules in SPELL.OBJ into the object library TOOLS, but global symbol names in the inserted modules are not included in the library's global symbol table.
13 /HELP
Indicates that the library specified is a help library. Format /HELP
13.1 – Example
$ LIBRARY/HELP/CREATE ERRMSG EDITERRS This LIBRARY command creates a help library called ERRMSG.HLB. Help text from the file EDITERRS.HLP is inserted into the library.
14 /HISTORY
Requests that update history record headers be listed (for libraries that contain a history). The operation referred to in the header has one of three values: replaced, inserted, or deleted. Format username operation n modules on dd-mmm-yyy hh:mm:ss
14.1 – Example
$ LIBRARY/LIST/HISTORY/MACRO SETUP This LIBRARY command lists the headers of the update history records in the macro library SETUP.MLB.
15 /INSERT
Requests the LIBRARY command to add the contents of one or more files to an existing library. Format /INSERT
15.1 – Example
$ LIBRARY/INSERT TESTLIB SCANLINE $ LINK TERMTEST,TESTLIB/LIBRARY This LIBRARY command adds the module SCANLINE.OBJ to the library TESTLIB.OLB. The library is specified as input to the linker by the /LIBRARY qualifier on the LINK command. If the module TERMTEST.OBJ refers to any routines or global symbols not defined in TERMTEST, the linker searches the global symbol table of library TESTLIB.OLB to resolve the symbols.
16 /LIST
Controls whether the LIBRARY command creates a listing that provides information about the contents of the library. Format /LIST[=file-spec] /NOLIST file-spec The file specification of the file to be listed.
16.1 – Examples
1.$ LIBRARY/LIST=MYMAC.LIS/FULL MYMAC.MLB This LIBRARY command requests a full listing of the macro library MYMAC; the output is written to a file named MYMAC.LIS. 2.$ LIBRARY/LIST/NAMES/ONLY=$ONE/WIDTH=80 SYMBOLIB This LIBRARY command requests a full listing of the module $ONE, contained in the object library SYMBOLIB.OLB. The /WIDTH qualifier requests that the global symbol display be limited to 80 characters per line. 3.$ LIBRARY/INSERT/LIST ALLOBJECTS * This LIBRARY command inserts into ALLOBJECTS.OLB all object modules from all object files in the current directory. If any of the modules to be inserted have the same name as an existing module in the library, the existing module is replaced. The LIBRARY command then lists the resulting library on SYS$OUTPUT.
17 /LOG
Controls whether the LIBRARY command verifies each library operation. Format /LOG /NOLOG
17.1 – Example
$ LIBRARY/REMOVE=(LIB_EXTRCT_MODS,LIB_INPUT_MAC)/LOG LIBRAR This LIBRARY command requests the removal of the global symbols LIB_EXTRCT_MODS and LIB_INPUT_MAC from the object library LIBRAR.OLB. The /LOG qualifier requests that the removal of the symbols be confirmed by messages.
18 /MACRO
Indicates that the library specified is a macro library. Format /MACRO
18.1 – Example
$ LIBRARY/MACRO/INSERT MONTHS APRIL This LIBRARY command inserts modules from APRIL.MAR into the macro library MONTHS.MLB.
19 /MODULE
Names a text module that you want to replace or insert into a text library. It also modifies the input file specification parameter. Format /MODULE=module-name module-name The name of the module to be inserted in the library.
19.1 – Example
$ LIBRARY/INSERT/TEXT TSTRING SYS$INPUT/MODULE=TEXT1 This LIBRARY command inserts a module named TEXT1 into the text library TSTRING.TLB. The input is taken from SYS$INPUT.
20 /NAMES
When /LIST is specified for an object module library, controls whether the LIBRARY command lists the names of all symbols in the global symbol table as well as the module names in the module name table. Format /NONAMES (default) Alpha and VAX /NAMES I64 /NAMES[=option] option Controls the listing of the names. You may optionally specify one of the following keywords: BYMODULE Lists each module followed by a list of the symbols in the global symbol table associated with that module. This is the default listing format when no keyword is given with the /NAMES qualifier. BYSYMBOL Lists each symbol in the global symbol table followed by a list of modules with which the symbol is associated, in precedence order.
20.1 – Example
$ LIBRARY/LIST/NAMES/ONLY=$ONE/WIDTH=80 SYMBOLIB This LIBRARY command requests a full listing of the module $ONE, contained in the object library SYMBOLIB.OLB. The /WIDTH qualifier requests that the global symbol display be limited to 80 characters per line.
21 /OBJECT
Indicates that the library specified is an object module library. On OpenVMS VAX systems, the /OBJECT qualifier creates a VAX library by default. On OpenVMS Alpha systems, the /OBJECT qualifier creates an Alpha library by default. (Note that you cannot have Alpha modules and VAX modules in the same library file.) On OpenVMS I64 systems, the /OBJECT qualifier creates only ELF object libraries. Format /OBJECT
21.1 – Example
$ LIBRARY/OBJECT/INSERT MONTHS APRIL This LIBRARY command inserts modules from APRIL.OBJ into the object library MONTHS.OLB. The /OBJECT qualifier is optional.
22 /ONLY
Specifies the individual modules on which the LIBRARY command can operate. Format /ONLY=(module-name[,...]) module-name The module on which the LIBRARY command can operate.
22.1 – Example
$ LIBRARY/LIST/NAMES/ONLY=$ONE/WIDTH=80 SYMBOLIB This LIBRARY command requests a full listing of the module $ONE, contained in the object library SYMBOLIB.OLB. The /WIDTH qualifier requests that the symbol display be limited to 80 characters per line.
23 /OUTPUT
When used with the /COMPRESS, /CROSS_REFERENCE, /DATA, /DEMANGLED_SYMBOLS, or /EXTRACT qualifier, specifies the file specification of the output file. Format /OUTPUT=file-spec file-spec The file specification of the output file.
23.1 – Examples
1.$ LIBRARY/EXTRACT=(ALLOCATE,APPEND)/OUT=MYHELP SYS$HELP:HELPLIB.HLB This LIBRARY command specifies that the modules ALLOCATE and APPEND be extracted from the help library HELPLIB.HLB and output to the file MYHELP.HLP. 2.$ LIBRARY/CROSS_REFERENCE=ALL/OUTPUT=SYS$OUTPUT LIBRAR This LIBRARY command requests a cross-reference listing of the object library LIBRAR.OLB. The cross-reference listing is displayed at the terminal. The listing includes cross- references by symbol, by value, and by module.
24 /REMOVE
Requests the LIBRARY command to delete one or more entries from the global symbol table in a library. Format Alpha and VAX: /REMOVE=(symbol[,...]) I64: /REMOVE=(symbol[:module] [,...]) symbol The symbol to be deleted from the global symbol table. module The module whose instance of the symbol is to be removed from the global symbol table. With the support of UNIX- style weak symbols and ELF group symbols, a symbol can have definitions from more than one module. This extended syntax allows you to remove from the index a symbol of a specific module without removing the symbol instances of all other modules from the index. The [:module] is OpenVMS I64 Librarian syntax only.
24.1 – Example
$ LIBRARY/REMOVE=(LIB_EXTRCT_MODS,LIB_INPUT_MAC)/LOG LIBRAR This LIBRARY command requests the removal of the global symbols LIB_EXTRCT_MODS and LIB_INPUT_MAC from the object library LIBRAR.OLB. The /LOG qualifier requests that the removal of the symbols be confirmed by messages.
25 /REPLACE
Requests the LIBRARY command to replace one or more existing library modules with the modules specified in the input files. Format /REPLACE
25.1 – Example
$ LIBRARY/REPLACE/HELP HELPLIB NEWTEXT This LIBRARY command inserts into the help library HELPLIB.HLB the help modules from the file NEWTEXT.HLP. If a help module in NEWTEXT.HLP has the same name as an existing help module in the library, the module from NEWTEXT.HLP replaces the existing module.
26 /SELECTIVE_SEARCH
Defines the input modules being inserted into a library as candidates for selective searches by the linker. Format /SELECTIVE_SEARCH
26.1 – Example
$ LIBRARY/SELECTIVE_SEARCH/INSERT MATHLIB TRIG This LIBRARY command inserts the modules in TRIG.OBJ into the library MATHLIB.OLB. The inserted modules are selectively searched when MATHLIB.OLB is specified as an input file to the linker.
27 /SHARE
Indicates that the library specified is a shareable image library and assumes a file type of .OLB for the shareable image library and .EXE for the input files. On OpenVMS VAX systems, the /SHARE qualifier creates a VAX shareable image library by default. On OpenVMS Alpha systems, the /SHARE qualifier creates an Alpha shareable image library by default. (Note that you cannot have VAX modules and Alpha modules in the same library.) On I64 systems, the /SHARE qualifier creates only ELF sharable image libraries. Format /SHARE
27.1 – Example
$ LIBRARY/SHARE/CREATE SHARELIB.OLB This LIBRARY command creates a shareable image library called SHARELIB.OLB.
28 /SINCE
Specifies that only those modules inserted later than a particular time be listed. Format /SINCE[=time] time Limits the modules to be listed to those inserted in the library since a specified time. You can specify an absolute time or a combination of absolute and delta times. For details about specifying times, see the OpenVMS DCL Dictionary.
28.1 – Example
$ LIBRARY/HELP/LIST/SINCE=:12 ERRMSG This LIBRARY command displays information about help modules added to ERRMSG.HLB since noon today.
29 /SQUEEZE
Controls whether the LIBRARY command compresses individual macros before adding them to a macro library. Format /SQUEEZE /NOSQUEEZE
29.1 – Example
$ LIBRARY/MACRO/NOSQUEEZE/INSERT MYMACS MYMACS This LIBRARY command inserts the macros in MYMACS.MAR into the library MYMACS.MLB. Trailing blanks, trailing tabs, and comments are not deleted from each macro before its insertion into the library.
30 /TEXT
Indicates that the library specified is a text library. Format /TEXT
30.1 – Examples
1.$ LIBRARY/INSERT/TEXT TSTRING SYS$INPUT/MODULE=TEXT1 This LIBRARY command inserts a module named TEXT1 into the text library TSTRING.TLB. The input is taken from SYS$INPUT. 2.$ LIBRARY/INSERT/TEXT TSTRING TEXT2 This LIBRARY command inserts the contents of the file TEXT2.TXT into the text library TSTRING.TLB. The name of the inserted module is TEXT2.
31 /VAX_(VAX_and_Alpha_only)
Directs LIBRARIAN to work with an OpenVMS VAX object library when used with the /OBJECT qualifier or to work with an OpenVMS VAX shareable image library when used with the /SHARE qualifier. When used with the /CREATE qualifier, LIBRARIAN creates an OpenVMS VAX library of either an object or shareable image type depending whether /OBJECT or /SHARE is specified. The default is /ALPHA on OpenVMS Alpha systems and /VAX on OpenVMS VAX systems. The OpenVMS I64 Librarian does not accept this qualifier because it works exclusively with I64 libraries. Format /VAX
31.1 – Examples
1.$ LIBRARY/VAX/CREATE TESTLIB ERRMSG.OBJ,STARTUP.OBJ This LIBRARY command creates a VAX object module library named TESTLIB.OLB and places the files ERRMSG.OBJ and STARTUP.OBJ as modules in the library. 2.$ LIBRARY/VAX/SHARE/CREATE SHARLIB This LIBRARY command creates a VAX shareable image library called SHARLIB.OLB.
32 /WIDTH
Controls the screen display width (in characters) for listing symbol names. Format /WIDTH=n n The width of the screen display.
32.1 – Example
$ LIBRARY/LIST/NAMES/ONLY=$ONE/WIDTH=80 SYMBOLIB This LIBRARY command requests a full listing of the module $ONE, contained in the object library SYMBOLIB.OLB. The /WIDTH qualifier requests that the symbol display be limited to 80 characters per line.