Steps for diagnosing errors that occur at IPA Link time
About this task
Perform the following steps to diagnose errors that occur at IPA Link time:
Procedure
- Ensure that the region that is used for the IPA link step
is sufficient. The REGION system parameter should be set to at least
1500 MB and the MEMLIMIT system parameter should be set to at least
3000 MB. For further information, see Specifying compiler options under z/OS UNIX.
_______________________________________________________________
- Ensure that the object module which defines main() contains
an IPA object.
_______________________________________________________________
- Ensure that all application program parts (object modules,
load modules) and all necessary interface libraries (Language Environment® object
modules and load module, SQL, CICS®,
etc) are made available to the IPA link step.
_______________________________________________________________
- Ensure that the IPA compile step has processed all object
modules for which source is available.
_______________________________________________________________
- Use the IPA(LINK,MAP) option to obtain an IPA Link listing.
_______________________________________________________________
- Do not attempt to IPA Link unsupported file formats, such
as Program Objects.
_______________________________________________________________
- Verify that there are no unresolved symbol references.
All user symbols must be resolved before invoking the binder (or prelinker
and linkage editor). Any runtime symbol references generated by IPA
Link must be resolved by the subsequent step to that no unresolved
symbols remain.
If you have unresolved symbols, make sure that the definition of an object and all its references are used consistently in both the code area and the writable static area. Also, make sure that symbol references appear consistently in the same case.
If you have unresolved symbols after using autocall, and you are searching for longnamed or writable static objects, make sure that each object module library has a current directory generated by the C370LIB utility. Without this directory, autocall can only be done on the member name of the object module and not on what is actually defined within the member.
_______________________________________________________________
- If problems occur during IPA Link processing of DLL code,
note that a symbol can only be imported if all of the following conditions
hold true:
- The symbol remains unresolved after autocall
- Only DLL references were seen for the symbol
- An IMPORT control statement was encountered for the symbol
_______________________________________________________________
- A compiler ABEND during IPA link step processing can indicate
an error in the compiler. An unsuccessful IPA Link due to an error
in the program source code, an invalid object module, an invalid load
module, or an error from the operating system should result in error
messages, not an ABEND. If the compiler ABEND during IPA link step processing is related to an invalid IPA object module, it will require further diagnosis:
- Save and recompile any IPA object modules created by a previous release. If the problem is corrected, contact IBM® service and be prepared to supply the relevant source (PPONLY) and IPA object modules. Try compiling at OPT(2), and then OPT(2) plus IPA(OBJECT,NOLINK). If you are linking with IPA Level 2, try linking with Level 1. Ensure that you have first tried lower optimization levels. Perform a binary search for the invalid IPA object module. To do this, compile one half of your source files with NOIPA, and the other half with IPA. When the IPA Link succeeds, reduce the set of NOIPA objects until you identify the compilation unit which produced the invalid IPA objects. Note that the object module which defines main() must always contain IPA object. It might be necessary to break the source file with main() into multiple pieces to determine the point of failure.
_______________________________________________________________
- When you compile extremely
complex applications using IPA optimization, the IPA work file (SYSUTIP)
might become so big that there is not enough contiguous file space
for the IPA work file to be dynamically allocated. To solve this problem,
you can add the following attributes in the work file to allocate
permanent files with sufficient space:
These file attributes are also required for user-allocated temporary files. Any existing user JCL that allocates SYSUTIP DD must be updated to include the new file attributes.RECFM=U, BLKSIZE=32000, DSNTYPE=LIBRARY
Results
You should now have a clean IPA Link compilation. If you still have a problem with the IPA link step, contact IBM support.