[PATCH] D67195: Adding support for overriding LLVM_ENABLE_RUNTIMES for runtimes builds.

Petr Hosek via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Sep 10 17:36:02 PDT 2019


phosek added a comment.

I think I see the issue, if you look at `LLVMExternalProjectUtils.cmake`, it uses the following logic for `PASSTHROUGH_PREFIXES`:

  list(APPEND ARG_PASSTHROUGH_PREFIXES ${nameCanon})
  foreach(prefix ${ARG_PASSTHROUGH_PREFIXES})
    foreach(variableName ${variableNames})
      if(variableName MATCHES "^${prefix}")
        string(REPLACE ";" "|" value "${${variableName}}")
        list(APPEND PASSTHROUGH_VARIABLES
          -D${variableName}=${value})
      endif()
    endforeach()
  endforeach()

We then set `LIST_SEPARATOR |` when invoking `ExternalProject_Add`.

Changing the list separator is really critical when passing through lists, as is the case for `LLVM_ENABLE_RUNTIMES` where the value would typically be `-DLLVM_ENABLE_RUNTIMES=compiler-rt;libcxx;libcxxabi;libunwind`. With your change, only the first value (i.e. `compiler-rt`) would be passed through to the `llvm_ExternalProject_Add` and the rest will be dropped hence this error we're seeing (because none of the other runtimes was built).


Repository:
  rL LLVM

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D67195/new/

https://reviews.llvm.org/D67195





More information about the llvm-commits mailing list