[PATCH] D16653: [CMake] Support platform building builtins without a full toolchain

Chris Bieneman via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 27 15:22:38 PST 2016


beanz created this revision.
beanz added reviewers: iains, samsonov, jroelofs.
beanz added a subscriber: llvm-commits.
Herald added subscribers: emaste, srhines, danalbert, tberghammer, aemerson.

This patch adds support to building lib/builtins without a fully functioning toolchain. It allows you to bootstrap a cross-compiler, which previously couldn't be done with CMake.

This patch contains the following specific changes:

* Split builtin-specific code out of config-ix.cmake into builtin-config-ix.cmake
* Split some common CMake functionality needed by both builtins and sanitizers into base-config-ix.cmake
* Moved some macros and functions out of config-ix.cmake into more common places
* Added BuiltinTests.cmake which has some custom implementations of compiler testing that don't rely on having a functional liker or sysroot
* Made lib/builtins/CMakeLists.txt able to be a top-level CMake configuration

I realize this patch is quite large, and I can break parts of it apart. I wanted to present it as a monolithic piece so that the other changes make sense.

I have tested this on Darwin targeting embedded Darwin, and on FreeBSD x86_64 targeting FreeBSD AArch64.

http://reviews.llvm.org/D16653

Files:
  CMakeLists.txt
  cmake/Modules/AddCompilerRT.cmake
  cmake/Modules/BuiltinTests.cmake
  cmake/Modules/CompilerRTDarwinUtils.cmake
  cmake/Modules/CompilerRTUtils.cmake
  cmake/base-config-ix.cmake
  cmake/builtin-config-ix.cmake
  cmake/config-ix.cmake
  lib/builtins/CMakeLists.txt

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D16653.46185.patch
Type: text/x-patch
Size: 34436 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160127/53b6cf30/attachment-0001.bin>


More information about the llvm-commits mailing list