[HIP] Use argv[0] as the default choice for the Executable name.
authorArtem Belevich <tra@google.com>
Thu, 29 Oct 2020 22:19:06 +0000 (15:19 -0700)
committerArtem Belevich <tra@google.com>
Tue, 3 Nov 2020 18:31:39 +0000 (10:31 -0800)
The path produced by getMainExecutable() may not be the right one when the files are installed in
a symlinked tree and when the real location of llvm-objdump is in a different directory.

Given that clang-offload-bundler is invoked by clang, the driver already does the job figuring out
the right path (e.g. it pays attention to -no-canonical-prefixes).
Offload bundler should use it, instead of trying to figure out the path on its
own.

Differential Revision: https://reviews.llvm.org/D90436

clang/tools/clang-offload-bundler/ClangOffloadBundler.cpp

index e4a32d5..44c46a8 100644 (file)
@@ -1025,7 +1025,9 @@ int main(int argc, const char **argv) {
 
   // Save the current executable directory as it will be useful to find other
   // tools.
-  BundlerExecutable = sys::fs::getMainExecutable(argv[0], &BundlerExecutable);
+  BundlerExecutable = argv[0];
+  if (!llvm::sys::fs::exists(BundlerExecutable))
+    BundlerExecutable = sys::fs::getMainExecutable(argv[0], &BundlerExecutable);
 
   if (llvm::Error Err = Unbundle ? UnbundleFiles() : BundleFiles()) {
     reportError(std::move(Err));