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
// 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));