/* Default architecture for SystemZ. */
#define CLANG_SYSTEMZ_DEFAULT_ARCH "${CLANG_SYSTEMZ_DEFAULT_ARCH}"
+/* Multilib suffix for libdir. */
+#define CLANG_LIBDIR_SUFFIX "${CLANG_LIBDIR_SUFFIX}"
+
/* Multilib basename for libdir. */
#define CLANG_INSTALL_LIBDIR_BASENAME "${CLANG_INSTALL_LIBDIR_BASENAME}"
// With a static-library build of libclang, LibClangPath will contain the
// path of the embedding binary, which for LLVM binaries will be in bin/.
// ../lib gets us to lib/ in both cases.
+ const char *NO_LIBDIR_SUFFIX = std::getenv("CLANG_NO_LIBDIR_SUFFIX");
+ StringRef ClangLibdirSuffix(NO_LIBDIR_SUFFIX ? "" : CLANG_LIBDIR_SUFFIX);
P = llvm::sys::path::parent_path(Dir);
// This search path is also created in the COFF driver of lld, so any
// changes here also needs to happen in lld/COFF/Driver.cpp
- llvm::sys::path::append(P, CLANG_INSTALL_LIBDIR_BASENAME, "clang",
+ llvm::sys::path::append(P, Twine("lib") + ClangLibdirSuffix, "clang",
CLANG_VERSION_MAJOR_STRING);
}
if (!this->VFS)
this->VFS = llvm::vfs::getRealFileSystem();
+// Skip /emul if we work in accelerated environment
+#define QEMU_ACCEL_DIR "/emul"
+ if (ClangExecutable.substr(0, sizeof(QEMU_ACCEL_DIR) - 1) == QEMU_ACCEL_DIR)
+ ClangExecutable = ClangExecutable.drop_front(sizeof(QEMU_ACCEL_DIR) - 1);
+
Name = std::string(llvm::sys::path::filename(ClangExecutable));
Dir = std::string(llvm::sys::path::parent_path(ClangExecutable));
return;
StringRef LibDir = GCCInstallation.getParentLibPath();
+ const StringRef InstallDir = GCCInstallation.getInstallPath();
const Multilib &Multilib = GCCInstallation.getMultilib();
const GCCVersion &Version = GCCInstallation.getVersion();
LibDir.str() + "/../" + TripleStr.str() + "/include/c++/" + Version.Text,
// Freescale SDK C++ headers are directly in <sysroot>/usr/include/c++,
// without a subdirectory corresponding to the gcc version.
- LibDir.str() + "/../include/c++",
+ LibDir.str() + "/../include/c++", InstallDir.str() + "/include/c++",
// Cray's gcc installation puts headers under "g++" without a
// version suffix.
LibDir.str() + "/../include/g++",
Mesa,
SUSE,
OpenEmbedded,
- LastVendorType = OpenEmbedded
+ Tizen,
+ LastVendorType = Tizen
};
enum OSType {
UnknownOS,
case PC: return "pc";
case SCEI: return "scei";
case SUSE: return "suse";
+ case Tizen: return "tizen";
}
llvm_unreachable("Invalid VendorType!");
.Case("mesa", Triple::Mesa)
.Case("suse", Triple::SUSE)
.Case("oe", Triple::OpenEmbedded)
+ .Case("tizen", Triple::Tizen)
.Default(Triple::UnknownVendor);
}