Professional Documents
Culture Documents
Barry.Lichtenstein@us.ibm.com
IBM Poughkeepsie, New York
•IBM*
•z/OS*
•OS/390*
•Language Environment*
•S/360
•MVS
•z/Architecture
* Registered trademarks of IBM Corporation
The following are trademarks or registered trademarks of other companies.
Java and all Java-related trademarks and logos are trademarks of Sun Microsystems, Inc., in the United States and other countries.
Linux is a registered trademark of Linus Torvalds in the United States, other countries, or both.
Microsoft, Windows and Windows NT are registered trademarks of Microsoft Corporation.
UNIX is a registered trademark of The Open Group in the United States and other countries.
SET and Secure Electronic Transaction are trademarks owned by SET Secure Electronic Transaction LLC.
* All other products may be trademarks or registered trademarks of their respective companies.
Notes:
Performance is in Internal Throughput Rate (ITR) ratio based on measurements and projections using standard IBM benchmarks in a controlled environment. The actual throughput that any user will experience will vary depending upon
considerations such as the amount of multiprogramming in the user's job stream, the I/O configuration, the storage configuration, and the workload processed. Therefore, no assurance can be given that an individual user will achieve throughput
improvements equivalent to the performance ratios stated here.
IBM hardware products are manufactured from new parts, or new and serviceable used parts. Regardless, our warranty terms apply.
All customer examples cited or described in this presentation are presented as illustrations of the manner in which some customers have used IBM products and the results they may have achieved. Actual environmental costs and performance
characteristics will vary depending on individual customer configurations and conditions.
This publication was produced in the United States. IBM may not offer the products, services or features discussed in this document in other countries, and the information may be subject to change without notice. Consult your local IBM business
contact for information on the product or services available in your area.
All statements regarding IBM's future direction and intent are subject to change or withdrawal without notice, and represent goals and objectives only.
Information about non-IBM products is obtained from the manufacturers of those products or their published announcements. IBM has not tested those products and cannot confirm the performance, compatibility, or any other claims related to non-
IBM products. Questions on the capabilities of non-IBM products should be addressed to the suppliers of those products.
Prices subject to change without notice. Contact your IBM representative or Business Partner for the most current pricing in your geography.
2 SHARE in Orlando – August 2011 – Session 09828 – Copyright IBM Corporation 2011
Agenda
• What is the binder and why you need to know about it
• Problem diagnosis
3 SHARE in Orlando – August 2011 – Session 09828 – Copyright IBM Corporation 2011
What is the binder?
4 SHARE in Orlando – August 2011 – Session 09828 – Copyright IBM Corporation 2011
program management binder
• Wave 0
• Related utilities
• Programming interfaces
5 SHARE in Orlando – August 2011 – Session 09828 – Copyright IBM Corporation 2011
program management binder …
6 SHARE in Orlando – August 2011 – Session 09828 – Copyright IBM Corporation 2011
program management binder …
binder
invoked with options
7 SHARE in Orlando – August 2011 – Session 09828 – Copyright IBM Corporation 2011
program management binder …
• Symbol resolution
• Relocation
8 SHARE in Orlando – August 2011 – Session 09828 – Copyright IBM Corporation 2011
binder inputs
• SYSLIN ddname
• object modules
• OBJ, XOBJ, GOFF
• control statements
9 SHARE in Orlando – August 2011 – Session 09828 – Copyright IBM Corporation 2011
binder outputs
• SYSPRINT ddname
• text reports
• error messages
• SYSLMOD ddname
• program module / static or dynamic libraries
• SYSDEFSD ddname
• side-file for dynamic libraries
10 SHARE in Orlando – August 2011 – Session 09828 – Copyright IBM Corporation 2011
Where you see it
• PGM=IEWL (in JCL)
• True name
• IEWBLINK (default Link-Edit Utility for SMP/E)
11 SHARE in Orlando – August 2011 – Session 09828 – Copyright IBM Corporation 2011
a reflection on the past …
• Invocations of actual linkage editor and batch loader
• HEWLD*
• Any remaining invocations of these are batch loader
• IEWL* or HEWL*
• Any remaining invocations of these are linkage editor
12 SHARE in Orlando – August 2011 – Session 09828 – Copyright IBM Corporation 2011
Let’s talk options!
13 SHARE in Orlando – August 2011 – Session 09828 – Copyright IBM Corporation 2011
options for SYSPRINT
• LIST, MAP, XREF
14 SHARE in Orlando – August 2011 – Session 09828 – Copyright IBM Corporation 2011
options for SYSPRINT
15 SHARE in Orlando – August 2011 – Session 09828 – Copyright IBM Corporation 2011
to LET or not to LET
• LET=number
16 SHARE in Orlando – August 2011 – Session 09828 – Copyright IBM Corporation 2011
to LET or not to LET…
what was the question ??
• STORENX
• STORENX=NEVER
17 SHARE in Orlando – August 2011 – Session 09828 – Copyright IBM Corporation 2011
to LET or not to LET…
what if I LET it STORENX ?
18 SHARE in Orlando – August 2011 – Session 09828 – Copyright IBM Corporation 2011
Options, options everywhere!
• OPTIONS=ddname
19 SHARE in Orlando – August 2011 – Session 09828 – Copyright IBM Corporation 2011
Options, options everywhere! …
• ENTRY - EP option
20 SHARE in Orlando – August 2011 – Session 09828 – Copyright IBM Corporation 2011
Options, options everywhere! …
21 SHARE in Orlando – August 2011 – Session 09828 – Copyright IBM Corporation 2011
Program changing options
• COMPRESSion=YES
• Requires COMPAT(ZOSV1R7)
PROGRAM TYPE PROGRAM OBJECT(FORMAT 4 OS COMPAT LEVEL z/OS V1R7 )
• EDIT=NO
24 SHARE in Orlando – August 2011 – Session 09828 – Copyright IBM Corporation 2011
That was the binder?
• Who was that masked binder?
25 SHARE in Orlando – August 2011 – Session 09828 – Copyright IBM Corporation 2011
That was the binder? …
• Where did that come from??? (the wonderful world of UNIX)
• makefiles
• LDFLAGS
• _C89_OPTIONS
• _C89_OPERANDS
• _LD_OPTIONS
• _LD_OPERANDS
26 SHARE in Orlando – August 2011 – Session 09828 – Copyright IBM Corporation 2011
That was the binder? …
• You know it’s the binder if…
• All IEW2xxxx messages
• IEWBIND_DIAG
• to catch a message
• IEWBIND_OPTIONS
27 SHARE in Orlando – August 2011 – Session 09828 – Copyright IBM Corporation 2011
Deeper dive into binder processing
28 SHARE in Orlando – August 2011 – Session 09828 – Copyright IBM Corporation 2011
All about AUTOCALL
• SYSLIB ddname
• AUTOCALL control statements
• LIBRARY control statements
• Traditionally
• The unresolved symbol name is searched for as the member name
• The expectation is that the member, if found, will contain the symbol
29 SHARE in Orlando – August 2011 – Session 09828 – Copyright IBM Corporation 2011
All about AUTOCALL …
• SYSLIB ddname
• Concatenation of data sets
• All kinds – object modules, load modules, program objects
30 SHARE in Orlando – August 2011 – Session 09828 – Copyright IBM Corporation 2011
All about AUTOCALL …
• AUTOCALL
• UNIX “incremental”
• Use this library right now
• Then, forget about it!
• LIBRARY
31 SHARE in Orlando – August 2011 – Session 09828 – Copyright IBM Corporation 2011
load module vs. program object
Se
ctio
n A
t
ec
ctio
O
n B
m
ra
Se
Pr
ctio
n C
element part
32 SHARE in Orlando – August 2011 – Session 09828 – Copyright IBM Corporation 2011
load module vs. program object …
• Load modules
• Single-dimensional
• Documented format
• Format never to be (substantially) be changed
• Program objects
• Multi-dimensional
• Class vs. section
• Format never to be documented
• Changes regularly – COMPAT(PMnn) levels and zOSVnRn
sublevels
• Currently 8 levels and sublevels
33 SHARE in Orlando – August 2011 – Session 09828 – Copyright IBM Corporation 2011
Problem diagnosis
34 SHARE in Orlando – August 2011 – Session 09828 – Copyright IBM Corporation 2011
program management binder …
symbol resolution
• In Section A there is a call (reference) to B which will be statically linked to A
• Location of B relative to the call in Section A is determined at bind time
• Final relocation of entire executable program module determined at load time
35 SHARE in Orlando – August 2011 – Session 09828 – Copyright IBM Corporation 2011
program management binder …
relocation
• There is an External Symbol Dictionary (ESD) entry for the location of B
• There is an Relocation Dictionary (RLD) entry for the location in A to write the location of B
• What if B is unresolved ?
Module A Module AB
Section A 000000 Section A
ESD ESD
reference to B 00000000 reference to B 00000200
TXT TXT
L R15,=A(B+10) L R15,=A(B+10)
36 SHARE in Orlando – August 2011 – Session 09828 – Copyright IBM Corporation 2011
SYSPRINT details
• SYSPRINT
• Messages (IEW2nnnns) also SYSTERM
• DDname cross-reference
• Message Summary
37 SHARE in Orlando – August 2011 – Session 09828 – Copyright IBM Corporation 2011
SYSPRINT details …
• SYSPRINT extras; requires MAP or XREF
38 SHARE in Orlando – August 2011 – Session 09828 – Copyright IBM Corporation 2011
MAP
*** M O D U L E M A P *** CLASS binding
attribute
CLASS loading
Class name behavior
and attributes
---------------
CLASS C_CODE LENGTH = 160 ATTRIBUTES = CAT, LOAD, RMODE=ANY
OFFSET = 0 IN SEGMENT 001 ALIGN = DBLWORD
--------------- SEGMENT
containing
SECTION CLASS CLASS ------- SOURCE --------
OFFSET OFFSET NAME TYPE LENGTH DDNAME SEQ MEMBER
s_a n (CS main
nam CT)
e
E
0 0 CEESTART LABEL
-g_
f LA
o
0 80 this_is_a-g_name LABEL
s_i
hin
Off
28 A8 main LABEL
39 SHARE in Orlando – August 2011 – Session 09828 – Copyright IBM Corporation 2011
MAP …
*** M O D U L E M A P ***
CLASS binding
attribute
CLASS loading
Class name behavior
and attributes -up
m ade ate”
er riv
--------------- bind for “p
e ol
CLASS C_WSA nam symb LENGTH = 24 ATTRIBUTES = MRG, DEFER , RMODE=ANY
OFFSET = 0 IN SEGMENT 002 ALIGN = DBLWORD
--------------- SEGMENT
containing
CLASS CLASS
OFFSET NAME TYPE LENGTH SECTION
0 $PRIV000011 PART 10
10 hw#S PART 10 this_is_a-g_name
20 world PART 4 world
40 SHARE in Orlando – August 2011 – Session 09828 – Copyright IBM Corporation 2011
XREF
CROSS-REFERENCE TABLE
41 SHARE in Orlando – August 2011 – Session 09828 – Copyright IBM Corporation 2011
XREF …
CROSS-REFERENCE TABLE
42 SHARE in Orlando – August 2011 – Session 09828 – Copyright IBM Corporation 2011
common problems & helpful tips
• Mixed-case input
IEW2456E 9207 SYMBOL myfunc UNRESOLVED. MEMBER COULD NOT BE INCLUDED FROM
THE DESIGNATED CALL LIBRARY.
• Recommendations
• CASE=MIXED
• Import Code,a.dll,myFunc
• ‘quote_name’
• INCLUDE ‘/u/barryl/C/hello.o’
• include PDSELIB(‘hello’)
43 SHARE in Orlando – August 2011 – Session 09828 – Copyright IBM Corporation 2011
common problems & helpful tips …
44 SHARE in Orlando – August 2011 – Session 09828 – Copyright IBM Corporation 2011
common problems & helpful tips …
45 SHARE in Orlando – August 2011 – Session 09828 – Copyright IBM Corporation 2011
common problems & helpful tips …
46 SHARE in Orlando – August 2011 – Session 09828 – Copyright IBM Corporation 2011
common problems & helpful tips …
• Turning on LIST=ALL
47 SHARE in Orlando – August 2011 – Session 09828 – Copyright IBM Corporation 2011
common problems & helpful tips …
• IEWPARMS
• like OPTIONS
• IEWDIAG
• like SYSTERM with LIST=ALL, MSGLEVEL=0
• useful if you are unable to pass those options
48 SHARE in Orlando – August 2011 – Session 09828 – Copyright IBM Corporation 2011
common problems & helpful tips …
• AMBLIST
• LISTOBJ – all object modules
49 SHARE in Orlando – August 2011 – Session 09828 – Copyright IBM Corporation 2011
common problems & helpful tips …
• AMBLIST …
• LISTLOAD – all program modules (EDIT=YES required!)
50 SHARE in Orlando – August 2011 – Session 09828 – Copyright IBM Corporation 2011
More advanced stuff
• Diagnostic DD’s
• EXITs
• APIs
51 SHARE in Orlando – August 2011 – Session 09828 – Copyright IBM Corporation 2011
It’s truly not the linkage editor !
• Really not the linkage editor!
• Application programming interface
• DLLs, XPLINK
• Classes (INIT load, NO load and DEFER load)
• …
• PDSE, UNIX
• program object format – PO (COMPAT(PMx))
• exclusively binder
• loaded by program management loader
• PDS
• load module format
• just like the linkage editor used to do
• HEWLKED anybody?
• loaded by program management loader (program fetch)
52 SHARE in Orlando – August 2011 – Session 09828 – Copyright IBM Corporation 2011
Diagnostic DD’s
• IEWTRACE ddname – TRACE option
• note: these diagnostics are normally used only for IBM problem determination
• limited information provided in program management documentation
53 SHARE in Orlando – August 2011 – Session 09828 – Copyright IBM Corporation 2011
Exits
• User exits – EXIT option
• MESSAGE
• filter all messages of specified severity or higher
• prevent or allow the message to print
• no effect on final return code of binder
• SAVE
• notification of each primary (member) name and alias name to be saved
• request retry for certain failures
54 SHARE in Orlando – August 2011 – Session 09828 – Copyright IBM Corporation 2011
APIs
• Application Programming Interfaces (APIs)
• C APIs
55 SHARE in Orlando – August 2011 – Session 09828 – Copyright IBM Corporation 2011
program management documentation
for options & control statements
• SA22-7643 - z/OS MVS Program Management:
User’s Guide and Reference