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.
71 lines
3.1 KiB
Plaintext
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"
|