I was hopeful that the IEZIOB would include the missing fields. Unfortunately
it does not. Before opening an SR with IBM, I thought I'd give the List one
more shot. The $BUFFER macro changed in z/OS 2.2; we're jumping from 2.1 to 2.3
using code carried unmodified for decades (!).
The following code demonstrates the difference. The same job will assemble
successfully under 2.1 but fail under 2.3--and presumably 2.2 as well. There is
no executable code. The segment just illustrates the assembly errors from
$BUFFER symbols missing at 2.2+.
//ASM EXEC PGM=ASMA90,REGION=32M
//SYSTERM DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYPUNCH DD SYSOUT=*
//SYSLIN DD DUMMY
//SYSLIB DD DISP=SHR,DSN=OSRxx.SHASMAC <=== Use SYSLIB for appropriate z/OS
level
//SYSIN DD *
TEST$BUF AMODE 31
TEST$BUF RMODE ANY
TEST$BUF CSECT
B STEPSTRT-TEST$BUF(,15) SKIP HEADER
DC AL1(STEPSTRT-*)
DC C'TEST$BUF_&SYSDATE._&SYSTIME'
STEPSTRT DS 0H
$BUFFER
END
.
.
J.O.Skip Robinson
Southern California Edison Company
Electric Dragon Team Paddler
SHARE MVS Program Co-Manager
323-715-0595 Mobile
626-543-6132 Office ⇐=== NEW
[email protected]
-----Original Message-----
From: IBM Mainframe Discussion List [mailto:[email protected]] On Behalf
Of Jim Mulder
Sent: Saturday, May 12, 2018 10:13 AM
To: [email protected]
Subject: (External):Re: Problem with $BUFFER control block
The $BUFFER macro contains this line:
* $Z22LCKP=64BCKPT HJE77A0 140821 TJW: Use MVS IOB DSECT *
So I would guess that, starting with z.OS 2.2, you need to include
the SYS1.MACLIB(IEZIOB) DSECT in your program.
Jim Mulder z/OS Diagnosis, Design, Development, Test IBM Corp.
Poughkeepsie NY
>
> I'm embarrassed to ask this question, but I've been over the same
> ground many times to no avail. We have carried several SMF exits from
> release to release without complications. In moving from z/OS
> 2.1 to 2.3, we suddenly get an assembly error in $BUFFER that makes no
sense:
>
> 9476 $BUFFER
> 000018 9935+BUFIOBST DS XL(IOBLENG) Defin
> ASMA068S Length error - L(IOBLENG)
> ASMA435I Record 484 in SYS1.SHASMAC($BUFFER) on volume: R23DLB
> 9941+TPBMXREC EQU IOBINCAM,
> 1,C'C' Max R
> ASMA044E Undefined symbol - IOBINCAM
> ASMA435I Record 490 in SYS1.SHASMAC($BUFFER) on volume: R23DLB
> 9942+IOBECBSV EQU IOBINCAM+1,1 I/O
C
> ASMA044E Undefined symbol - IOBINCAM
> ASMA435I Record 491 in SYS1.SHASMAC($BUFFER) on volume: R23DLB
> 9943+TPBLCCC EQU IOBXTENT,
> 1,C'C' Last
> ASMA044E Undefined symbol - IOBXTENT
> ASMA435I Record 492 in SYS1.SHASMAC($BUFFER) on volume: R23DLB
> 9944+TPBLCCAD EQU IOBXTENT,
> 4,C'A' Addr
> ASMA044E Undefined symbol - IOBXTENT
> ASMA435I Record 493 in SYS1.SHASMAC($BUFFER) on volume: R23DLB
> 9945+IOBXTENT EQU IOBM,1,C'C' DEB e
> ASMA044E Undefined symbol - IOBM
> ASMA435I Record 494 in SYS1.SHASMAC($BUFFER) on volume: R23DLB
> 9952+ ORG BUFIOBST+
> (IOBSEEK-IOBDSEC
> ASMA080E Statement is unresolvable
> ASMA435I Record 501 in SYS1.SHASMAC($BUFFER) on volume: R23DLB
> 10013+ ORG BUFIOBST+
> (IOBSEEK-IOBDSEC
> ASMA080E Statement is unresolvable
> ASMA435I Record 563 in SYS1.SHASMAC($BUFFER) on volume: R23DLB
> 000050 10085+HDBID DS CL4'HDB'
Eyecatche
> 0000D8 10257+ DC 0S((BUFSTART-
> BFPDSECT)-(B
> ASMA028E Invalid displacement
> ASMA435I Record 809 in SYS1.SHASMAC($BUFFER) on volume: R23DLB
> Assembler Done 9 Statements Flagged / 12 was Highest Severity Code
>
> I can't understand the undefined symbols. I'm able to recreate the
> 2.1 exit code using the 2.1 release libraries. Symbol IOBLENG for
> example simply is not defined in the 2.3 release even though the
> symbol is used. Am I missing something transparently obvious?
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN