Skip to main content

Transaction Processing Facility (TPF) - Online Maintenance TPF Online Maintenance TPF Online Maintenance Skip to: Abstract | Comments | Solution | Related Segments | Migration | Download

SUBJECT:         APAR  NUMBER: PJ27180

            SEGMENT:  GENSIP40   - RELEASE:  TPF4  (Macro)
            SEGMENT:  SPGLB40    - RELEASE:  TPF4  (Macro)
            SEGMENT:  SPPBLD40   - RELEASE:  TPF4  (Macro)
            SEGMENT:  SPPGML40   - RELEASE:  TPF4  (Macro)


Pre-requisite APARs are:
FOR SEGMENT GENSIP40   (Macro)     - REL TPF4
 PJ17852  PJ17912  PJ19750  PJ19878
 PJ19966  PJ19938  PJ20279
 PJ21601  PJ21791  PJ21953  PJ22099
 PJ22169  PJ21907  PJ23128
 PJ22434  PJ24431  PJ23329  PJ24323
 PJ24530  PJ25084  PJ25094
 PJ25098  PJ25545  PJ25606  PJ25781
 PJ25780  PJ25817  PJ25844
 PJ25981  PJ26012  PJ26122  PJ26008
 PJ26575  PJ26576  PJ26683
 PJ26578  PJ26707  PJ27033  PJ27048
 PJ27075  PJ27291  PJ27328
 PJ27333
FOR SEGMENT SPGLB40    (Macro)     - REL TPF4
 PJ16331  PJ17852  PJ19949  PJ21044
 PJ21180  PJ21968  PJ23434
 PJ23917  PJ24481  PJ24989  PJ25084
 PJ25315  PJ24659  PJ26160
 PJ26365  PJ26578  PJ27291  PJ27387  PJ27328
FOR SEGMENT SPPBLD40   (Macro)     - REL TPF4
 PJ17852  PJ20388  PJ25084  PJ26578
 PJ27328
FOR SEGMENT SPPGML40   (Macro)     - REL TPF4
 PJ13509  PJ13579  PJ14357  PJ15.042
 PJ14858  PJ14605  PJ14437
 PJ16213  PJ15454  PJ14737  PJ14947
 PJ17852  PJ17912  PJ15728
 PJ19734  PJ19949  PJ19966  PJ19938
 PJ19866  PJ21121  PJ21044
 PJ20777  PJ21167  PJ21596  PJ21584
 PJ21592  PJ21791  PJ20388
 PJ21953  PJ22079  PJ22088  PJ22098
 PJ21706  PJ22170  PJ21709
 PJ22389  PJ21452  PJ21906  PJ21701
 PJ21705  PJ23148  PJ23128
 PJ22434  PJ23178  PJ23180  PJ23318
 PJ22937  PJ23312  PJ22843
 PJ23430  PJ23434  PJ23338  PJ21693
 PJ23297  PJ21694  PJ21708
 PJ24035  PJ23931  PJ23923  PJ23922
 PJ24344  PJ24025  PJ24472
 PJ23620  PJ23526  PJ24525  PJ24530
 PJ24563  PJ24548  PJ24622
 PJ24468  PJ23984  PJ24771  PJ24845
 PJ25084  PJ25094  PJ25098
 PJ25089  PJ25158  PJ25240  PJ25277
 PJ25266  PJ25207  PJ25174
 PJ23981  PJ25075  PJ25375  PJ25379
 PJ25491  PJ25199  PJ25425
 PJ25632  PJ25614  PJ25589  PJ25703
 PJ25720  PJ25332  PJ25760
 PJ25763  PJ25781  PJ25780  PJ25817
 PJ25982  PJ25983  PJ25981
 PJ26125  PJ25880  PJ26150  PJ26187
 PJ26008  PJ26156  PJ26161
 PJ26188  PJ26174  PJ26270  PJ26337
 PJ26374  PJ26366  PJ26283
 PJ25761  PJ26515  PJ26575  PJ26577
 PJ26534  PJ26683  PJ26522
 PJ26713  PJ26600  PJ26581  PJ26666
 PJ26693  PJ26686  PJ26809
 PJ26707  PJ26864  PJ26892  PJ26746
 PJ26793  PJ26841  PJ26887
 PJ26967  PJ27023  PJ27028  PJ21337
 PJ26904  PJ26890  PJ27079
 PJ26895  PJ27156  PJ27095  PJ27197  PJ27246  PJ27305  PJ27345
 PJ27231  PJ27277  PJ27351  PJ27387  PJ27328  PJ27383  PJ27083
 PJ27299  PJ27302  PJ27268  PJ27333  PJ27214  PJ27393  PJ27422
To be applied in the order listed for each segment.

ABSTRACT OF PROBLEM
___________________
SIP does not accommodate circular references at DLL link time.


COMMENTS ON PROBLEM
___________________
At DLL link time in SIP, one DLL can reference a definition side
deck  that  has  not  yet been created, and the DLL will fail to
link.


SOLUTION
________
To accommodate DLLs that make circular references, SIP now  does
prelink  only for a DLL and then does the prelink again with the
link.

There is a new program dependency table created by SPPBLD state-
ments in SPPGML, the DLL table.  A new keyword of 'DLL'  on  the
SPPBLD  macros  causes a table of DLL load modules to be created
and processed by GENSIP.

When GENSIP creates the stage II deck, it will create  JCL  that
first  does  a  prelink  of the DLL in order to create the defi-
nition side deck for the DLL.  At this time, a parameter  "NOER"
is  used  to  indicate  that  if  external  references  are  not
resolved, they should not afffect the return code of the prelink
job.  Additionally, the link is not run at this time.   Instead,
the  prelink  will  be  done  again later, this time looking for
external references, and the link will follow.

The user should note that when the initial prelink runs, the job
will return with a return code of FLUSH for  the  linkedit  job.
That is because the JCL instructs the linkeditor HEWL not to run
the linkedit portion of the job.

This  new  process  allows SIP to create all the definition side
decks for all DLLs and then run the prelink and link  jobs  that
will create the DLL load module.

There is one problem with this process:  if a DLL makes a refer-
ence  to an undefined writable static variable that has not been
created as part of a definition side deck, the job  will  get  a
return  code  of 4.   The prelink and link job that follows will
still run without error - only the first  of  the  two  prelinks
will get a return code of 4.

DEPENDENCIES
____________

Related Segments Affected By This APAR.
_______________________________________

Segments to be assembled or compiled:
SIP stage I

Segments to be link edited:

Load Modules to be loaded:

Migration Considerations
========================
Change all SPPBLD macros for user DLL load modules to have the
type parameter set to DLL instead of ICL.

-- END APAR PJ27180



Download file(s) using new Server: Login once to access server, leave window open, then click on link(s) below. Source