diff --git a/clang/include/clang/Driver/SyclInstallationDetector.h b/clang/include/clang/Driver/SyclInstallationDetector.h index 7ef9a76cc36f7..33a7a0f94e01e 100644 --- a/clang/include/clang/Driver/SyclInstallationDetector.h +++ b/clang/include/clang/Driver/SyclInstallationDetector.h @@ -36,8 +36,8 @@ class SYCLInstallationDetector { void addSYCLIncludeArgs(const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const; - // Return the filesystem path to the SYCL runtime library (libsycl.so), that - // was detected. + // Return the filesystem path to the SYCL runtime library (libLLVMSYCL.so), + // that was detected. StringRef getSYCLRTLibPath() const { return SYCLRTLibPath; } void print(llvm::raw_ostream &OS) const; diff --git a/clang/lib/Driver/ToolChains/Linux.cpp b/clang/lib/Driver/ToolChains/Linux.cpp index d8370d2219391..47a919353516b 100644 --- a/clang/lib/Driver/ToolChains/Linux.cpp +++ b/clang/lib/Driver/ToolChains/Linux.cpp @@ -877,7 +877,8 @@ void Linux::addOffloadRTLibs(unsigned ActiveKinds, const ArgList &Args, if (ActiveKinds & Action::OFK_HIP) Libraries.emplace_back(RocmInstallation->getLibPath(), "libamdhip64.so"); else if (ActiveKinds & Action::OFK_SYCL) - Libraries.emplace_back(SYCLInstallation->getSYCLRTLibPath(), "libsycl.so"); + Libraries.emplace_back(SYCLInstallation->getSYCLRTLibPath(), + "libLLVMSYCL.so"); for (auto [Path, Library] : Libraries) { if (Args.hasFlag(options::OPT_frtlib_add_rpath, diff --git a/clang/lib/Driver/ToolChains/SYCL.cpp b/clang/lib/Driver/ToolChains/SYCL.cpp index 2a50df84e2850..743583d76c33d 100644 --- a/clang/lib/Driver/ToolChains/SYCL.cpp +++ b/clang/lib/Driver/ToolChains/SYCL.cpp @@ -26,15 +26,17 @@ SYCLInstallationDetector::SYCLInstallationDetector( const Driver &D, const llvm::Triple &HostTriple, const llvm::opt::ArgList &Args) : D(D), InstallationCandidates() { - // Detect the presence of the SYCL runtime library (libsycl.so) in the + // Detect the presence of the SYCL runtime library (libLLVMSYCL.so) in the // filesystem. This is used to determine whether a usable SYCL installation // is available for the current driver invocation. StringRef SysRoot = D.SysRoot; SmallString<128> DriverDir(D.Dir); + SmallString<128> LibPath(DriverDir); + llvm::sys::path::append(LibPath, "..", "lib", HostTriple.str(), + "libLLVMSYCL.so"); if (DriverDir.starts_with(SysRoot) && - (Args.hasArg(options::OPT_fsycl) || - D.getVFS().exists(DriverDir + "/../lib/libsycl.so"))) { - llvm::sys::path::append(DriverDir, "..", "lib"); + (Args.hasArg(options::OPT_fsycl) || D.getVFS().exists(LibPath))) { + llvm::sys::path::append(DriverDir, "..", "lib", HostTriple.str()); SYCLRTLibPath = DriverDir; } InstallationCandidates.emplace_back(D.Dir + "/.."); diff --git a/clang/test/Driver/Inputs/SYCL/libsycl.ll b/clang/test/Driver/Inputs/SYCL/libLLVMSYCL.ll similarity index 100% rename from clang/test/Driver/Inputs/SYCL/libsycl.ll rename to clang/test/Driver/Inputs/SYCL/libLLVMSYCL.ll diff --git a/clang/test/Driver/link-device-code.test b/clang/test/Driver/link-device-code.test index 231f02b6560e0..eb75eaf1fe5c2 100644 --- a/clang/test/Driver/link-device-code.test +++ b/clang/test/Driver/link-device-code.test @@ -3,12 +3,12 @@ # RUN: llvm-as %S/Inputs/SYCL/foo.ll -o %t.foo.bc # RUN: llvm-as %S/Inputs/SYCL/bar.ll -o %t.bar.bc # RUN: llvm-as %S/Inputs/SYCL/baz.ll -o %t.baz.bc -# RUN: llvm-as %S/Inputs/SYCL/libsycl.ll -o %t.libsycl.bc +# RUN: llvm-as %S/Inputs/SYCL/libLLVMSYCL.ll -o %t.libLLVMSYCL.bc # RUN: clang-sycl-linker %t.foo.bc %t.bar.bc -triple=spirv64 --dry-run -o a.spv --print-linked-module 2>&1 | FileCheck %s --check-prefix=CHECK-SIMPLE # RUN: not clang-sycl-linker %t.bar.bc %t.baz.bc -triple=spirv64 --dry-run -o a.spv --print-linked-module 2>&1 | FileCheck %s --check-prefix=CHECK-MULTIPLE-DEFS -# RUN: clang-sycl-linker %t.foo.bc %t.bar.bc -device-libs=%t.libsycl.bc -library-path= -triple=spirv64 --dry-run -o a.spv --print-linked-module 2>&1 | FileCheck %s --check-prefix=CHECK-DEVICE-LIB +# RUN: clang-sycl-linker %t.foo.bc %t.bar.bc -device-libs=%t.libLLVMSYCL.bc -library-path= -triple=spirv64 --dry-run -o a.spv --print-linked-module 2>&1 | FileCheck %s --check-prefix=CHECK-DEVICE-LIB ; CHECK-SIMPLE: define {{.*}}foo_func1{{.*}} ; CHECK-SIMPLE: define {{.*}}foo_func2{{.*}} diff --git a/clang/test/Driver/sycl-offload-jit.cpp b/clang/test/Driver/sycl-offload-jit.cpp index 1bd980f38a936..a1d4865db6ee6 100644 --- a/clang/test/Driver/sycl-offload-jit.cpp +++ b/clang/test/Driver/sycl-offload-jit.cpp @@ -29,13 +29,13 @@ // CHK-DEVICE-TRIPLE-SAME: "-O2" // CHK-DEVICE-TRIPLE: llvm-offload-binary{{.*}} "--image=file={{.*}}.bc,triple=spir64-unknown-unknown,arch=generic,kind=sycl{{.*}}" -// Check if path to libsycl.so is passed to clang-linker-wrapper tool by default for SYCL compilation. +// Check if path to libLLVMSYCL.so is passed to clang-linker-wrapper tool by default for SYCL compilation. // The test also checks if SYCL header include paths are added to the SYCL host and device compilation. // INTEL-RUN: %clang --offload-new-driver -### --target=x86_64-unknown-linux-gnu -fsycl %s 2>&1 \ // RUN: | FileCheck -check-prefixes=CHECK-LSYCL,CHECK-SYCL-HEADERS-HOST,CHECK-SYCL-HEADERS-DEVICE %s // CHECK-SYCL-HEADERS-DEVICE: "-fsycl-is-device"{{.*}} "-internal-isystem" "{{.*}}bin{{[/\\]+}}..{{[/\\]+}}include" // CHECK-SYCL-HEADERS-HOST: "-fsycl-is-host"{{.*}} "-internal-isystem" "{{.*}}bin{{[/\\]+}}..{{[/\\]+}}include" -// CHECK-LSYCL: clang-linker-wrapper{{.*}} "{{.*}}bin{{[/\\]+}}..{{[/\\]+}}lib{{[/\\]+}}libsycl.so" +// CHECK-LSYCL: clang-linker-wrapper{{.*}} "{{.*}}bin{{[/\\]+}}..{{[/\\]+}}lib{{[/\\]+}}x86_64-unknown-linux-gnu{{[/\\]+}}libLLVMSYCL.so" /// Check -fsycl-is-device is passed when compiling for the device. /// Check -fsycl-is-host is passed when compiling for host.