[LLVMdev] Status of the PowerPC-Darwin ports

David Fang fang at csl.cornell.edu
Fri Jan 3 21:36:05 PST 2014

Happy New Year clang-sters and llvm-ites!

>From the Because-You-Can Department, I thought I'd take a moment to share 
with everyone the progress of the powerpc-darwin port of LLVM and clang. 
I continue to maintain long-lived branches at github/fangism, doing 
roughly weekly merges form trunk.  This 'pet' project is alive and well 
and has made significant progress in the last few months.  The 'team' has 
doubled in numbers, thanks to Iain Sandoe, long-time GCC powerpc-darwin 

Here'w where we stand:
* Stage-1 still builds using the system compiler, g++-4.0, at -O2
 	Can compile mach-o/PIC objects, shared libraries.
* Only weeks ago did stage-2 finish for the first time ever at -O0
 	 -no-integrated-as, with one tiny workaround.
 	 -O1 blocked by bug 14579.
* In last few days, stage-3 finished a -O0 build (taking 3+ days)
 	A handful of objects mis-compare against stage-2.
* In recent weeks, using Iain Sandoe's EH-frame patches, I've built libc++
 	 against the system libsupc++, -O0, and passes over 95% of tests.

Latest test results of stage-1:
http: //www.csl.cornell.edu/~fang/sw/llvm/logs/llvm-r197897-O2-powerpc-darwin8-g++-4.0.1-debug-check.log.bz2
http: //www.csl.cornell.edu/~fang/sw/llvm/logs/clang-r197897-O2-powerpc-darwin8-g++-4.0.1-debug-check.log.bz2

Stage-2 test results:
http: //www.csl.cornell.edu/~fang/sw/llvm/logs/llvm-r197897-O0-powerpc-darwin8-g++-4.0.1-stage-2-check.log.bz2
http: //www.csl.cornell.edu/~fang/sw/llvm/logs/clang-r197897-O0-powerpc-darwin8-g++-4.0.1-stage-2-check.log.bz2

libc++ test results:

Known issues (filed):
* EH-frame fix for system libunwind compatibility (Iain's patch)
* ABI data-layout/alignment issues
* Various CodeGen and miscompilation issues

Immediate tasks:
* I need help identifying which recent commits fixed bugs 15901 and 15965, 
which unblocked stage-2 on trunk, so that I might try to backport to 
powerpc-darwin's release 3.4 branch.  It was something that affected CodeGen.

Wishes (not all realistic):
* Get a -O1 bootstrap working.  3 days to build stage-3 is too painful.
* FIx most or all libc++(libsupc++) test failures.
* Keep stage-1 buildable with g++-4.0 for one (more) release cycle.
 	This conflicts with the push to require C++11 in stage-1.
* FIx most or all libc++(libsupc++) test failures.
* Use a relatively stable powerpc-darwin clang to bootstrap the next clang
 	that requires C++11, using libc++.

I keep a status page with more logs, bugs, and wishes:

I want to take a moment thank everyone who's pointed me in the right direction 
for diagonstics and patches, or even fixed issues I've reported (sometimes 
unknowingly).  You've been a tremendous help over email and IRC, and made 
these accomplishments possible.

"Keeping the legacy alive"


David Fang

More information about the llvm-dev mailing list