llvm-project/clang/test/Driver/hip-runtime-libs-linux.hip
Joseph Huber e9677d1554
[HIP] Make --no-offloadlib not link HIP's RT (#177677)
Summary:
Right now we have `--no-hip-rt` to suppress the implicit linking of the
HIP runtime. However, we already have a flag for `--no-offloadlib` which
seems to imply this. However, this one currently only applies to the
device-side library. More targets will likely use this soon, so it would
be nice to unify the behavior here.

The impact of this change is that `-nogpulib` which is commonly used to
suppress the ROCm device libraries will now also suppress this, and
`--no-hip-rt` will suppress the ROCm device libraries. This is a
functional change, but I'm not sure if anyone truly relies on this
distinction in the wild. Functionally, one turns off the host runtime,
the other the device. This PR makes both do both at the same time. Since
these are libraries we should be able to just get users to pass them
manually if needed.
2026-01-30 09:55:50 -06:00

71 lines
3.1 KiB
Plaintext

// UNSUPPORTED: system-windows
// RUN: touch %t.o
// Test HIP runtime lib args specified by --rocm-path.
// RUN: %clang -### --hip-link --target=x86_64-linux-gnu \
// RUN: --rocm-path=%S/Inputs/rocm %t.o 2>&1 \
// RUN: | FileCheck -check-prefixes=ROCM-PATH %s
// Test HIP runtime lib args specified by environment variable ROCM_PATH.
// RUN: env ROCM_PATH=%S/Inputs/rocm %clang -### --hip-link \
// RUN: --target=x86_64-linux-gnu %t.o 2>&1 \
// RUN: | FileCheck -check-prefixes=ROCM-PATH %s
// RUN: %clang -### --hip-link --target=x86_64-linux-gnu \
// RUN: --rocm-path=%S/Inputs/rocm %t.o --offload-add-rpath 2>&1 \
// RUN: | FileCheck -check-prefixes=ROCM-RPATH %s
// RUN: %clang -### --hip-link --target=x86_64-linux-gnu \
// RUN: --rocm-path=%S/Inputs/rocm %t.o -frtlib-add-rpath 2>&1 \
// RUN: | FileCheck -check-prefixes=ROCM-RPATH %s
// Test that a canonical HIP runtime path is passed to the -rpath flag
// RUN: %clang -### --hip-link --target=x86_64-linux-gnu \
// RUN: --rocm-path=%S/Inputs/rocm/./bin/../include/../ %t.o -frtlib-add-rpath 2>&1 \
// RUN: | FileCheck -check-prefixes=ROCM-RPATH-CANONICAL %s
// Test detecting latest /opt/rocm-{release} directory.
// RUN: rm -rf %t && mkdir -p %t/opt
// RUN: cp -r %S/Inputs/rocm %t/opt/rocm-3.9.0-1234
// RUN: cp -r %S/Inputs/rocm %t/opt/rocm-3.10.0
// RUN: %clang -### --hip-link --target=x86_64-linux-gnu \
// RUN: --sysroot=%t %t.o 2>&1 \
// RUN: | FileCheck -check-prefixes=ROCM-REL %s
// Test HIP runtime lib is not linked without --hip-link.
// RUN: %clang -### --target=x86_64-linux-gnu \
// RUN: --rocm-path=%S/Inputs/rocm %t.o 2>&1 \
// RUN: | FileCheck -check-prefixes=NOHIPRT %s
// Test HIP runtime lib is not linked with -nostdlib.
// RUN: %clang -### --hip-link -nostdlib --target=x86_64-linux-gnu \
// RUN: --rocm-path=%S/Inputs/rocm %t.o 2>&1 \
// RUN: | FileCheck -check-prefixes=NOHIPRT %s
// Test HIP runtime lib is not linked with -no-hip-rt.
// RUN: %clang -### --hip-link -no-hip-rt --target=x86_64-linux-gnu \
// RUN: --rocm-path=%S/Inputs/rocm %t.o 2>&1 \
// RUN: | FileCheck -check-prefixes=NOHIPRT %s
// RUN: %clang -### --hip-link --no-offloadlib --target=x86_64-linux-gnu \
// RUN: --rocm-path=%S/Inputs/rocm %t.o 2>&1 \
// RUN: | FileCheck -check-prefixes=NOHIPRT %s
// Test HIP runtime lib is not linked with -r.
// RUN: %clang -### --hip-link -r --target=x86_64-linux-gnu \
// RUN: --rocm-path=%S/Inputs/rocm %t.o 2>&1 \
// RUN: | FileCheck -check-prefixes=NOHIPRT %s
// Test HIP runtime lib is linked without hip-link if there is HIP input file.
// RUN: %clang -### --target=x86_64-linux-gnu -nogpuinc \
// RUN: --offload-arch=gfx908 --rocm-path=%S/Inputs/rocm %s 2>&1 \
// RUN: | FileCheck -check-prefixes=ROCM-PATH %s
// ROCM-PATH: "{{.*/Inputs/rocm/lib/libamdhip64.so}}" "-L[[HIPRT:.*/Inputs/rocm/lib]]"
// ROCM-RPATH: "-rpath" "{{.*/Inputs/rocm/lib}}"
// ROCM-RPATH-CANONICAL: "-rpath" "{{.*/rocm/lib}}"
// ROCM-REL: "{{.*/opt/rocm-3.10.0/lib/libamdhip64.so}}"
// NOHIPRT-NOT: "-L{{.*/Inputs/rocm/lib}}"
// NOHIPRT-NOT: "-rpath" "{{.*/Inputs/rocm/lib}}"
// NOHIPRT-NOT: "libamdhip64.so"