diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm index d870901c56a..2bb93a74f7b 100644 --- a/gnu/packages/llvm.scm +++ b/gnu/packages/llvm.scm @@ -1621,7 +1621,10 @@ AMDGPU code objects.") ;; #$rocm-hip-runtime. ;;(list "HIP_ROCCLR_HOME" '= (list #$rocm-hip-runtime)) - (list "HIP_PATH" '= (list #$output)) + + ;; HACK: allow `rocm-hip-runtime' to wrap this program + ;; with its own `HIP_PATH'. + (list "HIP_PATH" '= (list (string-append "${HIP_PATH:-" #$output "}"))) (list "HIP_CLANG_PATH" '= (list (string-append diff --git a/gnu/packages/rocm.scm b/gnu/packages/rocm.scm index c1129e67ac7..0a0e152bf82 100644 --- a/gnu/packages/rocm.scm +++ b/gnu/packages/rocm.scm @@ -225,7 +225,18 @@ and in-process/in-memory compilation.") (("LLVM_DIR=\"\\$4\"") "LLVM_DIR=\"$4\"; CLANG_DIR=\"$5\";") (("\\$LLVM_DIR/bin/clang") - (string-append "$CLANG_DIR/bin/clang")))))))) + (string-append "$CLANG_DIR/bin/clang"))))) + ;; Re-wrap programs taken from `rocm-hipcc' so their paths point to + ;; this package output. + (add-after 'install 'wrap-programs + (lambda _ + (let ((output-bindir (string-append #$output "/bin"))) + (for-each + (lambda (file) + (wrap-program (string-append output-bindir "/" file) + `("HIP_PATH" = ,(list #$output)) + `("PATH" suffix ,(list output-bindir)))) + '("hipcc" "hipconfig")))))))) (inputs (list glew mesa