Binder Manual Abstract This manual describes Binder, the product that reads, links, and produces object files. This manual is a user's guide and reference manual for software developers who need to link and modify object files. Product Version T9621 at H06.03 and D30 Supported Release Version Updates (RVUs) This manual supports G06.27 and all subsequent G-series RVUs, and H06.03 and all subsequent H-series RVUs until otherwise indicated in a new edition.
Document History Part Number Product Version Published 085670 BINDER D10 January 1993 109641 BINDER D30 December 1994 528613-001 BINDER D30 August 2004 528613-003 T9621 H06.03 and D30 July 2005 528613-004 T9621 H06.
Binder Manual Glossary Index Figures What’s New in This Manual vii Manual Information vii New and Changed Information About This Manual ix Notation Conventions Tables vii ix 1. Introduction Definition of binding 1-1 Forms of Binder 1-2 BINSERV 1-2 BIND 1-3 Languages Used with Binder 1-4 Relation of Binder to Crossref, Inspect, and the Accelerator 2.
2. Using Binder (continued) Contents 2. Using Binder (continued) Specifying a Different Volume for Binder Work Files 2-17 When Using BIND 2-18 When Using BINSERV 2-18 Specifying the Swap Volume for Pascal and C Programs Generating Output Listings 2-19 Target File Statistics 2-19 Load Maps 2-21 Cross-Reference Lists 2-25 2-18 3.
3. BIND Commands (continued) Contents 3. BIND Commands (continued) OBEY Command 3-37 OUT Command 3-38 RENAME Command 3-39 REPLACE Command 3-40 RESELECT Command 3-42 RESET Command 3-44 SATISFY Command 3-46 SELECT Command 3-48 SET Command 3-56 SHOW Command 3-65 STRIP Command 3-73 SYSTEM Command 3-75 VERIFY Command 3-75 VOLUME Command 3-76 4.
. User Libraries Contents 6. User Libraries Binding User-Library Procedures 6-1 Object File Format 6-2 Preventing Binder Resolution of Library Calls 6-2 Compilation-Time Binding 6-2 Command-Driven Binding 6-2 Specifying a User Library 6-3 Restrictions on User Libraries 6-3 Shared Run-Time Libraries 6-4 Building Applications That Use SRLs 6-4 Using Binder Commands With SRLs 6-4 Reserving Space With the SET RESERVE Command 6-5 7.
8. Binder Messages Contents 8. Binder Messages Error Messages and Warnings Completion Codes 8-28 8-1 9. Syntax Summary Glossary Index Figures Figure 1-1. Figure 1-2. Figure 2-1. Figure 2-2. Figure 2-3. Figure 2-4. Figure 2-5. Figure 2-6. Figure 2-7. Figure 4-1.
Contents Binder Manual—528613-004 vi
What’s New in This Manual Manual Information Binder Manual Abstract This manual describes Binder, the product that reads, links, and produces object files. This manual is a user's guide and reference manual for software developers who need to link and modify object files. Product Version T9621 at H06.03 and D30 Supported Release Version Updates (RVUs) This manual supports G06.27 and all subsequent G-series RVUs, and H06.03 and all subsequent H-series RVUs until otherwise indicated in a new edition.
Summary of Changes What’s New in This Manual Binder Manual—528613-004 viii
About This Manual Notation Conventions Hypertext Links Blue underline is used to indicate a hypertext link within text. By clicking a passage of text with a blue underline, you are taken to the location described. For example: This requirement is described under Backup DAM Volumes and Physical Disk Drives on page 3-2. General Syntax Notation This list summarizes the notation conventions for syntax presentation in this manual. UPPERCASE LETTERS. Uppercase letters indicate keywords and reserved words.
General Syntax Notation About This Manual each side of the list, or horizontally, enclosed in a pair of brackets and separated by vertical lines. For example: FC [ num ] [ -num ] [ text ] K [ X | D ] address { } Braces. A group of items enclosed in braces is a list from which you are required to choose one item. The items in the list can be arranged either vertically, with aligned braces on each side of the list, or horizontally, enclosed in a pair of braces and separated by vertical lines.
Notation for Messages About This Manual Line Spacing. If the syntax of a command is too long to fit on a single line, each continuation line is indented three spaces and is separated from the preceding line by a blank line. This spacing distinguishes items in a continuation line from items in a vertical list of selections. For example: ALTER [ / OUT file-spec / ] LINE [ , attribute-spec ]… !i and !o.
Notation for Messages About This Manual lowercase italic letters. Lowercase italic letters indicate variable items whose values are displayed or returned. For example: p-register process-name [ ] Brackets. Brackets enclose items that are sometimes, but not always, displayed. For example: Event number = number [ Subject = first-subject-value ] A group of items enclosed in brackets is a list of all possible items that can be displayed, of which one or none might actually be displayed.
Change Bar Notation About This Manual Change Bar Notation Change bars are used to indicate substantive differences between this manual and its preceding version. Change bars are vertical rules placed in the right margin of changed portions of text, figures, tables, examples, and so on. Change bars highlight new or revised information. For example: The message types specified in the REPORT clause are different in the COBOL85 environment and the Common Run-Time Environment (CRE).
Change Bar Notation About This Manual Binder Manual—528613-004 xiv
1 Introduction The Binder program development tool reads, links, modifies, and produces executable object files for the TNS C, COBOL85, FORTRAN, and TAL compilers. Binder also operates as an independent post-compilation process for C, COBOL85, FORTRAN, TAL, and Pascal object files. This manual focuses on the use of Binder as an independent process. For a description of the use of Binder with TNS compilers, see the appropriate language programmer’s guide or reference manual.
Introduction Forms of Binder Forms of Binder Binder has two forms: BINSERV and BIND. • • BINSERV is the form of Binder that a language compiler implicitly uses. BINSERV builds executable object files for C, COBOL85, FORTRAN, and TAL. (The Pascal compiler uses BINSERV but does not produce an executable object file.) BIND is the explicit form of Binder you can use interactively to modify object files. You can use BIND to update and link object files from C, COBOL85, FORTRAN, Pascal, and TAL.
Introduction BIND . Figure 1-1. BINSERV: Compilation-Time Binding C FILE C COBOL85 FILE COBOL85 TAL FILE TAL Object Files BINSERV Object Files Listings FORTRAN FILE FORTRAN VST001.vsd BIND BIND is the interactive form of Binder you can use to examine, modify, and link object files. You can give BIND its commands from a terminal or a command file. In either way, you can perform any of the following functions with Binder: • • • • • • • • Build a target file from separate object files.
Introduction • • Languages Used with Binder Reduce the size of object files by stripping them of the Binder region and Inspect region (symbol tables). Specify a user run-time library. Figure 1-2 illustrates Binder operation in command-driven mode. Figure 1-2. BIND: Command-Driven Binding Startup Message Commands or Command List Noninteractive User Object Files Target File BINDER Listings Interactive User VST002.
Introduction Relation of Binder to Crossref, Inspect, and the Accelerators Table 1-1. Languages used with Binder (page 2 of 2) Language BINSERV BIND Pascal* C20 or later B30 or later TAL C20 or later E01 or later *BINSERV builds executable object files automatically for C00 or later versions of C when a specific directive is used; it does not produce executable object files for the Pascal compiler.
Introduction The Object Code Accelerator (OCA) The Object Code Accelerator (OCA) This section contains a general introduction to OCA; for more details see the Object Code Accelerator Manual. OCA augments TNS object code to produce IPF object code. On TNS/E systems, accelerated object code runs significantly faster than interpreted TNS object code. OCA takes as input an executable TNS object file and produces as output an accelerated object file.
Introduction The Object Code Accelerator (OCA) Figure 1-4, User Program Execution Modes on TNS/E Systems shows two of the execution modes available to user programs on TNS/E systems: TNS mode and accelerated mode. • • TNS mode is the operational environment in which TNS instructions execute. On TNS/E systems, TNS instructions are implemented by the interpreter and by millicode routines. Accelerated mode is the operational environment in which Itanium instructions generated by OCA execute.
Introduction OCA Translation Mode equivalent. These accelerated object files can run on both TNS/R and TNS/E systems, although TNS/R systems ignore the Itanium code. OCA can process bound, executable object programs generated by B40 and later versions of the C, COBOL85, FORTRAN, Pascal, and TAL compilers. OCA only processes executable object programs that run in the Guardian environment. (You cannot accelerate object programs generated by the COBOL 74 compiler.
2 Using Binder This section describes how to: • • • • • Run Binder Define the target file Bind modules from the same language or different languages or from NonStop SQL/MP Specify a volume for Binder work files Generate output listings Topic Page Running Binder 2-1 Defining the Target File 2-3 Binding Modules 2-5 Specifying a Different Volume for Binder Work Files 2-17 Generating Output Listings 2-19 Cross-Reference Lists 2-25 Running Binder You can run Binder directly from the operating
Command File Operation Using Binder To stop a BIND process, type EXIT at the Binder prompt: @EXIT 2> This returns you to TACL. You can press CTRL/Y instead of typing the EXIT command. For examples of and details on commands, see Section 3, BIND Commands. Command File Operation When you manually start a BIND process, you can specify an optional command file, an optional listing file, or both. The command file controls the process so you do not need to enter commands interactively.
Defining the Target File Using Binder • In the following example, Binder prompts you at the home terminal for commands. Binder sends the output listing to the LISTTAL file: 13> BIND / OUT listtal / • In the following example, Binder executes the commands, terminates, and returns control to TACL. 14> BIND / IN building, OUT list/ This command causes Binder to accept and execute the commands in the file named BUILDING and to direct the output (including error messages) to the file LIST.
Specifying the Target File Order Using Binder You must supply the disk file name of the correct object file before Binder accepts the name of a code or data block for an include list. The file Binder uses as the default for block retrieval is the current file. Either a block must be in the current file or you must specify the file when you add the block. You can change the current file designation as often as you want by using the FILE command.
Binding Modules Using Binder Table 2-1. Target File Specifications built by Binder (page 2 of 2) Name of List Number of Lists Allowed Description Unresolved Reference Lists 2 There are two unresolved reference lists, one for entry points and one for data blocks. As you enter each name on an include list, Binder removes entries from the unresolved reference lists if the entries are satisfied by the new name.
Binding Rules Using Binder The ADD * command causes all the code and data blocks from an object file to be included in the target file. Therefore, if OBJFILEX contains PROC A, PROC B, and PROC D, and OBJFILEY contains PROC C, PROC E, and PROC F, then TRGFILEZ contains all six procedures. If more than one object file includes the same code block name or data block name, Binder retains the first one it encounters. Binding Rules The rules that govern binding depend on the run-time environment.
Binding Rules Using Binder Table 2-2.
Binding Rules Using Binder Table 2-2.
Examples Using Binder Table 2-3. Run-Time Environment Resulting From Binding Modules Binder Group Binder Group OLD COMMON NEUTRAL OLD language-specific Not allowed language-specific COMMON Not allowed CRE CRE language-specific CRE language-specific or CRE NEUTRAL Use the Binder INFO command with the DETAIL clause to show the ENV attribute of a particular data or code block.
Using Binder • Binding COBOL85 and FORTRAN Programs Binding a C-series C module with a D-series COBOL85 module A C-series C module is a member of the OLD Binder group. A D-series COBOL85 module can be a member of either the OLD or COMMON Binder groups. You can bind the C-series C module with a D-series COBOL85 module compiled without an ENV directive or with an ENV OLD directive. Otherwise, you must recompile the C-series C module using a D-series C compiler.
Binding C Programs Using Binder the include code block list is a separate program unit. All FORTRAN code blocks that are bound together form one program unit. Based on these concepts, Binder constructs all the control blocks needed to execute the program. These control blocks include: • • • • • One run-unit control block (RUCB) for the target file. One program unit control block (PUCB) for each COBOL85 program unit in the target file; the PUCB includes the file control blocks.
Binding Pascal Programs Using Binder To bind a C program, either include the commands in a command file or enter them interactively. The following example shows a sample Binder session for binding a Dseries C program: SELECT CHECK PARAMETER LENIENT ADD * FROM mainobj ADD * FROM obj1 SELECT SEARCH $system.system.cwide SELECT RUNNABLE OBJECT ON SELECT LIST * OFF SET HEAP 10 PAGES BUILD exobj Note the following points about this example: • • • • • The file MAINOBJ is the user’s main object file.
Binding Mixed-Language Programs Using Binder The following example shows a sample Binder session for binding a C-series Pascal program: ADD * FROM mainobj SELECT SEARCH (extraobj, moreobj) SELECT SEARCH $SYSTEM.PASCAL.PASRUN SELECT RUNNABLE OBJECT ON SELECT LIST * OFF SET HEAP 2 PAGES BUILD exobj Note the following points about these examples: • • • The file MAINOBJ is the user’s main object file. The files EXTRAOBJ and MOREOBJ are user files.
Parameter Checking for a Mixed-Language Bind Using Binder • If your program contains a COBOL85 module, that module must be the main module. Parameter Checking for a Mixed-Language Bind When binding modules from more than one language, you can check for parameter mismatches with the CHECK PARAMETER option of the SELECT command. By default, this option is set to STRICT.
Binding SQL Program Files Using Binder and does not include the second (and old) copy of the entry points, code blocks, or RTDUs. Note. Specifying ADD * FROM OLDFILE as the second command would require overhead for the same reason as the command sequence in method #3. See method #3 for a detailed explanation.
Resolving External References Using Binder To decrease the time required to SQL compile a program, Binder estimates the size of the SQL object run-time data unit (RTDU) by adding slack space to the object file during the host-language compilation. If the SQL-compiled object fits in the preallocated slack space, then Binder can quickly update the RTDU region with the compiled SQL code. Binder estimates the size of the SQL object RTDU region by multiplying by four the size of the SQL source RTDU region.
Specifying a Different Volume for Binder Work Files Using Binder Figure 2-1. External References Source Program A PROCEDURE XX . . . CALL X . . . CALL Y . . . CALL Z . . . END Library LIB PROCEDURE X . . . CALL Y . . . END PROCEDURE Y Source Program B PROCEDURE 2 . . . END VST003.vsd Note. External references to system procedures are unresolved until you first execute the program that contains the reference. The user program does not define the external references to the system procedures.
When Using BIND Using Binder When Using BIND When disk space is insufficient, Binder terminates with an error message and does not retain any of the information supplied prior to the BUILD command. You must start over. To have work files created on a different volume, use the command PARAM SWAPVOL at the TACL prompt. The syntax of the PARAM SWAPVOL command is: PARAM SWAPVOL [ node-name.
Generating Output Listings Using Binder swap volume. Compiler code usually resides on volume $SYSTEM. See Section 7, Guardian File Names and TACL Commands for more information. Generating Output Listings You can generate output listings using the DUMP, INFO, LIST, SHOW, or BUILD command. Table 2-4. Commands that Produce Listings Command Listing Produced BUILD Displays target file statistics upon successful completion of a BUILD operation.
Target File Statistics Using Binder Figure 2-2. Target File Statistics BINDER - OBJECT FILE BINDER - T9621D30 - (31OCT94) SYSTEM \HOME Copyright Tandem Computers Incorporated 1982-1994 Object file \HOME.$DATA.SAMPLE.OBJECT User library file name $DATA.BIND.
Load Maps Using Binder Table 2-5. Binder Statistics (page 2 of 2) Statistic Definition Heap location The type of memory that the heap area is located in. This entry appears only for Pascal or C files that have been bound with the Pascal or C run-time libraries, respectively.
Load Maps Using Binder Figure 2-3. Alphabetic Entry Point Map for Entry Points and Code Blocks ENTRY POINT MAP BY NAME FOR FILE: \KITTY.$BIND.BINDER.
Load Maps Using Binder Table 2-6. Information Included in Load Maps for Entry Points (page 2 of 2) Label Description DATE/TIME Timestamp for compilation of the block LANGUAGE Source language of the block: TAL, FORTRAN, COBOL85, C, or Pascal SOURCE FILE Disk file name of source code for the block Location Entry Point Load Maps If you specify a command to display entry point maps by location, Binder outputs an itemized listing following each map.
Load Maps Using Binder Data Block Maps Figure 2-5 shows an alphabetically sequenced load map for data blocks. At the completion of a BUILD command, Binder puts read-only data blocks in a separate map. If you use a LIST command, Binder lists read-only data blocks with the other data blocks. Figure 2-5. Alphabetical Load Maps for Data Blocks DATA BLOCK MAP BY NAME FOR FILE: \HOME.$BIND.LIBRTY.
Cross-Reference Lists Using Binder Figure 2-6. Listing for Read-Only Data Blocks READ-ONLY DATA BLOCK MAP BY NAME FOR FILE: \HOME.$KEVIN.LIBRTY.
Cross-Reference Lists Using Binder • Location of each reference Data block cross-reference listings consist of these items: • • • • Data block name (either a common block name or the TAL special block, #GLOBAL) Location and storage type (word, byte) of referenced identifier Name of the code block containing block references Location of each reference Locations are word offsets, in octal, from the base of the block.
Cross-Reference Lists Using Binder Figure 2-7.
Cross-Reference Lists Using Binder Binder Manual—528613-004 2- 28
3 BIND Commands You can use BIND commands to specify input object files, to define and build the target file, and to query the status of options set by the SET and SELECT commands. The following topics contain an overview of commands and syntax conventions. Topic Page Summary of Most Commonly Used Commands 3-2 How to Use BIND Commands Efficiently 3-3 Syntax Conventions for Name Lists as Command Elements 3-4 This section also describes all the commands available in BIND in alphabetical order.
Summary of Most Commonly Used Commands BIND Commands Command Page RESET Command 3-44 SATISFY Command 3-47 SELECT Command 3-49 SET Command 3-57 SHOW Command 3-67 STRIP Command 3-75 SYSTEM Command 3-77 VERIFY Command 3-77 VOLUME Command 3-78 For a summary of BIND commands and their syntax, see Section 9, Syntax Summary. Summary of Most Commonly Used Commands BIND commands allow a broad range of object file manipulations. Table 3-1.
How to Use BIND Commands Efficiently BIND Commands Table 3-1. Commonly Used BIND Commands (page 2 of 2) Command Description SET Sets object file characteristics of the target file. SHOW Displays the current file name and values in effect for SELECT and SET; also displays the modify list. Displays contents of an existing file. STRIP Deletes Binder, Inspect, and Accelerator information from the object files.
Turning off Load Maps BIND Commands example, if you built LARGFILE from MOD1, MOD2, MOD3, and MOD4, then altered MOD1, enter the following commands to replace MOD1 in LARGFILE: @ADD * FROM LARGFILE @REPLACE MOD1 @BUILD LARGFILE! Turning off Load Maps Turning off load maps with the SELECT LIST * OFF command results in a substantial performance increase. This is because half of the time spent generating a target file is actually spent producing load maps.
Syntax Conventions for Name Lists as Command Elements BIND Commands Table 3-2. Syntax Conventions for Named Lists (page 2 of 2) Element Definition block-list block-range (block-range [, block-range]...) * entry-name A valid language identifier for a primary or secondary entry point name entry-range entry-name entry-name TO entry-name * TO entry-name entry-name TO * entry-list entry-range (entry-range [, entry-range]...
ADD Command BIND Commands ADD Command The ADD command has two forms. The first form of the ADD command inserts names in the four include lists: include entry point list, include data block list, include code block list, and include run-time data unit list (RTDU list). The second form of the ADD command specifies that a code segment boundary marker be placed at the end of the current include code list.
ADD Command BIND Commands Usually, Binder minimizes the number of TNS code segments used, by filling each 64K-instruction segment as fully as possible. The rarely-used ADD SPACE command causes Binder to leave the current code segment unfilled, sending all procs from subsequent include lists or search lists into the next segment(s). Consecutive ADD SPACE commands will create one or more empty segments.
ADD Command BIND Commands To ensure Binder builds the target file correctly, add names to the lists in the order in which you want them to appear in the target file. Binder adds names to the include lists in the order in which ADD commands specify them and, in general, uses the include list order to build the target file. • COBOL85 Files For COBOL85 files, ADD CODE is equivalent to ADD *, because COBOL85 files do not have separate data blocks except for COBOL85 EXTERNAL.
ALTER Command BIND Commands • In the following example, NEWFILE contains BLOCK-1 from OBJFILE and all of OLDFILE except any code block named BLOCK-1. @FILE oldfile @ADD * FROM oldfile @ADD CODE block-1 FROM objfile, DELETE @BUILD newfile • The following example shows the use of the ADD SPACE command to create a file containing multiple code segments: code blocks from OLDFILE are in code segment 0, those from SOMEFILE are in code segment 1, and those from ANYFILE are in code segment 2.
ALTER Command BIND Commands CALLABLE {ON | OFF} specifies whether privileged entry points are callable by nonprivileged procedures. CALLABLE applies only to privileged code, and Binder automatically sets PRIV ON for an entry point with CALLABLE ON. LIKE entry-name specifies that the entry points in entry-list have the same attributes as LIKE entry-name, which must be on an include list. If LIKE occurs, it overrides any preceding parameters of this ALTER command.
BUILD Command BIND Commands BUILD Command The BUILD command builds the target file using the code block, entry point, data block, and RTDU names from the include lists. You enter the BUILD command after completely defining the target file with other commands. After the build operation, Binder returns to its initial state. BUILD [ / OUT file-name / ] [ file-name ] [ ! ] [ , { set-param | select-param } ] ... OUT file-name directs the output listing to the specified file.
BUILD Command BIND Commands INSPECT {ON | OFF} LARGESTACK value [PAGES | WORDS | BYTES] LIBRARY file-name LIKE file-name PEP value PFS value [PAGES | WORDS | BYTES] RUNNAMED {ON | OFF} SAVEABEND {ON | OFF} SUBTYPE number SYMBOLS {ON | OFF} SYSTYPE {GUARDIAN | OSS} TARGET [TNS | TNS/R | TNS/E | ANY] USERLIBRARY {ON | OFF} See the SET Command on page 3-57 for a description of these specifiers. select-param specifies a Binder control or option for building the object file.
BUILD Command BIND Commands SATISFY {ON | OFF} {SEARCH file-name} {SEARCH (file-name [, file-name]...)} WARNINGS {ON | OFF} See the SELECT Command on page 3-49 for a description of these specifiers. Considerations • Using BUILD with SATISFY ON If you enter BUILD SATISFY ON, Binder resolves any remaining external references. Binder accesses the user files on the search list and, if it finds any of the unresolved entry points, adds the corresponding code to the target file it is building.
CD Command BIND Commands The only error condition that does not cause BUILD to clear the lists (and, consequently, the only one that does not require you to begin again) is ILLEGAL SYNTAX. Examples The following examples illustrate the syntax of the BUILD command. • This example uses the REPLACE command to replace code for the entry point EPNAME1 in the object file FILENAME with code of the same name from NEWFILE.
CHANGE Command BIND Commands CHANGE Command The CHANGE command allows you to amend or patch the attribute values of an existing object file. In this respect, the CHANGE command is similar to the SET command, which specifies attribute values for a target file before it is built.
CHANGE Command BIND Commands HIGHPIN {ON | OFF} specifies whether an object file can run at a high process identification number (PIN), if the process creation request allows it and a high PIN is available. HIGHREQUESTERS {ON | OFF} specifies whether an object file can support calls from requesters running at a high process identification number (PIN). INSPECT {ON | OFF} specifies whether the Inspect program or the Debug program is chosen for debugging when you execute the object file.
CHANGE Command BIND Commands The OCA ENABLE attribute controls whether a program will execute in translated mode on TNS/E machines. By default, Binder sets the OCA ENABLE attribute to ON. OCA does not change the value of this attribute. After a file has been processed by the OCA, OCA ENABLE OFF disables the Itanium region of an object file, allowing you to execute the TNS program code (but not the translated Itanium code) on TNS/E machines for debugging purposes.
CHANGE Command BIND Commands the file remains the current file and repeated attempts to CHANGE result in the same error. • • • • Each successive CHANGE command specifying one of these parameters overrides the previous specification. Use the SHOW command with the SET attribute option to determine the current values of the file attributes. CHANGE can be used on files without a Binder region. The HIGHPIN ON attribute specifies that an object file is allowed to run at a high PIN.
CLEAR Command BIND Commands CLEAR Command The CLEAR command returns Binder to the original state without building an object file. Binder clears its internal lists (include, omit, refer, search, unresolved reference, undefined, and modify), the current file as established by a FILE command, and all SET and SELECT options. CLEAR COMMENT Command The COMMENT command allows you to enter comment information to be displayed in the output listing. COMMENT [ text ] text is a string of characters.
DUMP Command BIND Commands You cannot use the DELETE command to delete nested code blocks (code blocks with a lexical level greater than one). DELETE { CODE block-list } { DATA block-list } { * } CODE block-list specifies code blocks to be deleted. See Table 3-2 for valid forms of block-list. DATA block-list specifies data blocks to be deleted. See Table 3-2 for valid forms of block-list. * specifies that all blocks are to be deleted.
DUMP Command BIND Commands OUT file-name directs the output listing to the specified file. See the OUT Command on page 3-39 for additional information. CODE code-block-name specifies a code block in either the FROM file-name or the current file. DATA data-block-name specifies a data block in either the FROM file-name or the current file. offset is a word offset, in octal, from the base of the block. , count specifies the number of words, in octal, to display starting from offset. The default is one word.
ENV Command BIND Commands FROM file-name is the disk file name of an object file. The default is the current file. OSS pathnames are accepted. Considerations DUMP displays the current file contents. Therefore, you cannot use DUMP to display file contents changed with a MODIFY command. (MODIFY affects only the target file.) DUMP DATA does not give useful information for COBOL85 data blocks, except for COBOL85 EXTERNAL. Examples The following examples illustrate the syntax of the DUMP command.
EXIT Command BIND Commands The following example displays the current settings of the program environment parameters. @env LOG (Logging turned off) MODE UPSHIFT SYSTEM \CALIF VOLUME $DATA.FTRAN DIRECTORY /G/DATA/FTRAN EXIT Command The EXIT command stops the BIND process. If you do not issue a BUILD command before exiting, Binder does not create a target file. EXIT Considerations Entering CTRL/Y also stops the BIND process.
FILE Command BIND Commands Example This example uses the FC command to correct a word, from LISP to LIST, in the command line. @LISP SOURCE ^ ***** ERROR ***** Invalid syntax @FC @LISP SOURCE . T @LIST SOURCE FILE Command The FILE command establishes the current file for subsequent ADD, DUMP, LIST, REPLACE, and SHOW commands. The current file remains the current file until another FILE, CLEAR, or BUILD command is successfully executed. There is no default for the current file.
INFO Command BIND Commands topic is a Binder command name or topic. subtopic is a command parameter or Binder topic as displayed in a HELP topic command. is a command parameter as displayed in a HELP topic command. Considerations • • If you specify no options for the HELP command, Binder displays the names of all commands and topics.
INFO Command BIND Commands You can use the INFO command to display information about nested code blocks (blocks with a lexical level greater than one). If you do not specify the qualified block name, however, Binder selects the first occurrence of the block name.
INFO Command BIND Commands UNRESOLVED ENTRY displays the names and default files of entry points in the unresolved reference list. UNRESOLVED * displays the names of entry points and data blocks in the unresolved reference lists and the undefined list. UNDEFINED * displays the names of data blocks in the undefined data list: data blocks whose initializing module has not been located. * displays all include, unresolved, and undefined lists.
LIST Command BIND Commands • This example displays all include and unresolved lists including DETAIL information: @INFO *, DETAIL INCLUDE CODE: 15 ENTRIES NAME SIZE FORMATTER 4672 ATTRIB LANG: TAL ENV: NEUTRAL TIME: 1994-02-12 19:19 SYMBOLS: ON FILE: \USA.$RLSD.TOOLS.VERS3 TOTAL CODE SIZE = 9876 ... INCLUDE ENTRY: 20 ENTRIES NAME OFFSET FORMATTER ATTRIB 4450 V LANG: TAL ENV: NEUTRAL TIME: 1994-02-12 19:19 SYMBOLS: ON FILE: \USA.$RLSD.TOOLS.VERS3 ...
LIST Command BIND Commands You can use the LIST command with nested code blocks (blocks with a lexical level greater than one); however, if you do not fully qualify the code block, Binder selects the first occurrence of the code block name in the file.
LIST Command BIND Commands DATA block-list lists the base address in data space for each block name in block-list. The asterisk specification is not acceptable for this command, but all other valid forms of block-list, as shown in Table 3-2, are allowed. The 132-character output gives all the information shown in a load map from Binder. XREF [XREF-options] displays cross-reference information for one or more code blocks, entry points, and data blocks.
LIST Command BIND Commands * generates all three listings: ALPHA, LOC, and XREF. FROM file-name specifies the Guardian file name or OSS pathname of the object file to be mapped. The default is the current file. BRIEF requests display of an 80-character load map line rather than the standard 132character load map line. The truncated line omits the DATE, TIME, LANGUAGE, and SOURCE FILE information for code and data blocks. (Cross-reference information is still displayed with a 132-character format.
LMAP Command BIND Commands LMAP Command The LMAP command produces an alphabetical load map of a specified file. LMAP [ / OUT list-file / ] FROM file-name list-file specifies the name of the file to which Binder sends the output listing. file-name specifies the Guardian file name or OSS pathname to be mapped. Considerations The LMAP command is useful for debugging stripped files. Unlike the LIST command, the LMAP command does not require the presence of a Binder region.
MODE Command BIND Commands STOP closes the current log file and stops all logging. Considerations You start logging by entering a LOG command that specifies a file name. • • • • If file-name has the form of a disk file name and the file does not exist, Binder creates an EDIT file. If the named file is an existing disk file, Binder appends log output to the file. If logging is already in progress, Binder closes the previous log file and begins logging to the new file.
MODIFY Command BIND Commands MODIFY Command The MODIFY command changes the values of words in the code and data blocks of the target file. No changes are made to existing files. You can use MODIFY with nested code blocks (blocks with a lexical level greater than one); however, if you do not specify a fully qualified name, Binder selects the first occurrence of the code block name in the file. MODIFY { CODE code-block-name } { DATA data-block-name } [ modify-spec ] [ offset ] [ , value ]...
MODIFY Command BIND Commands The prompting sequence varies as follows: ° If you specify value in the MODIFY command, Binder does not prompt you for input. Instead it replaces the current value of the word at the location specified in offset with the new value specified in value. ° If you do not specify value but do specify offset, Binder prompts for input by displaying the address, in octal, of the location and the current value at that location.
MOVE Command BIND Commands Examples The following examples illustrate the syntax and use of the MODIFY command. • The MODIFY command causes the prompting sequence to begin with the base address. (The resulting display follows the command.
MOVE Command BIND Commands You can also use the MOVE command to specify multiple code segments within the target file. You can use the MOVE command to reduce page faults by grouping procedures that your program frequently uses. Before you do this, you should analyze your program behavior carefully. For more information on obtaining the analytical data needed to analyze program behavior, see the Measure Reference Manual.
OBEY Command BIND Commands • MOVE repositions the entry name BLOCK-1 from whatever position it currently occupies in the include list to the position immediately following BLOCK-5. @ADD * FROM objfile @MOVE block-1 AFTER block-5 @BUILD • MOVE repositions the entry names BLOCK-1 and BLOCK-7 from whatever positions they currently occupy in the include list to the positions immediately preceding BLOCK-2.
OUT Command BIND Commands • • If any part of the specification is invalid, if the file does not exist, or if the file cannot be opened, Binder displays an error message and prompts for input if the input file is a terminal. If the input file is not a terminal, Binder terminates. If Binder detects an error while processing an OBEY file, it closes the file and, in the case of nested OBEY files, any other OBEY files currently open.
RENAME Command BIND Commands • The following example directs the output produced by the SHOW command to the printer $S.#LP1, then redirects it back to the terminal named $TERM. @OUT $S.#LP1 @SHOW INFO FROM myfile @OUT $TERM • The following example directs the HELP description of the BUILD command to the printer $S.#LP3. Any output subsequent to this command automatically goes to the previous output setting. @HELP BUILD /OUT $s.#lp3 / RENAME Command The RENAME command renames a code or data block.
REPLACE Command BIND Commands REPLACE Command The REPLACE command inserts replacements for code blocks, data blocks, and any referenced entry points or RTDUs into the include lists. You cannot use the REPLACE command with nested blocks (blocks with a lexical level greater than one). REPLACE { CODE entry-list } [ FROM file-name ] { DATA block-list } { * } CODE entry-list specifies entry points in the file to replace entry points in the include entry name list. See Table 3-2 for valid forms of entry-list.
REPLACE Command BIND Commands both the direct and the indirect data blocks in a TAL object file. In this case, however, you can successfully use the ADD command with the DELETE option. • • If you want to replace one copy of a Pascal procedure with another of the same name, you must export the procedure in each module containing it. Otherwise, Binder leaves the old copy of the procedure in the file.
RESELECT Command BIND Commands If procedure SUBPROG1 is in y, but not in x, then SUBPROG1 is not added. • The following example replaces a FORTRAN subprogram in OBJFILEA with a new subprogram in OBJFILEB. In this case, a command file contains the Binder commands.
RESET Command BIND Commands OMIT * specifies all SELECT parameters are to be reset to the default values.
RESET Command BIND Commands DATA EXTENDSTACK HEAP HEAP STATISTICS HIGHPIN HIGHREQUESTERS INSPECT LARGESTACK LIBRARY LIKE PEP PFS RUNNAMED SAVEABEND STACK SUBTYPE SYMBOLS SYSTYPE TARGET USERLIBRARY USER BUFFER * specifies that all SET attributes be reset to their default values. Considerations • • Resetting LIKE causes Binder to reset the four parameters DATA, INSPECT, LIBRARY, and SAVEABEND to their default values. Resetting the HEAP parameter clears any HEAP size specified.
RESET Command BIND Commands • The SET command parameter default values are: DATAPAGES Estimate for all data blocks and stack EXTENDSTACK PAGES estimated HEAP (No default) HEAP STATISTICS OFF HIGHPIN OFF HIGHREQUESTERS OFF INSPECT OFF LARGESTACK (No default) LIBRARY No user library LIKE (No default) PEP Minimum for entry points in target file PFS 128 RUNNAMED OFF SAVEABEND OFF STACK PAGES estimated SUBTYPE No process subtype SYMBOLS ON SYSTYPE GUARDIAN TARGET Unspecif
SATISFY Command BIND Commands SATISFY Command The SATISFY command tries to resolve external references to entry points and data blocks in the unresolved reference list. Binder uses the current include lists and the search list. SATISFY { select-param } { ( select-param [ , select-param ] ... ) } select-param specifies a SELECT command parameter and value to be used for this statement only. This specification overrides any value previously established for that parameter.
SATISFY Command BIND Commands Binder sets HIGHPIN ON for a target object file only if all of the files that make up the target object file are set HIGHPIN ON. • Specifying HIGHREQUESTERS ON with the SATISFY Command Binder sets HIGHREQUESTERS ON for a target object file only if HIGHREQUESTERS ON is set for the object file containing the main program.
SELECT Command BIND Commands • The following example causes all references to EPNAME1 in OLDFILE to refer instead to EPNAME2 from NEWFILE. @COMMENT - "caller" inserted on next command @COMMENT - calls epname1; the satisfy will @COMMENT - result in calling epname2 @ADD CODE caller FROM objfile @SATISFY SEARCH newfile, REFER epname1 TO epname2 @ADD CODE epname1 FROM oldfile @BUILD newfile ! • The following example leaves entry references unresolved because SATISFY OFF (a select-param) is valid.
SELECT Command BIND Commands {CHECK (check-option [, check-option]...)} COMPACT {ON | OFF} COMPRESS DATA {ON | OFF} FILESYS {OSS | GUARDIAN} FIXUPS {ON | OFF} IMPORT LIBRARY library-file-name {LIST listing-option} {LIST (listing-option [, listing-option]...)} {OMIT entry-name} {OMIT (entry-name [, entry-name]...)} {REFER refer-pair} {REFER (refer-pair [, refer-pair]...)} RUNNABLE OBJECT {ON | OFF} SATISFY {ON | OFF} {SEARCH file-name} {SEARCH (file-name [, file-name]...
SELECT Command BIND Commands some of the object files have the new one, Binder detects the length mismatch and issues a warning). Binder also issues a warning if the modules’ descriptions of a data block are not consistent. The default is ON. DUPLICATE {ON | OFF} specifies whether Binder reports a warning if a C data block is declared multiple times. When combining independently developed subsystems, this can be a symptom of accidentally using the same global variable name for two different purposes.
SELECT Command BIND Commands Refer to Using CHECK PARAMETER on page 3-55 for more information. WIDEMEM {ON | OFF} specifies whether Binder checks wide and non-wide memory attribute conflicts in the constituent object files when it builds the target object file. The default is OFF. * {ON | OFF} specifies whether all check options are selected. COMPACT {ON | OFF} specifies whether Binder fills the gap at the 32K boundary when it builds the target file.
SELECT Command BIND Commands library, that contains the library procedures and all the library variables referenced by the application. This command can only be used when you are building an application that will be linked to an SRL user library at run-time. The imported library provides Binder with the recommended sizes to reserve for library data in the BELOW64, PRIMARY, SECONDARY, and EXTENDED data areas. It also provides the list of variables exported from the user library.
SELECT Command BIND Commands XREF {ON | OFF} specifies whether Binder produces a cross-reference list of entry points and data blocks. The default is OFF. * {ON | OFF} specifies whether you select all list options. OMIT entry-name specifies an additional entry point name for the omit list. The default is an empty omit list. Omit lists are described in Section 4, Object File Structure. Note that Binder omits all entry points belonging to a particular code block if any one of them appears on the omit list.
SELECT Command BIND Commands WARNINGS {ON | OFF} specifies whether warning messages be sent to the output file. The default is WARNINGS ON. Using CHECK PARAMETER • Binder provides parameter and return-value checking by matching parameters and return values types between called and calling routines. Because each language has its own set of data types, the matching of parameters and return-value types between languages cannot be exact.
SELECT Command BIND Commands • Binder groups return values (values returned on the stack) into these classes: ° ° ° ° ° ° Two-byte scalar. Four-byte scalar. Four-byte real scalar. Eight-byte scalar. Eight-byte real scalar. No return type. Binder provides language consistency checking by making sure that callers specify the correct language for called routines. If a caller explicitly states that the language of a called routine is unspecified, Binder does not perform this check.
SET Command BIND Commands • You cannot use REFER for nested code blocks (blocks with a lexical level greater than one). Examples The following examples illustrate the syntax of the SELECT command. • This SELECT command allows a gap before the 32K boundary and suppresses entry point name resolution. @SELECT COMPACT OFF, SATISFY OFF • This SELECT command adds three file names to the search list and selects all error-checking options.
SET Command BIND Commands LIKE file-name MISALIGN { FAIL| NOROUND | SYSDEFAULT} PEP value PFS value [PAGES | WORDS | BYTES] RESERVE {BELOW64|PRIMARY|SECONDARY|EXTENDED} [+|-] nb RUNNAMED {ON | OFF} SAVEABEND {ON | OFF} SUBTYPE number SYMBOLS {ON | OFF} SYSTYPE {OSS | GUARDIAN} TARGET [TNS | TNS/R | TNS/E | ANY] USERLIBRARY {ON | OFF} USER BUFFER {ON | OFF} DATA value [PAGES | WORDS | BYTES] specifies the total amount of data space Binder allocates for the target file.
SET Command BIND Commands Binder’s estimate of the space required for global data blocks is the total number of data pages allocated (one PAGE is 1024 WORDS). The default is the space Binder estimates for local storage. You can specify either a decimal value or an octal value (preceded by %). The default unit for value is PAGES. If you specify an odd number of bytes, Binder rounds up the value to an even value. HEAP value [PAGES | WORDS | BYTES] sets the maximum size of the heap used in C and Pascal.
SET Command BIND Commands INSPECT {ON | OFF} specifies whether the Inspect program is chosen for debugging when you execute the target file. The default is OFF; that is, the Debug program is used. INSPECT OFF automatically causes Binder to set SAVEABEND OFF. You use the command interpreter SET INSPECT or RUN commands to override the INSPECT specification. LARGESTACK value [PAGES | WORDS | BYTES] sets the size of the $EXTENDED#STACK data block used in TAL. value can be specified in pages, words, or bytes.
SET Command BIND Commands PFS value [PAGES | WORDS | BYTES] specifies the size of the process file segment to be allocated in the target file. value can be from 64 to 512 pages (65,536 to 533,504 words). The default unit of size is PAGES. Binder rounds byte values up to the nearest page. RESERVE specifies how much space to reserve in the application’s global data space for library variables. Binder must reserve at least enough space to accommodate the current library’s global variables.
SET Command BIND Commands SAVEABEND {ON | OFF} specifies whether to create a save file if the process terminates abnormally during execution. Binder automatically sets INSPECT ON if SAVEABEND is ON. The default is OFF. SUBTYPE number sets the process subtype on input object files that contain a MAIN procedure. number is in the range of 0 through 63. Note, however, that values in the range of 1 through 47 are defined by Hewlett-Packard; values in the range of 48 through 63 can be defined by the user.
SET Command BIND Commands USERLIBRARY {ON | OFF} specifies the maximum number of code segments in an object file built by Binder. • • In a TNS system, the attribute specifies whether an object file is built with a maximum of 16 or 32 code segments. If the file contains 17 to 32 code segments, the process creation allocates the first 16 code segments in the user code space and the remaining in the user library space.
SET Command BIND Commands Table 3-3.
SET Command BIND Commands • • • Extended data block sizes for all languages are set at compile time, and Binder collects all of these blocks into one extended segment that is automatically allocated at run time. SET DATA does not affect the size of this extended segment. Once set with the SET PFS command, the default process file segment size is 128 pages. At this point, entering a RESET command causes Binder to set the PFS size to 128 pages.
SET Command BIND Commands • • • Your processor is configured for more than 256 process control blocks (PCBs). High pins are available in your processor. Your object file and user library, if any, have the HIGHPIN attribute set. The TACL HIGHPIN built-in variable or the HIGHPIN run-time parameter is set. If the HIGHPIN attribute of the object file is set, the operating system assigns a high PIN, if available. If no high PINs are available, the operating system assigns a low PIN.
SHOW Command BIND Commands 4. Before you run the object file, you can check the current setting of the TACL HIGHPIN built-in variable by typing: #HIGHPIN 5. If #HIGHPIN returns a NO value, you can set the HIGHPIN run-time parameter (and run your object file at high PIN): RUN talobj / HIGHPIN ON / 6.
SHOW Command BIND Commands AXCEL ENABLE [FROM file-name] displays the current state, either ON or OFF, of the AXCEL ENABLE attribute for the current file or file specified in the FROM clause. You can set this attribute with the CHANGE command. OSS pathnames are accepted. FILE displays the name of the current file. IMPORT displays the list of imported data blocks specified for the current session. This command only lists the set of variables explicitly specified in the SET IMPORT command.
SHOW Command BIND Commands RUNNABLE OBJECT SEARCH COMPRESS DATA LIST WARNINGS OMIT SET attribute [FROM file-name] displays one, or all, of the attributes associated with the specified object file. attribute is one of the following: * SAVEABEND RESERVE HIGHREQUESTERS DATAPAGES SUBTYPE RUNNAMED IMPORT HIGHPIN SYMBOLS INSPECT SYSTYPE LIBRARY TARGET PFS TIMESTAMP If you enter * as the value of attribute, the values of all the attributes are displayed.
SHOW Command BIND Commands Considerations • • • • SHOW SET PFS, SHOW PFS, and SHOW SET display the value of the PFS with one of the following units of measure: PAGES, WORDS, or BYTES. If the value is not a round number of pages, the value will be displayed in WORDS. SHOW SET attribute works on stripped files (files without a Binder region). Note the distinctions among the SET attribute, SET, and set-param options of the SHOW command.
SHOW Command BIND Commands • The following command displays the values of all the parameters established by the SELECT command.
SHOW Command BIND Commands • The following command displays the values of all parameters established by the SET command: @SHOW SET DATA (64 PAGES) EXTENDSTACK HEAP HEAP STATISTICS OFF HIGHPIN OFF HIGHREQUESTERS OFF INSPECT ON LARGESTACK LIBRARY PEP PFS RUNNAMED OFF SAVEABEND OFF STACK SUBTYPE SYMBOLS ON SYSTYPE GUARDIAN TARGET ANY USERLIBRARY • OFF The following command displays the value of the COMPACT parameter of the SELECT command: @SHOW COMPACT COMPACT ON Binder Manual—528613-00
SHOW Command BIND Commands • The following command displays the values of all the attributes associated with the current object file: @SHOW SET * TIMESTAMP 1994-10-24 11:51:06 LIBRARY NOT USED DATAPAGES 2 HIGHPIN OFF HIGHREQUESTERS OFF INSPECT ON RUNNAMED OFF SAVEABEND OFF SYMBOLS OFF SEGMENTS 1 SUBTYPE 0 PFS 0 WORDS TARGET UNSPECIFIED Binder Manual—528613-004 3- 73
SHOW Command BIND Commands • The command SHOW INFO FROM file-name produces a listing such as the following for accelerated files: @SHOW INFO FROM myfile Filename: \NCAL.$SANTA.CLARA.
STRIP Command BIND Commands • The command SHOW INFO FROM file-name produces a listing such as the following for D-series object files: @SHOW INFO FROM myfile Object File: \RUSTY.$USER.TEST.MYFILE General Information Binder Region: YES Binder Timestamp: 1994-10-24 11:51:06.
STRIP Command BIND Commands AXCEL strips the Accelerator region (containing TNS/R code) from the object file, leaving the Binder and Inspect regions. IPF strips the Itanium region (containing TNS/E code) from the object file, leaving the Binder and Inspect regions. Use of IPF or OCA keywords produce an equivalent result.
SYSTEM Command BIND Commands • The following two commands strip the Binder, Inspect, and Accelerator regions from the named object file: @strip cref.zcobext5 @strip cref.zcobext5, AXCEL @ SYSTEM Command The SYSTEM command specifies the default node that Binder uses to expand file names. SYSTEM [ node ] node is a node name.
VOLUME Command BIND Commands verify-spec is one of the following keywords that specifies the format for value: ASCII DECIMAL HEX OCTAL The default is OCTAL. offset is the offset, in octal, from the base of the block used to compute the exact location of the word whose value Binder verifies against value. The default is the base of the block (offset 0). value is an expression that Binder verifies against the contents of the specified word. Enclose an ASCII value in quotation marks.
VOLUME Command BIND Commands subvol is a subvolume name. Considerations • • The ENV command lists the Binder default volume and subvolume. The VOLUME command is only used when the file system is set to Guardian in the SELECT FILESYS command.
VOLUME Command BIND Commands Binder Manual—528613-004 3- 80
4 Object File Structure This section discusses object file structure, including: Topic Page Code Blocks, Entry Points, and Data Blocks 4-1 Object File Format 4-8 All Binder operations are performed on object files. The following discussions pertain to object file structure both for input files and target files. Code Blocks, Entry Points, and Data Blocks Code blocks and data blocks are the smallest independently located pieces of a program.
Object File Structure Primary and Secondary Entry Points Code block names are not case-sensitive except when the program includes C-coded routines. You can call a C routine from other languages only if the routine name in the C program is in all uppercase characters. Code Block Attributes Especially in TAL and Pascal, code block declarations can contain attributes that define execution or relocation characteristics. You can alter some attributes using the ALTER command.
Object File Structure Primary and Secondary Entry Points FORTRAN arithmetic statement functions, TAL SUBPROCs, and COBOL85 PERFORM ranges are routines that are invoked through branch to subroutine (BSUB) instructions; these routines do not have their own code blocks. The code for such routines must be contained in the same block as their callers. The location of the routine’s code within the local code block is determined at compile time. Binder knows nothing and does nothing about BSUB routines.
Object File Structure • • Data Blocks Q is directly nested within outermost routine R. R is private to module M compiled from source file $VOLUME.SUBVOL.FNAME. The full name for routine P is FNAME.R.Q.P. FNAME, the file name, and not M, the module name, is used. The fully qualified name must not be longer than 255 characters. Routines textually nested within a Pascal main program are compiled as if they were not nested.
Object File Structure Data Blocks Special block names are distinguished by having a pound sign (#) for at least one of the characters in the name. The data block output listings display the special block names. You do not normally use these names in Binder commands. Note. Uninitialized data in extended data blocks is compressed out of the object file space. The operating system restores the extended data space to its original space before it was compressed when the file is run.
Object File Structure Data Blocks Some compilers generate private data blocks to handle the collection of constants and all private, statically allocated variables used by the compilation unit. For C and Pascal, these data blocks are private to the module; for COBOL85, and FORTRAN, these data blocks are private to one routine. Each language uses a different terminology for private, statically allocated variables: • • • • • In C, these are static, nonexternal variables.
Object File Structure Data Blocks INT G[0:7] = 'P' := "abcdefgh"; END BLOCK; At the conceptual level, this declares a single block named BLK, containing seven variables.
Object File Structure Object File Format Object File Format All object files have the same format, regardless of the number of code and data blocks. Figure 4-1 shows an example object file made up of several blocks copied from different object files. For additional information on mixed-language binding, see Binding Mixed-Language Programs on page 2-13. On disk, an object file can consist of a maximum of 16 extents. The header, code, and data areas must be in the first extent (0).
Object File Structure Header Note. This figure shows a single code segment in the code region. Normally, many more code segments would appear. Note. The object file format may change. New versions of Binder will accept all existing Binder object file formats; however, old versions of Binder will not accept new object file formats. Header The object file header is a block at offset zero containing pointers and descriptive information for other regions in the object file.
Object File Structure Code Region TAL Global Read-Only Arrays Binder supports the concept of read-only global data arrays. Currently, the only language that supports global read-only arrays that are visible to Binder is TAL. The TAL term for read-only arrays is P-relative arrays. The name is derived from the fact that read-only arrays reside in the code area of the object file rather than the data area.
Object File Structure Data Region The XEP table is in the last page of each code segment and contains an entry for each unresolved external reference. The operating system fills in this table at run time. These unresolved references can refer to entry points in the code or system library, the FORTRAN or COBOL85 run-time libraries, or to entry points in user library segments.
Object File Structure Binder Region Binder Region The Binder region contains a header and the following Binder tables: • • • Procedure information table Entry point table Data block information table You can strip Binder tables using the STRIP command.
5 Binder Input and Output This section describes the two stages of Binder operation: input and output. It contains the following topics: Topic Page The Input Control Lists 5-1 The Target File 5-8 During the input stage, you instruct Binder how to build the target file by specifying the names of input object files and the code and data blocks within those files. You also specify any changes to the code blocks, data blocks, and references that Binder must follow to build its target file.
Creating the Input Control Lists Binder Input and Output • • • • • • ° ° ° Include entry point list Include data block list Include run-time data unit list (RTDU list) Modify list Omit list Refer list Search list Undefined list Unresolved reference lists, specifically: ° ° Unresolved code list Unresolved data list When you start Binder, all lists are empty. After Binder builds the target file, the lists are again empty. You can then define another target file or end the session.
How Binder Uses the Input Control Lists Binder Input and Output How Binder Uses the Input Control Lists The following subsections describe the input control lists and how and when Binder adds and removes blocks and entry points from the lists. Include Lists The include lists are ordered lists of code blocks, data blocks, entry points, and RTDUs to include in the target file.
How Binder Uses the Input Control Lists Binder Input and Output • • • When a code block is greater than 32K words When a code block is a resident procedure When a gap in a code segment could be filled by a small code block Using the MOVE command, you can reorder the include code block list during the input phase in such a way that page faults are avoided during execution. For diagnostic information on using MOVE in this way, see the Measure Reference Manual Include Data Block List.
How Binder Uses the Input Control Lists Binder Input and Output Include Run-Time Data Unit List. Binder adds an RTDU name to the include run-time data unit list when one of the following happens: • • An ADD or REPLACE command refers to the total contents of a disk file containing the RTDU. Binder executes a SATISFY or BUILD command and the following are true: ° An RTDU, referenced by an included code block, is in the unresolved reference list.
How Binder Uses the Input Control Lists Binder Input and Output point name of the pair is the name of an entry point (the new name) that is to be substituted for the existing entry point name. The two names cannot be the same. When Binder executes a SATISFY or BUILD command, it checks unresolved entry point references against the refer list. If the reference is to be changed, Binder makes the change and then tries to resolve the reference.
How Binder Uses the Input Control Lists Binder Input and Output 2. Binder searches the omit list; if it finds the name in the omit list, it does not resolve the entry point name. No further action takes place for that reference and the entry point name remains in the unresolved reference list. 3. If the reference is internal to the file that contained it, Binder searches that file.
The Target File Binder Input and Output @SATISFY Binder resolves the reference to A from OBJ1, and then resolves the reference to B from OBJ2. Because B calls C and D, Binder adds the references to C and D to the unresolved entry list. It also notes that C and D are contained in the same file as B. When it comes time to resolve the reference to C, Binder does so by searching file OBJ2. Finally, Binder resolves D from OBJ2.
Target File Attributes Binder Input and Output Table 5-2. Target File Attributes (page 1 of 3) Attribute Description DATA Specifies the total amount of nonextended data pages allocated at run time for data blocks, stack, and local storage. The default is 64K words for C and Pascal. Note that you can use only one of DATA, STACK, or EXTENDSTACK to override the default amount of data space allocated by Binder.
Target File Attributes Binder Input and Output Table 5-2. Target File Attributes (page 2 of 3) Attribute Description PEP Explicitly specifies a larger size for the PEP table. By default, Binder allocates the minimum amount of space needed for the number of entry points in the object file. PFS Specifies the size of the Process File Segment. The PFS can be from 64 to 512 pages. RUNNAMED Specifies that the object file must be run as a named processes.
How Binder Builds the Target File Binder Input and Output Table 5-2. Target File Attributes (page 3 of 3) Attribute Description SYSTYPE Specifies whether the target execution environment for the object file is Guardian environments or OSS environment. The default is Guardian. TARGET Specifies the processor that the target file can run on. TARGET can be TNS, TNS/R, ANY, or unspecified. The default is unspecified.
How Binder Builds the Target File Binder Input and Output • • The BLOCK option causes common block declarations to be checked for the same length and the same type of addressing in every code block that refers to the common block. If the length and type do not match for each of the references, Binder issues a warning. The default is ON.
6 User Libraries This section contains the following topics: Topic Page Binding User-Library Procedures 6-1 Object File Format 6-2 Preventing Binder Resolution of Library Calls 6-2 Specifying a User Library 6-3 Restrictions on User Libraries 6-3 Shared Run-Time Libraries 6-4 A user library is a set of procedures that the operating system can link to a program file at run time. This section contains general information needed for effective programming with user libraries.
Object File Format User Libraries library code space for a total of 64 segments. A segment can contain as many as 64K words of code. For instructions about using the USERLIBRARY option to increase the size of a program’s code space from 16 to 32 segments (for TNS systems) and from 32 to 64 segments (for TNS/R systems), see SET Command on page 3-57. Object File Format Because the operating system binds program files and library procedures at execution time, there are no restrictions on object-file format.
Specifying a User Library User Libraries Specifying a User Library Only one user library can be associated with a program file at any time. Therefore, all concurrently executing processes created from a single program file use the same library file.
Shared Run-Time Libraries User Libraries • • • • • There is one data space (stack) for a process, the one allocated for the program file. The library file’s global data matches the global data of the program file. Because you specify the allocation and initialization of global data in your program file, if the library file has global data, it must match the global data of the program file. The operating system ignores any initialization of global data in the library file.
Reserving Space With the SET RESERVE Command User Libraries Table 6-1. Binder Commands Used With Shared Run-Time Libraries Command Description SELECT IMPORT LIBRARY Specifies the use of an SRL library as a user library used during binding. SET IMPORT Specifies the list of variables to be imported. SET RESERVE Specifies how much space to reserve in the application’s global data space.
User Libraries Reserving Space With the SET RESERVE Command Binder Manual—528613-004 6 -6
7 Guardian File Names and TACL Commands This section discusses: Topic Page Disk File Names 7-1 TACL Commands 7-4 TACL DEFINE Commands 7-5 TACL PARAM Commands 7-7 TACL ASSIGN Commands 7-9 The Binder product assumes that file names supplied for input and output follow NonStop Operating System naming conventions. Defaults are supplied by the command interpreter when Binder is started. For information on process or device file names, see the Guardian Programmer’s Guide.
Guardian File Names and TACL Commands • • Parts of a Disk File Name Can contain ASCII characters only Are not case-sensitive; the following names are equivalent: myfile MyFile MYFILE Language functions and system procedures that return file names might return them in uppercase (even if the file name was originally in lowercase). Check the description of the function or procedure that you are using.
Partial File Names Guardian File Names and TACL Commands Subvolume Name The subvolume name, such as MYSUBVOL, is the name of the set of files, on the disk volume, within which the file resides. The subvolume name can contain from one to eight alphanumeric characters, the first of which must be alphabetic. On a D-series system, if you specify the volume name, you must also specify the subvolume name. If you omit the volume name, specifying the subvolume name is optional.
Logical File Names Guardian File Names and TACL Commands Partial File Name Permitted on D-Series and G-series Systems Volume, subvolume \branch.emp Yes Subvolume \branch.$div.emp No Node (system), subvolume $div.emp No Omitted FileName Parts You can change your current default values in various ways: • • You can change the volume and subvolume with the VOLUME command of, for example, the Binder, Inspect, and TACL products.
Guardian File Names and TACL Commands • • TACL DEFINE Commands Guardian User’s Guide (interactive information) Guardian Programmer’s Guide (programmatic information) TACL DEFINE Commands By issuing TACL DEFINE commands before starting the compiler, you can: • • • • Substitute a file name for a DEFINE name used in the source file Specify spooler attributes Specify file attributes on a labeled tape Specify process defaults, such as default volume and subvolume Substituting a File Name You can substitut
Guardian File Names and TACL Commands Setting DEFINE CLASS Attributes DEFINE names that begin with an equals sign followed by an underscore (=_) are reserved by HP. For example, do not use DEFINE names such as =_DEFAULT. Setting DEFINE CLASS Attributes To create a DEFINE message or set its attributes, you must set a CLASS attribute for the DEFINE. The CLASS attributes are MAP, TAPE, SORT/SUBSORT, SPOOL, and DEFAULTS.
Guardian File Names and TACL Commands TACL PARAM Commands DEFAULTS DEFINE In the DEFAULTS class, a permanently built-in DEFINE named =_DEFAULTS has the following attributes, which are active regardless of any DEFMODE setting: Attribute Required Purpose VOLUME Yes Contains the default node, volume, and subvolume names for the current process as set by the TACL VOLUME, SYSTEM, and LOGON commands SWAP No Contains the node and volume name in which the operating system is to store swap files CATALOG
Guardian File Names and TACL Commands PARAM SWAPVOL Command PARAM SWAPVOL Command The PARAM SWAPVOL command lets you specify the volume that the compiler, BINSERV, and SYMSERV use for temporary files. For example: PARAM SWAPVOL $myvol The compiler ignores any node specification and allocates temporary files on its own node. If you omit the volume, the compiler uses the default volume for temporary files; BINSERV and SYMSERV use the volume that is to receive the object file.
TACL ASSIGN Commands Guardian File Names and TACL Commands • The compiler, BINSERV, and SYMSERV all run in the same CPU PARAM SAMECPU 1 • The compiler, BINSERV, and SYMSERV allocate temporary files on volume $JUNK PARAM SWAPVOL $junk Then you can issue the compiler compilation command: TAL /IN mysource, OUT mylist/ myprog TACL ASSIGN Commands You can issue the TACL ASSIGN command before starting the compiler to substitute file names for those used in the source file.
Guardian File Names and TACL Commands TACL ASSIGN Commands ADD DEFINE =my_zebra, CLASS MAP, FILE $a.b.zebra TAL /IN mysource, OUT $s/ obj the compiler equates SOURCE directives in MYSOURCE to files as follows: ?SOURCE aa !Equates to ?SOURCE $a.b.cat ?SOURCE cc !Equates to ?SOURCE $a.b.zebra ?SOURCE bb !Equates to ?SOURCE $a.b.dog You can name new source files at each compilation without changing the contents of the source file.
8 Binder Messages This section lists three types of messages returned by Binder: error messages, warnings, and completion codes. Topic Page Error Messages and Warnings 8-1 Completion Codes 8-28 Error Messages and Warnings This subsection lists Binder error and warning messages in numerical order. The listing includes a description of the possible sources of the error and the corrective action you can take.
Error Messages and Warnings Binder Messages Binder assigned an arbitrary name after other file-naming attempts failed for the target file. nnnn is a numerical suffix that uniquely identifies the file. vol and subvol are the same as would have been used. This is an informative message only. 1 E ADD/REPLACE/DELETE may not be used on OWN (SAVE) blocks You cannot specify an OWN (SAVE) block separately from its associated code block.
Error Messages and Warnings Binder Messages 6 E Block does not exist in file: block-name No code or data block by the given name was found in the specified object file. You can check block names by using the LIST LOC command or by referring to a current compiler listing. You can ensure that Binder searches the correct file by giving the file name on the command or by using the FILE command.
Error Messages and Warnings Binder Messages 10 E Cannot add entry point to omit list if already on include list: entry-point-name An entry point cannot be on both lists. If the include list is wrong, use the DELETE command. If the omit list is wrong, use the RESELECT OMIT command to clear the list. 11 E Can only ALTER MAIN attribute of C or TAL procedure You cannot change the MAIN attribute after compilation for COBOL85, FORTRAN, and Pascal code blocks.
Error Messages and Warnings Binder Messages 15 E CHANGE file cannot be open (use CLEAR command or close the file) Because the CHANGE command writes to the object file, the object file must not be open when this command is executed. Binder might be using the file, in which case the CLEAR command closes it. 17 E Code space overflow in PROC: block-name The program exceeded the maximum amount of code space available.
Error Messages and Warnings Binder Messages 20 E Data reference failed due to relocation: ( code-block-name) + ( offset) REF TO ( data-block-name) + ( offset) This error occurs on TAL input files. A BLOCK global variable can be moved past TAL limit. code-block-name contains the data reference. Rearrange global variables or use the INHIBITXX directive. Refer to the TAL Reference Manual for information on the INHIBITXX directive.
Error Messages and Warnings Binder Messages 26 W File already on search list file-name The file name was previously used in a SELECT SEARCH command. The file name is ignored. 27 E File code not 100: file-name The indicated file is not an object file. 28 E Identifier too long An identifier cannot exceed 31 characters. 29 E Illegal ALTER PROC name: proc-name The entry point name given as an ALTER LIKE entry point is not on the include list.
Error Messages and Warnings Binder Messages 33 E Illegal log file - ignored You used the LOG file name for one of: IN file, OUT file, or OBEY file. 34 E Illegal MOVE PROC name: code-block-name A MOVE command cannot refer to a block that is not on the include code block list nor to a block that is inside a range of blocks to be moved. 35 E Illegal OBEY file - ignored You used the OBEY file name as one of: IN file, OUT file, or LOG file.
Error Messages and Warnings Binder Messages 39 E Illegal SET value - ignored The maximum values for SET parameters are: PEP 512 DATA 64 pages (65536 words) EXTENDSTACK same as DATA STACK same as DATA RESERVE BELOW64 124 bytes RESERVE PRIMARY 508 bytes RESERVE SECONDARY 65,024 bytes RESERVE EXTENDED 1,073,741,824 bytes 40 E Integer conversion error Either the number supplied is too large or an invalid digit was received.
Error Messages and Warnings Binder Messages 44 W Invalid system name The system name is too long or contains an invalid character, or the system does not exist. For a description of the file naming conventions, see Section 7, Guardian File Names and TACL Commands.
Error Messages and Warnings Binder Messages 50 E No current file for ADD/REPLACE/LIST/DUMP You must establish a current file before the named commands can be executed. Either reenter the command with the FROM file-name parameter or use the FILE command. FILE establishes the default file for subsequent commands (or until another FILE is entered). 51 E No help available for name You have specified a command parameter in a form that is not recognizable by the HELP command.
Error Messages and Warnings Binder Messages 56 E No BINDER region in object file: file-name This error can occur for two reasons: 1. The file had Binder tables but has been stripped by a Binder STRIP command. Binder cannot manipulate the file in any way; recompile. 2. The file was compiled by a compiler version that does not incorporate Binder. Recompile using the correct version. Check with your system support personnel.
Error Messages and Warnings Binder Messages 61 W Parameter type mismatch on entry-point-name parameter n SELECT CHECK PARAMETER is STRICT (default), and the consistency check failed. The type of the indicated parameter differs from that required by the named entry point. Binder also issues this message if calls to the same entry point from separately compiled code blocks specify incompatible types.
Error Messages and Warnings Binder Messages 64 E Range members in wrong order: name to name If the ADD or REPLACE command has an incorrect range given, respecify block names in ascending order by location in the object file. Use LIST LOC command or a current map listing to verify the order of blocks in the input file. If the command refers to a range in an include list, respecify the command with names in ascending order as on the list. You can use the INFO INCLUDE command.
Error Messages and Warnings Binder Messages 69 W Return type mismatch on proc-name SELECT CHECK PARAMETER is STRICT (default), and the consistency check failed. The return type required by the named procedure is inconsistent with the call. This message is also issued if calls to the same entry point from separately compiled code blocks specify incompatible return types. You can disable parameter checking by setting CHECK PARAMETER OFF.
Error Messages and Warnings Binder Messages environment. Consider adding a skeleton program that contains a call to the major entry point. (Only one block with the MAIN attribute is allowed.) 75 W TNS/II user library violation: MAIN procedure code-block-name SELECT CHECK LIBRARY ON is in effect and a procedure with the MAIN attribute was encountered.
Error Messages and Warnings Binder Messages 80 F Value specified in VERIFY command not equal to current value: should be % value, is % value You can use the VERIFY command during a noninteractive BIND session to stop the session if a discrepancy exists between an expected code or data value and the actual value. This message indicates which value did not match the expected value. 81 W Extensible or variable attribute mismatch on proc-name This error occurs on TAL input files.
Error Messages and Warnings Binder Messages 85 F An OWN block or COBOL PUCB has been included in the object file without the associated code for the data block: block-name When you include an OWN block or COBOL85 PUCB in an object file, you must also include the associated code for the data block.
Error Messages and Warnings Binder Messages 91 W OWN data blocks contained in the range of blocks were not added OWN data blocks cannot be contained in a range of data blocks being added to the object file. You can only add OWN data blocks by adding the code block to which they belong. All data blocks other than the OWN block were added. 92 E Possible OWN block name conflict with a COMMON block: block-name You attempted to bind two data blocks that are of different types but that have the same name.
Error Messages and Warnings Binder Messages 98 E A space number has been given with a data address Data blocks do not have a code segment number associated with them. Remove the code segment from the command, and try again. 99 E Illegal SUBTYPE value -- ignored The SUBTYPE value in the SET command must be in the range 0–63. 100 E More than 8160 entry points on include list: The procedure entry point table can have a maximum of 8160 entries, one for each entry point. You must restructure the program.
Error Messages and Warnings Binder Messages 106 W The Binder session contained errors or warnings (the error/warning counts exclude those found in the Build phase of the Bind session). A noninteractive BIND session that has errors or warnings outside of the BUILD command has statistics printed at the end of the BIND session. 107 E ADD/ALTER/DELETE/MOVE/NAME/REPLACE not allowed on contained procedures You cannot use these commands on procedures with a lexical level greater than one (nested code blocks).
Error Messages and Warnings Binder Messages 112 E A required data block is not present: block-name The special data block block-name is required on the include list for Binder to be able to build on the object file. 113 W The object file is not runnable for the following reason(s): reasons reasons is one or more of the following: • • • • No MAIN code block Fixups are not applied Undefined data blocks are referenced References from data to code are unresolved Correct the problem indicated.
Error Messages and Warnings Binder Messages You can safely ignore this message during the SYSGEN phase of INSTALL. If you receive this message at any other time, contact your HP analyst. 143 W Variable attribute mismatch on C function name The attributes of two C functions do not match. One is a variable and the other is not. Correct your code and recompile before attempting to bind the files again.
Error Messages and Warnings Binder Messages 151 E The COMMON run-time data block #MCB has a new format, use a newer BIND Your version of Binder does not recognize the format of data block #MCB used for the Common Run-Time Environment. Use a version of Binder that is compatible with the version of the compiler. 152 W Parameter return type mismatch on procedure-name parameter number The return types of procedures passed to procedure-name do not match.
Error Messages and Warnings Binder Messages 167 E Illegal mix of WIDE and NOWIDE memory attributes in file: file-name You cannot bind C programs compiled under the wide-data model with C programs compiled under the large-memory model or the small-memory model. Refer to the C Reference Manual for details on C memory and data models. 209 E Invalid current working directory You specified an invalid directory for the CD command. An existing OSS directory must be specified in the CD command.
Error Messages and Warnings Binder Messages 216 W There are unresolved references to data block block-name When building an SRL application, some of the external variable references were not resolved. Binder continues to build the object file and include the missing blocks on the imported block list. The application is not runnable with the specified library. A new library must be supplied to declare the missing blocks.
Error Messages and Warnings Binder Messages 223 E Data area is full. Cannot allocate data block block-name You specified a data area that cannot be allocated because the data area is full. Binder does not build the target codefile. 224 W The reserve size of x exceeds the maximum for data area data-type You specified a SELECT RESERVE command with a value that exceeds the maximum for the specified data area. The invalid setting is ignored and the previous setting is used.
Completion Codes Binder Messages 232 W Modify location is uninitialized,target object may not contain new data When the build command is issued, Binder applies the modifications from the modify list. If the requested data block is not currently initialized, it is not modified. 233 F Error encountered during timestamp conversion. Binder abends when the DST table is obsolete. 234 W Cannot SQL compile a stripped object file.
Completion Codes Binder Messages Table 8-1. Binder Completion Codes (page 2 of 2) Code Meaning 3 The process terminated prematurely because of errors. No object code was produced, and ERRORS were issued in a noninteractive session. For example, this completion code is returned if Binder is unable to open a file. 5 The process terminated abnormally. No object code was produced. 8 A WARNING was issued because Binder had to rename the object file.
Completion Codes Binder Messages Binder Manual—528613-004 8- 30
9 Syntax Summary This section summarizes Binder commands and their syntax. Table 9-1. Binder Command Summary (page 1 of 2) Command Description ADD Inserts new names or replaces old names on the include lists; Binder deletes replaced names. ALTER Changes attributes of entry points. BUILD Creates the target file. CD Specifies the default current working directory. CHANGE Patches the attribute values in an already-created object file.
Syntax Summary Table 9-1. Binder Command Summary (page 2 of 2) Command Description SELECT Sets options for Binder operation control. SET Sets object file characteristics to use in building the target file. SHOW Displays collected information: current file, modify list, and controls from the SELECT and SET commands. STRIP Deletes Binder, Inspect, and Accelerator regions from the object file. SYSTEM Sets the default node name for expanding file names.
Syntax Summary COMMENT [ text ] DELETE { CODE block-list } { DATA block-list } { * } DUMP [ / OUT file-name / ] { CODE code-block-name } { DATA data-block-name } { offset [ , count ] } [ spec-list ] [ FROM file-name ] { offset [ , * ] } { * } ENV [ [ [ [ [ LOG MODE SYSTEM VOLUME DIRECTORY ] ] ] ] ] EXIT FC FILE file-name HELP [ / OUT file-name / ] [ topic [ subtopic [ subtopic ] ] ] [ subtopic ] [ < param-name > ] Binder Manual—528613-004 9 -3
Syntax Summary INFO [ / OUT file-name / ] { INCLUDE { CODE block-list } [ , DETAIL ] } { { DATA block-list } } { { ENTRY entry-list} } { { * } } { } { UNRESOLVED { DATA } } { { ENTRY } } { { * } } { } { UNDEFINED * } { } { * [ , DETAIL ] } LIST [ / OUT file-name / ] { { { { { { { { { { { { { { { { { { { { { { { { { SOURCE CODE CODE DATA DATA XREF } [ FROM file-name } name-list [ IN SPACE num ] } } block-list } } name-list } } block-list } } [ XREF- options ] } ( list-option [ , list-option ] ...
Syntax Summary MOVE entry-list { AFTER entry-name } { BEFORE entry-name } { IN NEW SPACE } [ , entry-list { AFTER entry-name } ]... { BEFORE entry-name } { IN NEW SPACE } OBEY [ / OUT file-name / ] file-name { OUT file-name } { command / OUT file-name / param-name } RENAME { CODE entry-point-name } TO name { DATA data-block-name } REPLACE { CODE entry-list } [ FROM file-name ] { DATA block-list } { * } RESELECT { select-param [ , select-param ] ... } { * } RESET { set-param [ , set-param ] ...
Syntax Summary SELECT { select-param [ , select-param ]... } select-param can be any of the following: { CHECK check-option } { CHECK ( check-option [ , check-option ]... ) } COMPACT { ON | OFF } COMPRESS DATA { ON | OFF } FILESYS { OSS | GUARDIAN } FIXUPS { ON | OFF } { LIST listing-option } { LIST ( listing-option [ , listing-option ]... ) } { OMIT entry-name } { OMIT ( entry-name [ , entry-name ]... ) } { REFER refer-pair } { REFER ( refer-pair [ , refer-pair ]...
Syntax Summary SET { set-param [ , set-param ]...
Syntax Summary SYSTEM [ node ] VERIFY { CODE block-name } [ verify-spec ] [ offset ] , value { DATA block-name } VOLUME { $ volume } { [ $ volume.
Glossary absolute pathname. A pathname that begins with a slash (/) character and is resolved beginning with the root directory. Contrast with “relative pathname.” accelerate. To use the Accelerator program to generate an accelerated object file. accelerated object code. The RISC instructions that result from processing a TNS object file with the Accelerator. accelerated object file . The object file that results from processing a TNS object file with the Accelerator.
Glossary code block code block. The smallest independently relocatable piece of a program. Code blocks contain executable machine instructions and possibly inline constant data. Compare with data block. common data block. A data block with a scope defined as public to all modules. Common Run-Time Environment (CRE). A set of services implemented by the CRE library that supports mixed-language programs. Contrast with language-specific runtime environment. Common Run-Time Environment (CRE) library.
Glossary extended data segment extended data segment. A segment that provides up to 127.5 megabytes of indirect data storage. A process can have more than one extended data segment. external entry point (XEP)table. The XEP table contains an entry for each unresolved external reference and is in the last page of each code segment. file ID. The last of the four parts of a file name; the first three parts are node name (system name), volume name, and subvolume name. filename.
Glossary local data local data. Data that you declare within a procedure; identifiers that are accessible only from within that procedure. low PIN. A process identification number (PIN) in the range 0 through 254. Contrast with high PIN. lower 32K-word area. The lower half of the user data segment. The global, local, and sublocal storage areas. language-specific run-time environment. A set of services implemented by the run-time library of each language.
Glossary pathname pathname. The string of characters that uniquely identifies a file within its file system. A pathname can be either relative or absolute. See also ISO/IEC IS 9945-1:1990 (ANSI/IEEE Std. 1003.1-1990 or POSIX.1), Clause 2.2.2.57. PEP table. See procedure entry point (PEP) table. PIN. See process identification number (PIN). primary data space. The area of the user data segment that can store pointers and directly addressed variables. primary entry point.
Glossary run-time data unit (RTDU) run-time data unit (RTDU). Region of an object file used to store NonStop SQL source and object code. run-time environment. The services provided by run-time library routines and data objects (data blocks and pointers) to a program at run-time. run-time library. A collection of routines that supports requests for services such as I/O and heap management, math and string functions, exception handling, and error reporting. secondary entry point.
Glossary TNS/E. TNS/E. 64-bit computers that support the HP NonStop operating system and that are based on INTEL’s Itanium architecture. TNS/E machines are upwardly compatible with the TNS system-level architecture. Contrast with TNS and with TNS/R. TNS/E instruction. See Itanium instruction. TNS. The HP computers that support the Guardian operating system and that are based on the instruction set computing (CISC) technology.
Glossary XEP table Binder Manual—528613-004 Glossary- 8
Index Numbers 32K boundary 4-10 A Accelerated mode executing in 1-7 Acceleration cross platform 1-8 Accelerator 1-8 AXCEL ENABLE attribute 3-15 introduced 1-5 Accelerator Region description 4-11 stripping 3-75 ADD Command efficient usage 3-3 examples 3-8 syntax and description 3-6/3-8 using search files 3-48 with SQL subprograms 2-15 ADD SPACE Command 3-6 ADD, DELETE vs.
C Index description 4-12 stripping 3-75 Binding 2-14, 3-50, 3-55, 5-11 C 2-11 changing the swap volume 2-17 COBOL85 2-10 compilation time 6-2 C-Series object with D-Series object 2-6 defined 1-1 FORTRAN 2-10 interactive 1-3, 2-2 language checking 3-50, 3-55, 5-11 logging a session 3-33 mixed languages 2-13 modules 2-5/2-17 Pascal 2-12 redirecting output 3-39 resolving external references 2-16 rules 2-6 seperately compiled object files 2-5/2-16 SQL subprograms 2-14/2-16 target file specifications 2-4 targe
C Index procedure replacement 3-41 routine scope 4-3 user libraries 6-1 version used with Binder 1-4 Code area size 2-23 Code blocks adding to include list 3-6 attributes 3-9, 4-2 cross-reference lists 3-30, 3-54 defined 2-21, 3-4 deleting 3-19 displaying content 3-20 displaying information 3-25 displaying multiply-defined 3-26 in multiple object files 2-6 load maps 2-21/2-24, 3-28 modifying word values 3-34 moving 3-36 names 4-1 name-lists 3-4 order 5-3 renaming 3-40 replacing 3-41 scope 4-3 See also Blo
D Index SYSTEM 3-77 VERIFY 3-77 VOLUME 3-78 Command-driven binding command file 2-2 interactive 2-1 introduced 1-3 COMMENT Command 3-19 COMMON 2-7 Common data blocks 4-5 Common run-time environment 2-6, 2-13 COMPACT option 3-52, 5-11 Compilation time binding 1-2 Compiler directives 2-6 Completion codes 8-28 COMPRESS DATA option 3-52 Control blocks, in mixed binding 2-10 Control lists commands to create 5-2 include code block 5-3 include data block 5-4 include entry point 5-4 include run-time data unit (RT
E Index DEFINE command,TACL product 7-5 Defining target file 2-3 Definitions BIND 1-2 binding 1-1 BINSERV 1-2 block 1-1 code block 2-21 data block 3-6 entry point 2-21 object file 1-1 program 1-1 target file 1-1 DELETE Command 3-19 Disk files names of 7-1 Disk space, managing 2-17 DUMP Command examples 3-22 syntax and description 3-20/3-22 E Efficient usage, BIND Commands 3-3 Entry points adding to include list 3-6 changing attributes 3-9 cross-reference lists 3-30, 3-54 definition 2-21 displaying 3-25,
G Index logical 7-4 parts of 7-2 replacing define names 7-5 specifying defaults 7-4 Files Binder work files 2-17 changing attributes 3-15/3-18 establishing current 3-24 multiple-code segment 4-9 setting target file attributes 3-57/3-67 target attributes 5-9/5-11 FIXUPS option 3-4, 3-52 FLUT (FORTRAN logical unit table) 2-10 FORTRAN blank common blocks 4-5 control blocks 2-10 logical unit table 2-10 mixed language binding 2-13 named blocks 4-5 procedure replacement 3-41 routine scope 4-3 version used with
L Index Inspect attribute 3-16, 3-60, 5-9 program 3-60 region 4-11 relation to Binder 1-5 Inspect region description 4-11 stripping 3-75 Interative binding 1-3 Internal file names 7-4 INTERRUPT attribute 4-2 generating 3-53 listing 3-28 location 2-23, 2-25 turning on/off 3-4, 3-53 LOC option 3-30, 3-53 Local storage, stack space 3-58 Location load maps 2-23, 2-25, 3-30, 3-53 LOG Command 3-32 Logical file names 7-4, 7-9 Low PIN determining 3-65 running 3-65 L Language specific run-time environment 2-6 La
N Index syntax and description 3-36/3-37 Multiple code segments creating 3-8 files 4-9 load maps 2-23 Multiple-line commands 3-3 N Named blocks 4-5 Names, private vs.
P Index introduced 2-4 syntax 3-54 Online help 3-24 Optimization 1-6 OUT Command 3-39 Output listings displaying 3-29 entry point maps 2-21/2-24 generating 2-19 load maps 2-21/2-25 specifying a file 2-2 statistics 2-19 Own data blocks 4-5/4-7 P Page faults, reducing 3-37 PARAM BINSERV command 7-7 PARAM command, TACL product 7-7 PARAM SAMECPU command 7-7 PARAM SWAPVOL command 2-18, 7-8 PARAM SYMSERV command 7-8 Parameter checking 3-51, 3-55 mixed language bind 2-14 parameter checking 2-14, 3-50, 3-55, 5-1
R Index LOG 3-32 MODE 3-33 SYSTEM 3-77 VOLUME 3-78 Program unit control block (PUCB) 2-10 Public names 4-3 PUCB(program unit control block) 2-10 Running processes at a high PIN 3-65 Run-time environment definition 2-6 Run-time libraries C 2-11 Pascal 2-13 Run-unit control block (RUCB) 2-10, 4-4 R S Read-only arrays,TAL global 4-10 Read-only code segments 4-1 Read-only data blocks 2-24, 4-4 Redirecting output 3-39 Refer list clearing 3-19 described 5-5 introduced 2-4 syntax 3-54 RENAME Command 3-40 REP
T Index SET parameters defaults 3-46 resetting 3-44 setting 3-57/3-63 showing 3-67/3-70 Shared run-time libraries 6-4 SHOW Command examples 3-70 syntax and description 3-67/3-70 Single-code segment files 4-9 Space reserving in applications 6-5 Special data block 4-4 SPOOL DEFINEs 7-6 SQL, binding subprograms 2-14/2-16 SRLs 6-4 STACK attribute 3-58, 5-9 Stack space 3-58 Static variables 4-6 Statistics of target file 2-19 Straddling 32K boundary 4-10 String 3-4 STRIP Command 3-75 Stripped files command 3-75
U Index changing 3-15/3-18 clearing 3-19 in built file 5-9/5-11 list of See Object file attributes resetting 3-44 setting 3-57/3-67 showing 3-67/3-75 Temporary files specifying volume for 7-8 The Object Code Accelerator (OCA) 1-6 TNS mode, executing in 1-7 TNS processor 1-5, 3-63 TNS/R processor 1-5, 3-63 U Undefined list clearing 3-19 described 5-6 displaying contents 3-27 introduced 2-4 Unresolved external references, SATISFY Command 3-48 Unresolved reference list clearing 3-24 described 5-6 displaying