Ensure that your applications do not use removed z/OS UNIX APIs

Description

Before z/OS V2R1, certain z/OS UNIX application programming interfaces (APIs) were available. Starting with z/OS V2R1, they are no longer available.

Table 1 provides more details about this migration action. Use this information to plan your changes to the system.

Table 1. Information about this migration action
Element or feature: z/OS UNIX.
When change was introduced: z/OS V2R1.
Applies to migration from: z/OS V1R13.
Timing: Before installing z/OS V2R2.
Is the migration action required? Yes, if your installation has C/C++ or Assembler language applications that explicitly invoke z/OS UNIX application programming interfaces.
Target system hardware requirements: None.
Target system software requirements: None.
Other system (coexistence or fallback) requirements: None.
Restrictions: None.
System impacts: This change does not affect the z/OS system itself but might cause applications or products other than z/OS to give erroneous results or behave unexpectedly.
Related IBM Health Checker for z/OS check: None.

Steps to take

Check three interfaces to see if the removed services are being used.
  1. Scan the source code for use of the following z/OS UNIX application programming interfaces:
    • The _osenv() syscall
      • For Assembler language programs, search for BPX1OSE and BPX4OSE.
      • For C or C++ code, search for calls to the _osenv() service.
    • The pthread_quiesce_and_get_np() syscall
      • For Assembler language programs, search for BPX1PQG and BPX4PQG.
      • For C or C++ code, search for calls to the pthread_quiesce_and_get_np() service.
    • The QUICK_FREEZE_EXIT_REG option of oe_env_np()
      • For Assembler language programs, search for BPX1ENV and BPX4ENV.
      • There is no C/C++ interface that allows direct use of the QUICK_FREEZE_EXIT_REG option. If you find use of the BPX1ENV or BPX4ENV service, check whether the QUICK_FREEZE_EXIT_REG option is specified. If you do use this option, verify that you have code that invokes the pthread_quiesce_and_get_np() service (in XL C/C++) or calls BPX1PQG or BPX4PQG. If you do not have code that calls the pthread_quiesce_and_get_np() service, then you do not need to invoke the BPX1ENV or BPX4ENV service with the QUICK_FREEZE_EXIT_REG option. Remove that call from your application.
  2. If your applications use any of these interfaces, update the applications to either eliminate the calls or handle the new return code and reason code that the removed interfaces will return.