[RFC] July Update: Progress report on CMake build system's ability to replace autoconf


The following issues have been fixed since the last update I sent out.

* Bug 19462 - Use the INSTALL(EXPORT ...) to export CMake definitions
* Bug 21561 - Update release scripts to use CMake

These issues are still outstanding. Classification of blocking vs non-blocking are my own opinions, please let me know if you disagree. All non-blocking issues are still serious bugs that need to be fixed.

Blocking Issues:
* Bug 14109 - CMake build for compiler-rt should use just-built clang
* Bug 14200 - -fno-rtti not in cxxflags given by llvm-config
* Bug 21562 - Add a CMake equivalent for make/platform/clang_darwin.mk in compiler_rt
* Bug 21568 - Cannot add rpath
* Bug 23947 - CMake+Mips: find_library() doesn't work correctly when recursing 64-bit (both N32 and N64 ABI's) compiler on Debian Jessie

Non-Blocking Issues:
* Bug 19875 - libraries and executables need different rpaths
* Bug 22466 - cmake build should provide way to run tablegen with no arguments
* Bug 23746 - test-suite lacks CMake support
* Bug 24157 - CMake built shared library does not export all public symbols

Other issues not tracked by bugs:

* FreeBSD seemed to have problems with CMake identifying itself as amd64 causing x86_64 tests to fail
* Migrating buildbots
* We need to make sure libc++ works properly on Darwin
* Put together a “cheat sheet” document for transitioning

I have another RFC titled "[RFC] Road map for CMake” which I’ll be sending shorty to discuss PR 14109 and PR21562 in more detail.


Hi Chris,

Looking forward to continued support for CMake!

Along that note, I wanted to add one bug to your list of things to track, which to me seems up your alley but maybe was filed in the wrong bucket (or is actually someone else’s problem).

Bug 24154 - CMake shared files are broken in llvm-3.7-dev


Hi Brenden,

Thanks for the heads up. I don’t expect that to be a blocker for deprecating autoconf because autoconf doesn’t have an equivalent of LLVMExports.cmake. That said it is a real issue and I’ll track it with the other issues on this list, and I’ve added it as a dependency on the meta bug (PR15732) to make it easier to keep track of.


Perfect, thanks Chris.