[RFC] Remove Darwin support from POWER Backends

Hi all,
I just posted two patches on phabricator to remove Darwin support from the POWER backend.

I thought I had posted this on the dev mailing list some time ago, but I cannot find a reference to it now.

The intention here is to cleanup the POWER backend. Darwin has not been supported on POWER for quite some time now, and we’d like to use this as an opportunity to clean up several aspects of the backend code. If there is any concerns with this, please let me know.

As for the approach, the patch that I posted will issue an error message from the backend if you attempt to use the Darwin ABI on PPC. The intention is that once this patch lands, all of the Darwin-specific code paths will essentially be dead-code, and we can remove them on demand as we’re touching various pieces of code. This cleanup should be done in stand-alone patches, but can be done as NFC changes and thus reviewed post-commit, whenever possible.

I’ve cleaned up all of the test cases effected by this, mostly by converting them to a different powerpc target so as to not lose test coverage. There were a few tests that were ppc-darwin specific, which were removed.

There is a companion patch to clean up test cases in Clang as well. I think we can use a similar approach for cleaning up ppc-specific darwin code in Clang, although I don’t have a good idea right now for how much cleanup that will be.


I know we spoke on IRC and at the dev meeting, but a good email here helps too. I’ve added Hal and Iain explicitly here since we’ve had talks with both of them about this.

For the record: I’m in favor of this.



Added data points. Much of the support for targeting PowerPC has been removed from Apple’s supported tools for years now, and we’ve more or less officially stopped supporting building for 10.5 at this point. We even recently dropped support for 10.4 x86. I recently cleaned up some of the Darwin driver code to remove functionality that is broken with Xcode 10 (currently in beta) see r339807, which means clang no longer supports 10.5 and earlier.


:disappointed_relieved: it was nice knowing you darwin/ppc, but it is now time to say goodbye. +1 from me.


Thanks for the feedback everyone.

Does anyone know if there are any remaining darwin/ppc build bots? I looked but could not find any yesterday. I think that is the last thing to take care of before committing the patches.



Not that I know of… if they break we can just ignore them :slight_smile:


Thanks, Kit. To connect the two threads, the last RFC we had on this subject was here: - it looks like we’re all now in agreement to move forward. This is reasonable. Please proceed. -Hal