llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-clang Author: Nick Sarnie (sarnex) <details> <summary>Changes</summary> Without this flag a lot of tests error in the linker. --- Full diff: https://github.com/llvm/llvm-project/pull/181870.diff 2 Files Affected: - (added) clang/test/Tooling/clang-linker-wrapper-spirv.cpp (+10) - (modified) clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp (+7) ``````````diff diff --git a/clang/test/Tooling/clang-linker-wrapper-spirv.cpp b/clang/test/Tooling/clang-linker-wrapper-spirv.cpp new file mode 100644 index 0000000000000..80cc598eeedcf --- /dev/null +++ b/clang/test/Tooling/clang-linker-wrapper-spirv.cpp @@ -0,0 +1,10 @@ +// Verify spirv-link flags when called from clang-linker-wrapper +// REQUIRES: system-linux +// REQUIRES: spirv-tools +// REQUIRES: spirv-registered-target +// RUN: %clangxx -fopenmp -fopenmp-targets=spirv64-intel -nogpulib -v -o %t.o %s 2>&1 | FileCheck %s + +// CHECK: spirv-link{{.*}} --allow-partial-linkage +int main(int argc, char** argv) { + return 0; +} diff --git a/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp b/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp index 619e539857fc6..1e521a4a25418 100644 --- a/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp +++ b/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp @@ -528,6 +528,13 @@ Expected<StringRef> clang(ArrayRef<StringRef> InputFiles, const ArgList &Args, if (!Triple.isNVPTX() && !Triple.isSPIRV()) CmdArgs.push_back("-Wl,--no-undefined"); + if (Triple.isSPIRV()) { + // Some functions are provided by the GPU runtime, so + // allow some functions to be undefined. + CmdArgs.push_back("-Xlinker"); + CmdArgs.push_back("--allow-partial-linkage"); + } + for (StringRef InputFile : InputFiles) CmdArgs.push_back(InputFile); `````````` </details> https://github.com/llvm/llvm-project/pull/181870 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
