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

  1. 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.

    _______________________________________________________________

  2. Ensure that the object module which defines main() contains an IPA object.

    _______________________________________________________________

  3. 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.

    _______________________________________________________________

  4. Ensure that the IPA compile step has processed all object modules for which source is available.

    _______________________________________________________________

  5. Use the IPA(LINK,MAP) option to obtain an IPA Link listing.

    _______________________________________________________________

  6. Do not attempt to IPA Link unsupported file formats, such as Program Objects.

    _______________________________________________________________

  7. 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.

    _______________________________________________________________

  8. 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

    _______________________________________________________________

  9. 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.

    _______________________________________________________________

  10. 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:
    RECFM=U, BLKSIZE=32000, DSNTYPE=LIBRARY
    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.

Results

You should now have a clean IPA Link compilation. If you still have a problem with the IPA link step, contact IBM support.