[clang] [llvm] [OpenMP] Remove 'libomptarget.devicertl.a' fatbinary and use static library (PR #126143)

Joseph Huber via llvm-commits llvm-commits at lists.llvm.org
Sat Apr 19 10:22:07 PDT 2025


jhuber6 wrote:

> No, I'm afraid that didn't change anything. However, it did if I added it to `target_link_options` too.
> 
> That said, you want to instead:
> 
> ```diff
> --- a/offload/DeviceRTL/CMakeLists.txt
> +++ b/offload/DeviceRTL/CMakeLists.txt
> @@ -132,7 +132,7 @@ function(compileDeviceRTLLibrary target_name target_triple)
>      BUILD_RPATH ""
>      INSTALL_RPATH ""
>      RUNTIME_OUTPUT_NAME libomptarget-${target_name}.bc)
> -  target_compile_options(libomptarget-${target_name} PRIVATE "--target=${target_triple}")
> +  target_compile_options(libomptarget-${target_name} PRIVATE "--target=${target_triple}" "-march=")
>    target_link_options(libomptarget-${target_name} PRIVATE "--target=${target_triple}"
> -                      "-r" "-nostdlib" "-flto" "-Wl,--lto-emit-llvm")
> +                      "-r" "-nostdlib" "-flto" "-Wl,--lto-emit-llvm" "-march=")
>    install(TARGETS libomptarget-${target_name}
> ```
> 
> without the `''` since that gets passed literally, and triggers warnings about `''` being an invalid target :-).

Alright, thanks. Do you want to make a PR for that? Sorry this is a little disruptive but I think this is long overdue. After I land the follow up you'll need to do a separate standalone build for the GPU portions, since they'd be considered different cross-compiling libraries. It's a much more straightforward model I'm trying to move all the existing GPU runtimes to.

https://github.com/llvm/llvm-project/pull/126143


More information about the llvm-commits mailing list