[PATCH] D33561: [CMake] Add Android toolchain CMake cache files.

Jonathan Roelofs via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Jul 18 13:41:16 PDT 2017


jroelofs added inline comments.


================
Comment at: cmake/caches/Android-stage2.cmake:37
+  set(RUNTIMES_${target}-linux-android_COMPILER_RT_INCLUDE_TESTS OFF CACHE BOOL "")
+  set(RUNTIMES_${target}-linux-android_LLVM_ENABLE_ASSERTIONS ON CACHE BOOL "")
+  set(RUNTIMES_${target}-linux-android_LLVM_ENABLE_THREADS OFF CACHE BOOL "")
----------------
pirama wrote:
> jroelofs wrote:
> > pirama wrote:
> > > Should we initialize it to LLVM_ENABLE_ASSERTIONS rather than defaulting to ON?  So assertions can be enabled/disabled for all targets with just one switch (and then over-ride with per-target flags, if necessary).
> > No. Absolutely not. Whether or not the bits of the toolchain that run on the host have assertions should be *completely* independent of whether the target bits do or don't. Do not conflate the host with the target.
> Maybe I wasn't clear.  I suggest that we don't set RUNTIMES_${target}_LLVM_ENABLE_ASSERTIONS to ON here and rather initialize it based on another flag.  I was incorrect to suggest we reuse LLVM_ENABLE_ASSERTIONS.  We should rather have something like ANDROID_RUNTIMES_ENABLE_ASSERTIONS.
> 
> The motivation is to reduce the number of additional flags/switches, under the assumption that assert-enabled or assert-disabled builds of the runtimes are generated simultaneously.
> 
> To generate assert-enabled builds, the invocation would be:
> 
> ```
> $ cmake ... -DANDROID_RUNTIMES_ENABLE_ASSERTIONS=ON
> 
> ```
> instead of
> 
> ```
> $ cmake ... -DRUNTIMES_armv7-linux-android_LLVM_ENABLE_ASSERTIONS=ON -DRUNTIMES-aarch64-linux-android_LLVM_ENABLE_ASSERTIONS=ON ...
> 
> ```
> If I understand CMake correctly, we can still enable assertions only for a particular target by:
> 
> ```
> $ cmake ...  -DANDROID_RUNTIMES_ENABLE_ASSERTIONS=OFF -DRUNTIMES-aarch64-linux-android_LLVM_ENABLE_ASSERTIONS=ON
> ```
Yeah, collecting them under a common default seems fine. The only thing I was objecting to was having that default be tied to the settings of the host part of the build.


https://reviews.llvm.org/D33561





More information about the cfe-commits mailing list