Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for z/OS compilers; Fixes #215 #216

Merged
merged 2 commits into from
Feb 12, 2024
Merged

Add support for z/OS compilers; Fixes #215 #216

merged 2 commits into from
Feb 12, 2024

Conversation

pitmanst
Copy link
Contributor

@pitmanst pitmanst commented Oct 2, 2023

This PR attempts to fix all issues mentioned in #215 as minimally as possible - I tried to isolate all z/OS changes to not cause any breakage for all other platforms. This change adds support for building C/C++ packages with distutils using the following compilers:

IBM C/C++ For Open Enterprise Languages on z/OS 2.0
IBM Open XL C/C++ 1.1 for z/OS
IBM XL C/C++ V2.4.1 for z/OS 2.4 and 2.5
IBM z/OS XL C/C++

The way this change works is that cpython on z/OS is built with CFLAGS that are compatible between the compilers, with the rest being in CFLAGS_NODIST. Then the compiler the user is using can be determined in distutils (checking CC/CXX/LDSHARED, or just the default), and the appropriate flags for that compiler can be added. For requiring the side deck, this is common between all compilers so no compiler specific option was used here.

Currently I cannot run the full distutils/setuptools test suite on z/OS due to there being rust dependencies in some of the packages being used to test and there is no rust compiler on z/OS. So I did the following to verify that the changes are correct:

  • Run the partial distutils test suite on z/OS with the various compilers
  • Run the distutils test suite on a Mac (ie verify no breakage due to this change on a separate platform)
  • Run the partial setuptools test suite on z/OS (tested with v68.2.2 + this change)
  • Installed 100~ packages with C/C++ sources in them for each compiler type using that new setuptools

@pitmanst
Copy link
Contributor Author

pitmanst commented Nov 3, 2023

Hi @jaraco, is there anything that I could do to help get this PR reviewed?

@jaraco jaraco merged commit 06d5663 into pypa:main Feb 12, 2024
15 of 16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants