DanielCChen wrote:

> Can you please explain why you want to link the static library by default? 
> For example, Clang has these options 
> https://clang.llvm.org/docs/ClangCommandLineReference.html#cmdoption-clang-static-libgcc
>  that allow users to force the static linking, and, I think, by default it 
> links shared compiler support libraries.
> 
> Also, how does the full path linking of the shared library works with 
> `-frtlib-add-rpath`?

The `flang-rt` cmake is using the similar frame work to how `compiler-rt` is 
built. It publishes `libflang_rt.runtime.*` to the Clang `resource_dir` no 
matter if it is static or shared although `resource_dir` is normally for static 
libs. As your link points out, unlike Clang, Flang currently does not have a 
compiler option to switch between linking to the static or shared `flang-rt`, 
so the current order in this PR does not dictate the default.  
As the next step, I am planning to add a compiler option `-static-libflang_rt` 
that is similar to `-static-libgcc` for that purpose (or `-dynamic-libflang_rt` 
if we decide to link static `flang-rt` as default).

As for the `frtlib-add-rpath`, The current code before this PR is passing 
`-L/resource_dir/ -lflan_rt.runtime` to the linker. If the shared `flang-rt` is 
present in the `resource_dir`, the linker "prefers" the shared `flang-rt`. 
Users will need to specify `-frtlib-add-rpath` in order to link to the shared 
`flang-rt`. 
The full path linking should not affect that behavior. Users still need the 
`-frtlib-add-rpath` option to link to the shared `flang-rt` with full path 
name. 

I actually missed that in the shared path in this PR. I will push an amendment.

https://github.com/llvm/llvm-project/pull/134362
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to