zeromq / zeromq4-x

ØMQ 4.x stable release branch - bug fixes only
GNU General Public License v3.0
457 stars 194 forks source link

z/OS UNIX System Services port #89

Closed ewenmcneill closed 10 years ago

ewenmcneill commented 10 years ago

Ported ZeroMQ 4.0.x to z/OS UNIX System Services, building with IBM XL C/C++ compiler.

New builds/zos directory contains scripts needed to build libzmq, build tests, and run tests on z/OS. builds/zos/README.md describes the build process, and portability considerations found during porting, as well as how to transfer source from GitHub to z/OS system for building.

tests/test_fork.cpp is updated from builds/zos/test_fork.cpp during building the tests to add a short alarm() call to ensure the test terminates, and thus the test suite finishes; test_fork.cpp is XFAILed on z/OS because it relies on non-portable functionality. (See builds/zos/README.md for details.)

The only substantial in-source changes is src/signaler.cpp which adds functions to loop on close() if EAGAIN is received, rather than assuming it will always succeed immediately. This avoids periodic failures of random tests due to EAGAIN ("Resource Temporarily Unavailable").

There is a also a z/OS specific change in tests/testutil.hpp to avoid failure on SIGPIPE; see builds/zos/README.md for details.

(The majority of these changes are cherry-picked from libzmq port to z/OS UNIX System Services.)