Meinersbur wrote: > Question about multi-versioning. Say I want to 1. build flang, 2. build > flang_rt with -O0 -g out of tree, 3. build flang_rt with -O3 out of tree. > > When I am trying that with the patch, step 3. build and install libflang_rt.a > override the ones from setp 2. Is there a way/option to use the out-of-tree > build directory as the output directory for the build libflang_rt.a to build > different versions instead of the llvm/clang build directory? > > Note: I know it is currently not possible to do that, and I am asking because > your patch is a step towards that, which is great!
That's a good question. `LLVM_LIBRARY_OUTPUT_INTDIR` is what other runtimes use, e.g. libc++: https://github.com/llvm/llvm-project/blob/69d66fafec968b17f84e30bc09faffb3dc8e5f15/libcxx/CMakeLists.txt#L433 and hence should have the same behavior. The LLVM_ENABLE_RUNTIMES system explicitly intends runtimes to write into that directory, indicated by a comment: https://github.com/llvm/llvm-project/blob/69d66fafec968b17f84e30bc09faffb3dc8e5f15/runtimes/CMakeLists.txt#L81-L84 The comment seems to imply it is intended for the bootstrap build only, but the behavior is the same for runtimes builds[^1]. IMHO in a runtimes build, in no circumstance should the build write into the outside LLVM build dir (`LLVM_BINARY_DIR`), as different runtimes may conflict as you observed, but also may change behavior of that LLVM build itself such as different libraries prioritized in the search path (e.g. suddenly uses libc++ instead the host system's). So `LLVM_LIBRARY_OUTPUT_INTDIR` is what other runtime libraries use to write their artifact to, but I no longer think any newly written code should use it. I am going to change it. [^1]: As a special case, in bootstrap builds the compiler-rt builtin library output dir from outside the runtime build, as IMHO it should be done for all runtimes: https://github.com/llvm/llvm-project/blob/main/llvm/runtimes/CMakeLists.txt#L93-L94 https://github.com/llvm/llvm-project/pull/110217 _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits