[clang] [Clang] Introduce 'clang-nvlink-wrapper' to work around 'nvlink' (PR #96561)

Artem Belevich via cfe-commits cfe-commits at lists.llvm.org
Mon Jul 15 15:25:08 PDT 2024


================
@@ -0,0 +1,64 @@
+====================
+Clang nvlink Wrapper
+====================
+
+.. contents::
+   :local:
+
+.. _clang-nvlink-wrapper:
+
+Introduction
+============
+
+This tools works as a wrapper around the NVIDIA ``nvlink`` linker. The purpose 
+of this wrapper is to provide an interface similar to the ``ld.lld`` linker 
+while still relying on NVIDIA's proprietary linker to produce the final output. 
+Features include, static archive (.a) linking, LTO, and accepting files ending 
+in ``.o`` without error.
----------------
Artem-B wrote:

This is written from a standpoint of someone already familiar with nvlink quirks. For the rest of the world "support fo static linking with .a and object files ending in .o" will be somewhat baffling. "Isn't how things already work?"

I'd rephrase it a bit along the lines of. "nvlink has a number of known quirks that make its use in a unified HIP/CUDA/OpenMP compilation pipeline problematic" followed by the list of those quirks. The wrapper isolates those differences and presents an interface close enough to ld.lld to simplify the integration.

Does it make sense?

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


More information about the cfe-commits mailing list