z/OS UNIX considerations

To create a nested enclave under z/OS UNIX, you must either:
  • Be running with POSIX(OFF) and issue system(), or
  • Be running with POSIX(ON) and have set the environment variables to signal that you want to establish a nested enclave. You can use the __POSIX_SYSTEM environment variable to cause a system() to establish a nested enclave instead of performing a spawn(). __POSIX_SYSTEM can be set to NO, No, or no.

The system() function is not thread safe. It cannot be called simultaneously from more than one thread. A multi-threaded application must ensure that no more than one system() call is ever outstanding from the various threads. If this restriction is violated, unpredictable results may occur. In a multiple enclave environment, the first enclave must be running with POSIX(ON) and all other nested enclaves must be running with POSIX(OFF).