LINKEDIT
LINKEDIT
Starts the MPE Linkage Editor.
SYNTAX
LINKEDIT
PARAMETERS
Welcome to the Link Editor HELP facility.
The Link Editor Help Facility has the same syntax and usage as
the MPE/iX HELP Facility. To receive help on a Link Editor command,
enter the command and an optional help parameter indicating the
category of help you wish to review. Help is also available for
the Link Editor's errors. You can get help on a Link Editor
error by entering the error number in the form of LINKERRxxxx
(or LINKWARNxxxx) where xxxx stands for the 4 digit error number.
Available link editor help commands (keywords) are:
ADDRL COPYXL LISTPROG RL
ADDXL DO LISTREDO SHOWRL
ALTPROG EXTRACTRL LISTRL SHOWXL
ALTXL HELP LISTXL XL
BUILDRL HIDERL PURGERL
BUILDXL LINK PURGEXL
CLEANRL LINKERRxxxx QUIT
CLEANXL LINKWARNxxxx REDO
COPYRL LISTOBJ REVEALRL
Available help categories are:
ALL: Explains everything about the command.
PARMS: Explains parameter(s) for the command.
EXAMPLES: Typical uses of that command.
KEYWORDS: COMMAND,SYNTAX,AVAIL
OPERATION
ADDRL
The ADDRL command adds
object modules from one or more object files
to a relocatable library. If the MERGE option is specified, the
object modules are combined into one object module, and a list of
libraries may be searched
to satisfy any external references contained
within the resulting module. If the MERGE option is not specified,
the object modules are added to the relocatable library
individually.
SYNTAX
ADDRL FROM=object_file
[,object_file]... [;TO=dest_file]
[;MERGE [;RL=rl_file [,rl_file]... ] [;SHOW] [;REPLACE]]
PARAMETERS
object_file
Specifies the name of an object file whose object
modules are to be added to the relocatable library.
dest_file
Specifies the name of the relocatable library. If
this parameter is omitted, the current relocatable
library is used.
MERGE
Specifies that all of the object modules are to be
merged into a single output object module, which is
then added to the library. The name of the new object
module is that of the first one encountered in the
input.
rl_file
Specifies the name of a relocatable library which is
to be searched during a merge operation.
SHOW
Specifies that the names of the object modules being
linked in are displayed during the linking process.
REPLACE
Removes any module(s) residing in the relocatable
library which declare duplicate exported symbols
with respect to the module(s) being added. The new
modules are placed into the library before any modules
with duplicate symbols are removed.
EXAMPLES
To add an object file AOBJ
to the current relocatable library, enter:
addrl from = aobj
To add object files A,B,C
to relocatable library HERRL, enter:
addrl from = a, b, c; to=herrl
ADDXL
The ADDXL command adds
object modules from either an object file or a
relocatable library to an
executable library. Each object module is
independently linked and
added to the executable library. No inter-
module binding or library
searching is done by this command unless
the MERGE option is
specified or a relocatable library is included in
the RL option.
SYNTAX
ADDXL FROM=file [,file]...
[;TO=dest_file]
[;MERGE [;RL=rl_file [,rl_file]... ]]
[;SHOW]
[;PARMCHECK=check_level]
[;PRIVLEV=priv_level]
[;XLEAST=xleast_level]
[;MAP]
[;REPLACE]
[;SHARE]
[;ENTRY=entry_name [,entry_name]...]
[;MODULE=module_name [,module_name]...]
[;LSET=lset_name [,lset_name]...]
[;DATA=data_name [,data_name]...]
PARAMETERS
file
Specifies the name of either an object file or a
relocatable library that contains object modules to
be added.
dest_file
Specifies the name of the executable library to which
the linked object modules are to be added. If this
parameter is omitted, the current executable library
is used.
MERGE
Specifies that all of the object modules are to be
merged into a single output object module, which is
then added to the library. The name of the new object
module is that of the first one encountered in the
input.
rl_file
Specifies the name of a relocatable library which is
to be searched during a merge operation.
SHOW
Specifies that the names of the object modules being
linked in are displayed during the linking process.
PARMCHECK
Determines the type checking error level that the
Link Editor uses while binding external references
to procedures and global variables. All object modules
indicate a checking level for each reference and
each definition of a procedure or a global variable.
When binding an external reference to a definition,
the Link Editor compares the type information at the
lower of the two checking levels specified by the
reference and the definition. If a type mismatch is
found, the Link Editor reports it as either a warn-
ing or an error. This option determines which type
mismatches are warnings and which are errors. If you
omit the PARMCHECK option, the Link Editor uses a
value of 3, which means that all type mismatches are
errors.
The values for check_level are:
0 - All type mismatches are warnings.
1 - Mismatches of the procedure, function, or variable
type are errors; all other mismatches are warnings.
2 - Mismatches of the procedure, function, or variable
type, and mismatches of the number of arguments
for procedures or functions are errors; all other
mismatches (i.e., parameter types) are warnings.
3 - All type mismatches are errors.
PRIVLEV
Determines the privilege level used by the executable
program file. This parameter changes the privilege
level of all procedures in the symbol and export tables
(of the relocatable object file) that were set during
compilation.
The values for priv_level are:
0 - System level access
1 - Unused
2 - Privileged level access
3 - User level access
Default: the privilege levels set during compilation.
XLEAST
Determines the privilege level at which calling
procedures must be executing to use the executable
module.
The values for xleast_level are:
0 - System level access
1 - Unused
2 - Privileged level access
3 - User level access
Default: the existing privilege levels of the executable
module.
MAP
Produces a listing of the object files contained inside
of the executable library and the exported symbols
after the actual adding has been completed.
REPLACE
Removes any module(s) residing in the executable
library which declare duplicate exported symbols
with respect to the module(s) being added. The new
module is placed into the library before any modules
with duplicate symbols are removed.
SHARE
Specifies that the module should be added to the XL
and global data is to be exportable and importable
(i.e shared).
entry_name
Adds the object module(s) that defines (exports) the
symbolic entry_name. This name is case sensitive.
module_name
Adds the object module(s) that have the name
(module_name).
lset_name
Adds the object module(s) that contain code belonging to
the locality set (lset_name).
data_name
Adds the object module(s) that defines (exports) the
symbolic data_name. This name is case sensitive.
EXAMPLES
To add an object file MPY to the current executable library,
using a
relocatable library called
LIBCL to resolve any references, enter:
addxl from = mpy; rl = libcl.lib.sys
To link object files A,B
together and add the linked object to an
executable library MATHXL,
enter:
addxl from = A,B; to = mathxl; merge
To add object files A,B to
an executable library MYXL and
export/import data, enter:
addxl from=A,B; to=myxl; share
ALTPROG
The ALTPROG command allows
the user to manipulate those fields of a
program file which dictate
the behavior of the program at runtime.
It is especially useful in
that programs may be adjusted without
having to link them a
second time. Most of the options and keywords
available can be overridden
by the :RUN command.
If a keyword is specified
but no argument is given, then the
corresponding field in the
file specified will be reset to its
default value.
SYNTAX
ALTPROG [PROG=file] [,file]
[;XL=xl_file[,xl_file]...]
[;CAP=cap_list]
[;NMSTACK=max_stack_size]
[;NMHEAP=max_heap_size]
[;UNSAT=unsat_name]
[;ENTRY=entry_name]
[;PRI=priority_level]
[;MAXPRI=max_priority_level]
PARAMETERS
file
Specifies the name of the program file to be altered.
If file is not specified, $OLDPASS is assumed.
xl_file
Specifies a default executable library to be searched
at run time.
If xl_file was not previously specified, or has more
characters than the previous xl_file specified, the
linkeditor will attempt to allocate enough space for
the new string. Since this xl_file name can be of
arbitrary length, it is possible to get an error message
from the linkeditor when not enough space is available.
In this case you may specify the XL list on the
:RUN command, or else link the program again using the
longer xl_file name.
To specify the default for xl_file use XL=" ".
cap_list
Specifies the list of capabilities to be assigned to
the executable program file. Accepted values are:
BA - Local Batch Access
IA - Interactive Access
PM - Privileged Mode
MR - Multiple Resources
DS - Extra Data Segments
PH - Process Handling
Default: if no capabilities are specified, the
executable file's capability set will default to BA
and IA.
max_stack_size Specifies
the maximum stack size that the resulting
program will be allotted.
If no max_stack_size is specified but the keyword
NMSTACK= appears on the command line, the default
max_stack_size will be set in the program file.
To specify the default max_stack_size use NMSTACK=-1.
max_heap_size
Specifies the maximum heap size that the resulting
program will be allotted.
To specify the default max_heap_size use NMHEAP=-1.
unsat_name
Specifies the name of the procedure that will be
linked to by any external reference of the process
that cannot be resolved to one of the libraries
available to the process.
If unsat_name was not previously specified, or has
more characters than the previous unsat_name specified,
the linkeditor will attempt to allocate enough space
for the new string. Since this unsat_name can be of
arbitrary length, it is possible to get an error
message from the linkeditor when not enough space is
available. In this case you may specify the unsat_name
on the :RUN command, or else link the program again
using the longer unsat_name.
To specify the default unsat_name use UNSAT="".
entry_name
Adds the object module(s) that defines (exports) the
symbolic entry_name. This name is case sensitive.
If entry_name was not previously specified, or has more
characters than the previous entry_name specified,
the linkeditor will attempt to allocate enough space
for the new string. Since this entry_name can be of
arbitrary length, it is possible to get an error message
from the linkeditor when not enough space is available.
In this case you may specify the entry_name on
the :RUN command, or else link the program again using
the longer entry_name.
To specify the default entry_name use ENTRY="".
priority_level Specifies
the execution priority that the program will
have at runtime. The priority_level has to be either
BS, CS, DS, ES, or a number between 100 and 255
inclusive. This value can be overridden by the PRI=
keyword on the :RUN command.
To specify the default priority_level use PRI="".
max_priority_level
Specifies the maximum execution priority that the
program can have at runtime. The priority_level has
to be either BS, CS, DS, ES, or a number between
100 and 255 inclusive. See the PRI= keyword of the
:RUN command for more information.
To specify the default max_priority_level use MAXPRI="".
EXAMPLES
To change the capability of an existing program file called
myprog,
enter:
altprog prog = myprog; cap = ba,ia,pm,ds,ph
To give an exisiting
program file called myprog a new executable
library search list, enter:
altprog myprog; xl=xl.pub.sys
ALTXL
The ALTXL command changes
the dependent library string for an executable
library (XL). It
accepts two options, both are required: the target XL
name and the dependent
library string. Dependent libraries can be
specified in an indirect
file or directly in the argument to the LIB=
parameter.
You must supply at least
one dependent library, since the LIB= parameter
is required.
SYNTAX
ALTXL [XL=xl_file;]
LIB=dependent_lib_list
PARAMETERS
xl_file
Names the executable library whose dependent library
list is to be altered.
dependent_lib_list
Names a list of dependent libraries that must be loaded
when xl_file is loaded. Each dependent library must have
a file code of NMXL.
When you want to include several libraries, you can name
each library directly, or you can name a single file that
contains a list of the libraries you want to include.
If you use this last, indirect method, you must precede
the indirect file name with a caret symbol (^).
EXAMPLES
To change the dependent
library list of MYLIB1 to the list of libraries
specified in MYINDF1, enter:
ALTXL mylib1;LIB=^myindf1
To change the dependent
library list of MYLIB2 to a list of libraries
specified in the LIB= list,
enter:
ALTXL
mylib2;LIB=myxl.pub.linker,myxl.pub.sys
BUILDRL
The BUILDRL command builds
a new, empty, relocatable library. This
library becomes the current
relocatable library until another RL or
BUILDRL command is
processed.
SYNTAX
BUILDRL rl_file
[;LIMIT=max_modules]
PARAMETERS
rl_file
Specifies the name of the relocatable library to be
built. If the file already exists, an error message
is printed, and the command is ignored.
max_modules
Specifies the maximum number of object modules that
can be contained in the library. The default is 2000.
EXAMPLES
To build a
relocatable library call LOANRL having maximum of 20
object modules, enter:
buildrl loanrl; limit = 20
To build a relocatable
USERRL in group COSMETIC, account STOREXX
buildrl userrl.cosmetic.storexx
BUILDXL
The BUILDXL command builds
a new, empty, executable library. This
library becomes the current
executable library until another XL or
BUILDXL command is
processed.
SYNTAX
BUILDXL xl_file
[;LIMIT=max_modules] [;LIB=dependent_lib_list]
PARAMETERS
xl_file
Specifies the name of the executable library to be
built. If the file already exists, an error message
is printed, and the command is ignored.
max_modules
Specifies the maximum number of object modules that
can be contained in the library. The default is 500.
dependent_lib_list
Names a list of dependent libraries that must be loaded
when xl_file is loaded. Each dependent library must have
a file code of NMXL.
When you want to include several libraries, you can name
each library directly, or you can name a single file that
contains a list of the libraries you want to include.
If you use this last, indirect method, you must precede
the indirect file name with a caret symbol (^).
EXAMPLES
To build an executable library called VLSI having maximum of 20
object modules, enter:
buildxl vlsi; limit = 20
To build an executable
library called LIME in group TREE, account FLORIDA
buildxl lime.tree.florida
To build an executable
library called MYXL with dependent libraries
MYLIB1.TEST.LINKER and
MYLIB2.PUB.LINKER, enter:
buildxl myxl; lib=mylib1.test.linker,mylib2.pub.linker
CLEANRL
The CLEANRL command
rebuilds the specified library. Options
are available for changing
the compactness of the space in
the library's
internal tables or for changing the object
modules limit.
SYNTAX
CLEANRL [RL=rl_file]
[;COMPACT]
[;LIMIT=max_modules]
PARAMETERS
rl_file
Specifies the name of the relocatable library which
is to be cleaned. If this parameter is omitted,
then the current relocatable library is used as the
rl_file.
COMPACT
This option will remove fragmentation and reduce the
size of internal tables of the relocatable library to
the minimum size that would accommodate the current
contents of the library.
max_modules
Specifies the maximum number of object modules that
can be contained in the library. This number can not be
greater than the maximum object modules limit (10000)
or less than the number of object modules the library
currently has.
EXAMPLES
To clean the current
relocatable library, enter:
cleanrl
To clean relocatable
library FRAGRL in group LIB, account SYS, enter:
cleanrl fragrl.lib.sys
CLEANXL
The CLEANXL command
rebuilds the specified library. Options
are available for changing
the compactness of the space in
the library's
internal tables or for changing the object
modules limit.
SYNTAX
CLEANXL [XL=xl_file]
[;COMPACT]
[;LIMIT=max_modules]
PARAMETERS
xl_file
Specifies the name of the executable library which
is to be cleaned. If this parameter is omitted,
then the current executable library is used as the
xl_file.
COMPACT
This option will remove fragmentation and reduce the
size of internal tables of the executable library to the
minimum size that would accommodate the current contents
of the library.
max_modules
Specifies the maximum number of object modules that
can be contained in the library. This number can not be
greater than the maximum object modules limit (10000)
or less than the number of object modules the library
currently has.
EXAMPLES
To clean the current
executable library, enter:
cleanxl
To clean executable library
FRAG in group LIB, account SYS, enter:
cleanxl frag.lib.sys
COPYRL
The COPYRL command copies
selected object modules from one
relocatable library to
another. Modules may be selected by entry
point, module name, or
locality set name.
SYNTAX
COPYRL
[;ENTRY=entry_name ]
[;MODULE=module_name]
[;BLOCKDATA=blockdata_name]
[;LSET=lset_name ]
[;FROM=source_file ]
[;TO=dest_file ]
[;REPLACE]
PARAMETERS
entry_name
If the ENTRY option is used, only modules that define
(export) the symbol entry_name are copied.
module_name
If the MODULE option is used, only modules that have
this name are copied.
have this name are copied. Use this parameter only
for HP FORTRAN 77 block data subprograms. You can
use an indirect file for blockdata_name.
lset_name
If the LSET option is used, only modules that contain
code belonging to this locality set are copied. Note
that a module may still contain code belonging to
other locality sets.
If none of the above options are chosen, the entire
library is copied.
source_file
Specifies the name of the relocatable library from
which modules are copied. If this parameter is
omitted, then the current relocatable library is used
as the source file, and dest_file must be given.
dest_file
Specifies the name of the relocatable library to which
modules are copied. If this parameter is omitted,
then the current relocatable library is used as the
destination file, and source_file must be given.
REPLACE
Removes any module(s) residing in the relocatable
library to which modules are copied which declare
duplicate exported symbols with respect to the
module(s) being added. The new module(s) are placed
into the library before any module(s) with duplicate
symbols are removed.
EXAMPLES
Let's assume there
is a module called pbinary.o in LIBCL.LIB
that contains an exported
procedure P_BINARY. Furthermore, let's
assume procedure P_BINARY
has declared a locality set of 'zYz'.
To copy this module to your
relocatable library MYRL, you can
choose one of the
followings:
-
Copyrl using entry name:
copyrl entry=P_BINARY; from=libcl.lib; to=myrl
- Copyrl using
module name:
copyrl module=pbinary.o; from=libcl.lib; to=myrl
- Copyrl using
locality set name:
copyrl lset=zYz; from=libcl.lib; to=myrl
Note that entry name,
module name, lset name are case sensitive.
To obtain these names, one
can do a listrl on the relocatable library.
To copy all the modules
from LIBCL to your relocatable library
MYRL do:
copyrl from=libcl.lib; to=myrl
COPYXL
The COPYXL command copies
selected object modules from one executable
library to another.
Modules may be selected by entry point, module
name, or locality set name.
SYNTAX
COPYXL
[;ENTRY=entry_name ]
[;DATA=data_name ]
[;MODULE=module_name ]
[;BLOCKDATA=blockdata_name]
[;LSET=lset_name ]
[;FROM=source_file ]
[;TO=dest_file ]
[;REPLACE]
PARAMETERS
entry_name
If the ENTRY option is used, only modules that define
(export) the symbol entry_name are copied.
data_name
If the DATA option is used, only the first module that
defines (exports) the symbol data_name are copied.
module_name
If the MODULE option is used, only modules that have
this name are copied.
blockdata_name If the
BLOCKDATA option is used, only modules that
have this name are copied. Use this parameter only
for HP FORTRAN 77 block data subprograms. You can
use an indirect file for blockdata_name.
lset_name
If the LSET option is used, only modules that contain
code belonging to this locality set are copied. Note
that a module may still contain code belonging to
other locality sets.
If none of the above options are chosen, the entire
library is copied.
source_file
Specifies the name of the executable library from
which modules are copied. If this parameter is
omitted, then the current executable library is used
as the source file, and dest_file must be given.
dest_file
Specifies the name of the executable library to which
modules are copied. If this parameter is omitted,
then the current executable library is used as the
destination file, and source_file must be given.
REPLACE
Removes any module(s) residing in the executable
library to which modules are copied which declare
duplicate exported symbols with respect to the
module(s) being added. The new module(s) are placed
into the library before any module(s) with duplicate
symbols are removed.
EXAMPLES
Let's assume there
is a module called pbinary.o in XCL.LIB
that contains an exported
procedure P_BINARY. Furthermore, let's
assume procedure P_BINARY
has declared a locality set of 'zYz' and
exports a data symbol,
'foo'. To copy this module to your executable
library MYXL, you can
choose one of the following:
- Copyxl using
entry name:
copyxl entry=P_BINARY; from=xcl.lib; to=myxl
- Copyxl using
data name:
copyxl data=foo; from=xcl.lib; to=myxl
- Copyxl using
module name:
copyxl module=pbinary.o; from=xcl.lib; to=myxl
- Copyxl using
locality set name:
copyxl lset=zYz; from=xcl.lib; to=myxl
Note that entry name, data
name, module name, lset name are case
sensitive. To obtain these
names, one can do a listxl on the executable
library.
To copy all the modules
from XCL to your executable library
MYXL do:
copyxl from=xcl.lib; to=myxl
DO
Allows the user re-execute any
command still retained in the
command line history stack.
SYNTAX
DO
[cmdid]
PARAMETERS
cmdid
Specifies the command to re-execute. The
command may be specified by its relative or
absolute order in the command line history
stack, or by name (as a string).
EXAMPLES
DO
pas
Re-executes the the most recent command begins
with the string pas.
DO
10
Re-executes command number 10 (absolute) on the
command history stack.
DO
-2
Re-executes the second-to last command on the
stack (one command before the most recent).
QUIT
Exits subsystem and returns
to command level.
You can type quit or one of
the followings:
EXIT, BYE, E, EX, EXI, Q.
SYNTAX
{ QUIT }
{ EXIT }
{ BYE }
{ EXI }
{ EX }
{ E }
{ Q }
PARAMETERS
There is no
parameter for this command.
EXAMPLES
To exit from the
Link Editor, enter:
quit
EXTRACTRL
The EXTRACTRL command
extracts selected object modules from a
relocatable library and
places them in a new object file. Modules
may be selected by entry
point, module name, or locality set.
SYNTAX
EXTRACTRL [;ENTRY=entry_name ]
[;MODULE=module_name]
[;BLOCKDATA=blockdata_name]
[;LSET=lset_name ]
[;FROM=source_file ]
[;TO=object_file ]
PARAMETERS
entry_name
If the ENTRY option is used, only modules that define
(export) the symbol entry_name are extracted.
module_name
If the MODULE option is used, only modules that have
this name are extracted.
blockdata_name If the
BLOCKDATA option is used, only those modules
that have this name are extracted. Use this
parameter only for HP FORTRAN 77 block data
subprograms. You can use an indirect file for
blockdata_name.
lset_name
If the LSET option is used, only modules that contain
code belonging to this locality set are extracted.
Note that a module may still contain code belonging to
other locality sets.
If none of the above options are chosen, all modules
in the library are extracted.
source_file
Specifies the name of the relocatable library from
which modules are extracted. If this parameter is
omitted, then the current relocatable library is used.
object_file
Specifies the name of the object file. If this
parameter is omitted, then $NEWPASS is used.
EXAMPLES
Let's assume there
is a module called pbinary.o in LIBCL.LIB
that contains an exported
procedure P_BINARY. Furthermore, let's
assume procedure P_BINARY
has declared a locality set of 'zYz'.
To extract this module to
an object module called newpbin, you can
choose one of the
followings:
-
Extractrl using entry name:
extractrl entry=P_BINARY; from=libcl.lib; to=newpbin
- Extractrl
using module name:
extractrl module=pbinary.o; from=libcl.lib; to=newpbin
- Extractrl
using locality set name:
extractrl lset=zYz; from=libcl.lib; to=newpbin
Note that entry name,
module name, lset name are case sensitive.
To obtain these names, one
can do a listrl on the relocatable
library.
To extract all the modules
from LIBCL to a file called MULTISOM
do:
extractrl from=libcl.lib; to=multisom
File MULTISOM will then contains all object modules in LIBCL.LIB.
HIDERL
The HIDERL command will
make the symbol specified as ENTRY invisible
to the loader. If
DATA is specified, it will make the symbol specified
invisible to the
loader. These symbols can later be made visible through
the use of the REVEALRL
command.
If entry and data are not
specified, the ALL option is assumed. In this
case, all entry symbols in
this relocatable library will be hidden.
SYNTAX
HIDERL [ ENTRY=entry_name ] [ DATA=data_name]
[;RL=rl_file]
[;ALL]
[;ALL_DATA]
PARAMETERS
entry_name
Specifies the name of the exported entry symbol which is
to be hidden from the loader.
data_name
Specifies the name of the exported data symbol which is
to be hidden from the loader.
rl_file
Specifies the name of the relocatable library in which
the symbol is to be hidden. If this parameter is
omitted, then the current relocatable library is used.
ALL
All entry symbols in the library will be hidden. This
option is mutually exclusive with the ENTRY option.
ALL_DATA
All exported data symbols in the library will be
hidden. This option is mutually exclusive with the
DATA option.
EXAMPLES
Assume you have a
procedure called 'secret' in your module
SIMULATE and this module,
along with others, are in your
library MYRL. If you want
to hide procedure 'secret' so
that when module SIMULATE
is extracted and added to an
executable library, no one
can use procedure 'secret',
you can do one of the
followings:
rl MYRL
hiderl
entry=secret
or
hiderl
entry=secret; rl=MYRL
Note that hiderl is used in
relocatable libraries but it only
influences executable
libraries.
To hide all data symbols in
your relocatable library such that when
the relocatable library is
added to an executable library they are
hidden from the loader,
enter:
hiderl;
rl=myrl; all_data
LINK
The LINK command links all
the object modules from the source files
into a single object
module, and adds the resulting object module to
an executable
library. All object modules found in the named object
files or relocatable
libraries are included in the link; in addition,
any relocatable libraries
named in the RL= option are searched to
satisfy any unresolved
references.
This command is most often
used to create programs, which then can
be run with the MPE/iX :RUN
command.
SYNTAX
LINK FROM=file
[,file]... [;TO=dest_file]
[;RL=rl_file[,rl_file]...]
[;XL=xl_file[,xl_file]...]
[;CAP=cap_list]
[;NMSTACK=max_stack_size]
[;NMHEAP=max_heap_size]
[;UNSAT=unsat_name]
[;PARMCHECK=check_level]
[;PRIVLEV=priv_level]
[;PRI=priority_level]
[;MAXPRI=max_priority_level]
[;ENTRY=entry_name]
[;NODEBUG]
[;MAP]
[;SHARE]
[;SHOW]
PARAMETERS
file
Specifies the name of an object file or a relocatable
library. All object modules found in the file are
linked.
dest_file
Specifies the name of an executable library where the
resulting object module is placed. This parameter
must be present; if the file does not exist, it is
created; if it exists, the old copy is replaced by the
new copy.
rl_file
Specifies a relocatable library to be searched at link
time.
xl_file
Specifies a default executable library to be searched
at run time. The XL option is valid only for
program files.
cap_list
Specifies the list of capabilities to be assigned to
the executable program file. Accepted values are:
BA - Local Batch Access
IA - Interactive Access
PM - Privileged Mode
MR - Multiple Resources
DS - Extra Data Segments
PH - Process Handling
Default: if no capabilities are specified, the
executable file's capability set will default to BA
and IA.
max_stack_size Specifies
the maximum stack size that the resulting
program will be allotted. This option is valid only
for program files.
max_heap_size
Specifies the maximum heap size that the resulting
program will be allotted. This option is valid only
for program files.
unsat_name
Specifies the name of the procedure that will be
linked to by any external reference of the process
that cannot be resolved to one of the libraries
available to the process.
PARMCHECK
Determines the type checking error level that the
Link Editor uses while binding external references
to procedures and global variables. All object modules
indicate a checking level for each reference and
each definition of a procedure or a global variable.
When binding an external reference to a definition,
the Link Editor compares the type information at the
lower of the two checking levels specified by the
reference and the definition. If a type mismatch is
found, the Link Editor reports it as either a warn-
ing or an error. This option determines which type
mismatches are warnings and which are errors. If you
omit the PARMCHECK option, the Link Editor uses a
value of 3, which means that all type mismatches are
errors.
The values for check_level are:
0 - All type mismatches are warnings.
1 - Mismatches of the procedure, function, or variable
type are errors; all other mismatches are warnings.
2 - Mismatches of the procedure, function, or variable
type, and mismatches of the number of arguments
for procedures or functions are errors; all other
mismatches (i.e., parameter types) are warnings.
3 - All type mismatches are errors.
PRIVLEV
Determines the privilege level used by the executable
program file. This parameter changes the privilege
level of all procedures in the symbol and export tables
(of the relocatable object file) that were set during
compilation.
The values for priv_level are:
0 - System level access
1 - Unused
2 - Privileged level access
3 - User level access
Default: the privilege levels set during compilation.
priority_level Specifies
the execution priority that the program will
have at runtime. The priority_level has to be either
BS, CS, DS, ES, or a number between 100 and 255 inclusive.
This value can be overridden by the PRI= keyword on
the :RUN command.
max_priority_level
Specifies the maximum execution priority that the
program can have at runtime. The priority_level has
to be either BS, CS, DS, ES, or a number between 100 and
255 inclusive.
See the PRI= keyword of the :RUN command for more
information.
entry_name
Specifies the name of the point at which entry into
the program should occur at run time.
NODEBUG
Specifies that all debugging information should be
stripped from the output object module.
MAP
Specifies that a map should be built.
SHARE
Specifies that data symbols should be exportable and
importable (shared) in the resulting executable.
SHOW
Specifies that the names of the object modules being
linked in are displayed during the linking process.
EXAMPLES
If you want to link
procedure SUB1, SUB2, TOOL1, TOOL2,
and MAIN to a program
called MYPROG. Do:
link
from=sub1,sub2,tool1,tool2,main; to=myprog
If you want to replace
module TOOL2 to TOOLX and TOOLX needs
some procedures in
relocatable library SYSTOOL then do:
link
from=sub1,sub2,tool1,toolx,main;to=myprog;rl=systool
If you want to link module
POOR to module MAIN and also
want the Loader to search
executable library CLASS as
default, do:
link from=main, poor;
to=myprog; xl=class
If you want to link module
A and module MAIN and share data so that
data symbols in the program
file myprog can be exported and imported
to/from the executable
library myxl, do:
link from=A,MAIN;
to=myprog; share; rl=libcshr.lib.sys; xl=myxl
The following examples are
some typical uses of the other
options:
- To specify a list of
capabilities to your program:
link from=a,b;
to=myprog; cap=SF, MR, PM; rl=libc.lib
- To specify secondary
entry point 'adder_in' instead of
the default entry
point use:
link from=a,b;
to=myprog; entry=adder_in; rl=xyzrl
- To set maximum stack
size, maximum heap size for your
program; do:
link from=a,b;
to=myprog;stack=500; heap=200
LISTOBJ
The LISTOBJ command lists
the contents of the program to $STDLIST.
If none of the options is
specified, LISTOBJ will print a default
set of symbols as follows:
. procedure entry points.
. primary and secondary entry points.
. code and data unsatisfied symbols.
. data universal symbols ( data being defined in the library ).
. COBOL 'chunk' symbols.
. storage requests ( Fortran common ).
. module symbols.
SYNTAX
[;ALL]
[;CODE]
LISTOBJ
OBJFILE=relocatable_object_file [;DATA]
[;ENTRYSYM]
[;MILLICODE]
PARAMETERS
relocatable_object_file:
Specifies the name of the relocatable object file to
list.
ALL:
All symbols above will be listed.
CODE:
List all code symbols in this program alphabetically.
DATA:
List all data symbols in this program alphabetically.
ENTRYSYM:
List all entry points in this program alphabetically.
MILLICODE:
List all milli code symbols in this program alphabetical
EXAMPLES
To see what data and
entry points are in an object module
called EXAM do:
listobj
objfile=exam;data;entrysym
To do the same thing as
above but instead of having the
listing display on your
terminal, redirecting the listing
to the line printer do:
FILE LINKLIST; DEV=LP
RUN LINKEDIT.PUB.SYS
listobj
objfile=exam;data;entrysym
LISTPROG
The LISTPROG command lists
the contents of the program to $STDLIST.
If none of the options is
specified, LISTPROG will print a default
set of symbols as follows:
. procedure entry points.
. primary and secondary entry points.
. code and data unsatisfied symbols.
. data universal symbols ( data being defined in the library ).
. COBOL 'chunk' symbols.
. storage requests ( Fortran common ).
. module symbols.
SYNTAX
[;ALL]
[;CODE]
[;DATA]
LISTPROG
PROG=executable_program_file [;ENTRYSYM]
[;MILLICODE]
[;STUB]
[;VALUE]
PARAMETERS
executable_program_file
Specifies the name of the executable program file to list.
ALL:
All symbols above will be listed.
CODE:
List all code symbols in this program alphabetically.
DATA:
List all data symbols in this program alphabetically.
ENTRYSYM:
List all entry points in this program alphabetically.
MILLICODE:
List all milli code symbols in this program alphabetical
STUB:
List all stub symbols in this program alphabetically.
VALUE:
List the values (virtual addresses in most cases) of the
symbols in this program. If any symbol type specified
in the option list, those symbols will be listed in
their ascending values. If none of the symbol type
specified, a default set of symbols will be listed
in their ascending values.
EXAMPLES
To see what data and
entry points are in a program
called MYPROG do:
listprog
prog=myprog;data;entrysym
To do the same thing as
above but instead of having the
listing display on your
terminal, redirecting the listing
to the line printer do:
FILE LINKLIST; DEV=LP
RUN LINKEDIT.PUB.SYS
listprog
prog=myprog;data;entrysym
LISTREDO
Displays the contents of the
command line history stack.
Display order is from the last to
the most recent command.
SYNTAX
LISTREDO
PARAMETERS
There is no
parameter for this command.
EXAMPLES
If three commands were written to
the redo stack and the third
command is :LISTREDO, the display
would appear this way:
1) commandone
2) commmandtwo
3) listredo
LISTRL
The LISTRL command lists
the contents of the library and its object
modules to $STDLIST. You
can selectively list each module or modules
by specifying ENTRY,
MODULE, BLOCKDATA or LSET. You can also list
just the module names by
specifing SHORT_LIST. SHORT_LIST will
override all other options
specified except ENTRY, MODULE, BLOCKDATA
and LSET. If none of
the above options is specified the entire
library is listed.
Furthermore, in each module, you can specify the
type of symbols to be
listed by using ALL, CODE, DATA, ENTRYSYM, or
MILLICODE option. If
none of the those options is specified, LISTRL
will print a default set of
symbols as follows:
. procedure entry points.
. primary and secondary entry points.
. code and data unsatisfied symbols.
. data universal symbols ( data being defined in the library ).
. COBOL 'chunk' symbols.
. storage requests ( Fortran common ).
. module symbols.
SYNTAX
LISTRL [RL=rl_file]
[;ENTRY=entry_name [,entry_name]...]
[;MODULE=module_name [,module_name]...]
[;BLOCKDATA=blockdata_name [,blockdata_name]...]
[;LSET=lset_name [,lset_name]...]
[;SHORT_LIST]
[;ALL]
[;CODE]
[;DATA]
[;ENTRYSYM]
[;MILLICODE]
PARAMETERS
rl_file
Specifies the name of the relocatable library to list.
If this parameter is omitted, the current relocatable
library is listed.
entry_name:
If the ENTRY option is used, modules that define
(export) the symbols entry_name are listed. Indirect
file can be used for this list of entry_name.
module_name: If
the MODULE option is used, modules that have these
names are listed. Indirect file can be used for the list
of module_name.
blockdata_name:Lists only
those modules having the name blockdata_name.
Use this parameter only for HP FORTRAN 77 block data
subprograms. Indirect file can be used for the list
of blockdata_name.
lset_name:
If the LSET option is used, modules that contain code
belong to these locality set are listed. Indirect file
can be used for this list of lset_name.
SHORT_LIST:
List the module names in the library. Can be used with
entry_name, module_name, blockdata_name and/or
lset_name. Will override ALL, CODE, DATA, ENTRYSYM,
and MILLICODE.
ALL:
All symbols above will be listed.
CODE:
List all code symbols in this library alphabetically.
DATA:
List all data symbols in this library alphabetically.
ENTRYSYM:
List all entry points in this library alphabetically.
MILLICODE:
List all milli code symbols in this library alphabetical
EXAMPLES
To see what data and
entry points are in relocatable
library LIBC.LIB; do:
listrl
rl=libc.lib;data;entrysym
To list the module names in
the ONESLIB library do:
listrl rl=oneslib;
short_list
To list all procedure names
in an object module SORT in the ONESLIB
library do:
listrl rl=oneslib;
module=sort; entrysym
To do the same thing as
above but instead of having the
listing displays on your
terminal, redirecting the listing
to the line printer; do:
FILE LINKLIST; DEV=LP
RUN LINKEDIT.PUB.SYS
listrl
libc.lib;data;entrysym
LISTXL
The LISTXL command lists
the contents of the library and its object
modules to $STDLIST. You
can selectively list each module or modules
by specifying ENTRY,
MODULE, BLOCKDATA, LSET, or DATA_ITEM. You can
also list just the module
names by specifying SHORT_LIST. SHORT_LIST
will override all other
options specified except ENTRY, MODULE,
BLOCKDATA, and LSET.
If none of the above options is specified
the entire library is
listed. Furthermore, in each module, you can
specify the type of symbols
to be listed by using ALL, CODE, DATA,
ENTRYSYM, MILLICODE, STUB,
and VALUE options. If none of those
options are specified,
LISTXL will print a default set of symbols
as follows:
. procedure entry points.
. primary and secondary entry points.
. code and data unsatisfied symbols.
. data universal symbols ( data being defined in the library ).
. COBOL 'chunk' symbols.
. storage requests.
. module symbols.
. data unsats (data being imported by the library).
SYNTAX
LISTXL [XL=xl_file]
[;ENTRY=entry_name [,entry_name]...]
[;MODULE=module_name [,module_name]...]
[;BLOCKDATA=blockdata_name [,blockdata_name]...]
[;LSET=lset_name [,lset_name]...]
[;DATA_ITEM=data_name [,data_name]...]
[;SHORT_LIST]
[;ALL]
[;CODE]
[;DATA]
[;ENTRYSYM]
[;MILLICODE]
[;STUB]
[;VALUE]
PARAMETERS
xl_file
Specifies the name of the executable library to list.
If this parameter is omitted, the current executable
library is listed.
entry_name:
If the ENTRY option is used, modules that define
(export) the symbols entry_name are listed. An indirect
file can be used for the list of entry_name.
module_name: If
the MODULE option is used, modules that have these
names are listed. An indirect file can be used for the
list of module_name.
blockdata_name:Lists only
those modules having the name blockdata_name.
Use this parameter only for HP FORTRAN 77 block data
subprograms. An indirect file can be used for the list
of blockdata_name.
lset_name:
If the LSET option is used, modules that contain code
belong to these locality set are listed. An indirect
file can be used for the list of lset_name.
data_name:
If the DATA_ITEM option is used, modules that define
(export) the data symbols are listed. An indirect file
can be used for the list of data_name.
SHORT_LIST:
List the module names in the library. Can be used with
entry_name, module_name, blockdata_name and/or
lset_name. Will override ALL, CODE, DATA, ENTRYSYM,
MILLICODE, STUB, and VALUE.
ALL:
All symbols above will be listed with their values.
CODE:
List all code symbols in this library alphabetically.
DATA:
List all data symbols in this library alphabetically.
ENTRY:
List all entry points in this library alphabetically.
MILLICODE:
List all milli code symbols in this library alphabetical
STUB:
List all stub symbols in this library alphabetically.
VALUE:
List the values (virtual addresses in most cases) of the
symbols in this library. If any symbol type specified
in the option list, those symbols will be listed in
their ascending values. If none of the symbol type
specified, a default set of symbols will be listed
in their ascending values.
EXAMPLES
To see what entry
points and their value are in executable
library XCL.LIB, module
FOO; do:
listxl xcl.lib; module=foo;
entrysym; value
To do the same thing as
above but instead of having the
listing displays on your
terminal, redirecting the listing
to the line printer; do:
FILE LINKLIST; DEV=LP
RUN LINKEDIT.PUB.SYS
listxl xcl.lib; module=foo;
entrysym; value
To list the module names in
the XCL library do:
listxl xl=xcl.lib;
short_list
To list the modules that
contain "data_one" do:
listxl
xl=xcl.lib;data_item=data_one
PURGERL
The PURGERL command purges
selected modules from a relocatable
library. Modules may
be selected by entry point, module name, or
locality set.
SYNTAX
PURGERL
[;ENTRY=entry_name ]
[;MODULE=module_name ]
[;BLOCKDATA=blockdata_name]
[;LSET=lset_name ]
[;RL=rl_file ]
PARAMETERS
entry_name
If the ENTRY option is used, only modules that define
(export) the symbol entry_name are purged.
module_name
If the MODULE option is used, only modules that have
this name are purged.
blockdata_name If the
BLOCKDATA option is used, only modules that
have this name are purged. Use this parameter only
for HP FORTRAN 77 block data subprograms. You can
use an indirect file for blockdata_name.
lset_name
If the LSET option is used, only modules that contain
code belonging to this locality set are purged. Note
that a module may still contain code belonging to
other locality sets.
rl_file
Specifies the name of the relocatable library. If
this parameter is omitted, the current relocatable
library is modified.
EXAMPLES
Let's assume there
is a module called pbinary.o in MYRL.LIB
that contains an exported
procedure P_BINARY. Furthermore, let's
assume procedure P_BINARY
has declared a locality set of 'zYz'.
To purge this module from
that relocatable library, you can
choose one of the
followings:
- Purge
using entry name:
purgerl entry=P_BINARY; rl=myrl.lib
- Purge using
module name:
purgerl module=pbinary.o; rl=myrl.lib
- Purge using
locality set name:
purgerl lset=zYz; rl=myrl.lib
Note that entry name,
module name, lset name are case sensitive.
To obtain these names, one
can do a listrl on the relocatable library.
PURGEXL
The PURGEXL command purges
selected modules from an executable
library. Modules may
be selected by entry point, module name, or
locality set.
SYNTAX
PURGEXL
[;ENTRY=entry_name ]
[;MODULE=module_name]
[;BLOCKDATA=blockdata_name]
[;LSET=lset_name ]
[;DATA=data_name ]
[;XL=xl_file]
PARAMETERS
entry_name
If the ENTRY option is used, only modules that define
(export) the symbol entry_name are purged.
module_name
If the MODULE option is used, only modules that have
this name are purged.
blockdata_name If the
BLOCKDATA option is used, only modules that
have this name are purged. Use this parameter only
for HP FORTRAN 77 block data subprograms. You can
use an indirect file for blockdata_name.
lset_name
If the LSET option is used, only modules that contain
code belonging to this locality set are purged. Note
that a module may still contain code belonging to
other locality sets.
data_name
If the DATA option is used, only the first module found
that defines (export) the data item is purged
(data universal exports only).
xl_file
Specifies the name of the executable library. If this
parameter is omitted, the current executable library
is modified.
EXAMPLES
Let's assume there
is a module called pbinary.o in TOOLXL
that contains an exported
procedure P_BINARY. Furthermore, let's
assume procedure P_BINARY
has declared a locality set of 'zYz' and
also exports a data symbol,
'foo'. To purge this module from that
executable library, you can
choose one of the following:
- Purge
using entry name:
purgexl entry=P_BINARY; xl=toolxl
- Purge using
module name:
purgexl module=pbinary.o; xl=toolxl
- Purge using
data name:
purgexl data=foo; xl=tooxl
- Purge using
locality set name:
purgexl lset=zYz; xl=toolxl
Note that entry name,
module name, lset name and data_name are
case sensitive. To
obtain these names, one can do a listxl on the
executable library.
REDO
Allows users to do
interactive editing and re-execute any
command still retained in
the command line history stack.
SYNTAX
REDO [cmdid]
PARAMETERS
cmdid
Specifies which command is to be edited. The
command may be specified in several ways,
such as by the string name or by the order
( absolute, relative ) of the command as
it appears in the history stack.
The available editing directives
are:
i
INSERT. If text follows the i, the text
following i is inserted in the current line at
the position after the i.
r
REPLACE. If text follows the r, the text
following r replaces the same number of
characters in the current line, beginning at the
position of r.
d
DELETE. Deletes a character from the current
line for each d specified in the edit line.
Note that d d does not specify a range as it
does in MPE V but simply deletes one character
from the position above each d. Multiple d's
may be followed by an insert or replace operation.
d>
DELETE. Deletes to the end of the current line
from the position specified by d>. It may be
followed by an insert or replace operation.
>
APPEND. > followed by text appends the text to
the end of the current line. If > is positioned
beyond the end of the current line, then a
replacement is performed instead.
>d
DELETE. Deletes the current line, right-to-
left, from the current end of line. Multiple
d's may be specified after >, as well as insert
and replace strings.
c
CHANGE. Changes all occurrences of one string
for another in the current line when the search
string and replace string are properly
delimited. A proper delimiter is a non-
alphabetic character: ', ", /, etc. The
substitution is specified as: c<delim>
search_string <delim> [replace_string
[<delim>]]. Omitting the replace_string causes
occurrences of search_string to be deleted, with
no substitution.
u
UNDO. A single u in column one cancels the
most recent edit of the current line. Using the
undo command twice in a row cancels all edits
for the current line and re-establishes the
original, unedited line. If u is placed
anywhere other than column one of the current
line, then a simple substitution is performed.
other
Simple replacement. Any other character (not i,
r, d, d>, >, >d, c or u) causes that character
to be replaced in the current line at the
position indicated by the character. In fact,
simple replacement also occurs for the editing
characters i, r, c, or > if they are not
followed by text; or if > appears at or beyond
the current end of line.
INTERACTIVE EDITING SAMPLES
Practical uses of the editing
commands listed above are shown here:
EDIT
ACTION
u
First occurrence un-does the previous edits.
The u must be in column one.
u
Second occurrence un-does all edits on the
current line. The u must be in column one.
rxyz
Replaces the current text with "xyz" starting at
the position of r.
xyz
Replaces the current text with "xyz" starting at
the position of x.
ixyz
Inserts "xyz" into the current line, starting at
the position immediately before the i.
ddd
Deletes three characters, one above each d.
d
xyz
Deletes a single character above the d and
replaces the current text with "xyz" starting at
the position of x.
ddixyz
Deletes two characters, then inserts "xyz" in
the current line in the position before the i.
d
d
Deletes two single characters, one above each d.
d
d>xyz
Deletes a single character above the first d,
deletes to the end of the line beginning at the
second d, and then appends "xyz" to the end of
line.
>xyz
Appends "xyz" to the end of the current line.
>ddxyz
Deletes the last two characters from the end of
the current line and then appends "xyz" to the
end of the line.
d>>xyz
Deletes to the end of the current line starting
at d, then appends xyz to the end of the line.
Note that because > falls at the end of the line
in this example, it is superfluous.
c/ab/cde
Changes all occurrences of "ab" to "cde",
starting at c.
c"ab""
Deletes all occurrences of "ab" starting at c.
cxyz
Replace the current text with "xyz", starting at c.
EXAMPLES
REDO
-2
Allows the user to edit the second to last
command on the stack (one command before the
most recent).
REDO
14
Allows the user to edit command number 14 (an
absolute number, not relative).
REDO
link
The most recent link command will be available
for interactive editing.
REVEALRL
The REVEALRL command will
make the symbol specified as ENTRY visible
to the loader. This command
is only valid when the entry_name specifi-
ed has previously been
hidden using the HIDERL command. Similarly,
the symbol specified in the
DATA option will make the symbol visible
to the loader. If
ALL_DATA is specified, all data symbols will be made
visible to the loader.
If none of the above is
specified, the ALL option is assumed. In this
case, all entry symbols in
this relocatable library will be revealed.
SYNTAX
REVEALRL
[ ENTRY=entry_name ] [ DATA=data_name]
[;RL=rl_file]
[;ALL]
[;ALL_DATA]
PARAMETERS
entry_name
Specifies the name of the symbol which is to be made
visible to the loader.
data_name
Specifies the name of the data or storage symbol which
is to be made visible to the loader.
rl_file
Specifies the name of the relocatable library in which
the symbol is to be revealed. If omitted, this para-
meter will default to the current relocatable library.
ALL
All entry symbols in the library will be revealed. This
option is mutually exclusive with the ENTRY option.
ALL_DATA
All data and storage symbols in the library will be
revealed. This option is mutually exclusive with the
DATA option.
EXAMPLES
To reveal procedure
'secret' in the relocatable library
OPENRL; do:
revealrl entry=secret;
rl=openrl
To reveal the data symbol
"mydata" in the relocatable library MYRL do:
revealrl data=mydata;
rl=myrl
RL
The RL command selects an
existing file as the current relocatable
library. This library
is used as the default library in subsequent
Link Editor commands.
SYNTAX
RL RL=rl_file
PARAMETERS
rl_file
Specifies the name of an existing relocatable library.
EXAMPLES
To have the existing
relocatable library HERRL as the
current working library; do:
rl
rl=herrl
or:
rl herrl
SHOWRL
The SHOWRL command displays
the name of the current relocatable
library.
SYNTAX
SHOWRL
PARAMETERS
There
is no parameter for this command.
EXAMPLES
To show what is the
current executable library; do:
showxl
SHOWXL
The SHOWXL command displays
the name of the current executable library.
SYNTAX
SHOWXL
PARAMETERS
There
is no parameter for this command.
EXAMPLES
To show what is the
current relocatable library; do:
showrl
XL
The XL command selects an
existing file as the current executable
library. This library
is used as the default library in subsequent
Link Editor commands.
SYNTAX
XL XL=xl_file
PARAMETERS
xl_file Specifies the name of
an existing executable library.
EXAMPLES
To have the existing
executable library TOOLXL as the
current working library; do:
xl
xl=toolxl
or:
xl
toolxl
EXAMPLE(S)
LINKEDIT
Commands:
Manuals :