Skip to content

Commit 630d380

Browse files
oocheretkraj
authored andcommitted
clang: driver: Add dyld-prefix when checking sysroot for ldso path
* the dyld-prefix shall be taken into account when the default path for the dynamic linker has to be checked. * this patch shall be used as annex to the next patch: 'clang: driver: Check sysroot for ldso path' which includes the usrmerge scenario. Upstream-Status: Pending Signed-off-by: Oleksandr Ocheretnyi <[email protected]> Signed-off-by: Khem Raj <[email protected]>
1 parent 69ec5a6 commit 630d380

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

clang/lib/Driver/ToolChains/Linux.cpp

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -619,8 +619,8 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const {
619619

620620
Loader = HF ? "ld-linux-armhf.so.3" : "ld-linux.so.3";
621621
LibDir = "lib32";
622-
if (!getVFS().exists(getDriver().SysRoot + "/" + LibDir + "/" + Loader) &&
623-
getVFS().exists(getDriver().SysRoot + "/lib/" + Loader)) {
622+
if (!getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/" + LibDir + "/" + Loader) &&
623+
getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/lib/" + Loader)) {
624624
LibDir = "lib";
625625
}
626626
break;
@@ -676,17 +676,17 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const {
676676
LibDir = "lib64";
677677
Loader =
678678
(tools::ppc::hasPPCAbiArg(Args, "elfv2")) ? "ld64.so.2" : "ld64.so.1";
679-
if (!getVFS().exists(getDriver().SysRoot + "/" + LibDir + "/" + Loader) &&
680-
getVFS().exists(getDriver().SysRoot + "/lib/" + Loader)) {
679+
if (!getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/" + LibDir + "/" + Loader) &&
680+
getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/lib/" + Loader)) {
681681
LibDir = "lib";
682682
}
683683
break;
684684
case llvm::Triple::ppc64le:
685685
LibDir = "lib64";
686686
Loader =
687687
(tools::ppc::hasPPCAbiArg(Args, "elfv1")) ? "ld64.so.1" : "ld64.so.2";
688-
if (!getVFS().exists(getDriver().SysRoot + "/" + LibDir + "/" + Loader) &&
689-
getVFS().exists(getDriver().SysRoot + "/lib/" + Loader)) {
688+
if (!getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/" + LibDir + "/" + Loader) &&
689+
getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/lib/" + Loader)) {
690690
LibDir = "lib";
691691
}
692692
break;
@@ -706,8 +706,8 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const {
706706
case llvm::Triple::sparcv9:
707707
LibDir = "lib64";
708708
Loader = "ld-linux.so.2";
709-
if (!getVFS().exists(getDriver().SysRoot + "/" + LibDir + "/" + Loader) &&
710-
getVFS().exists(getDriver().SysRoot + "/lib/" + Loader)) {
709+
if (!getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/" + LibDir + "/" + Loader) &&
710+
getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/lib/" + Loader)) {
711711
LibDir = "lib";
712712
}
713713
break;
@@ -724,8 +724,8 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const {
724724

725725
LibDir = X32 ? "libx32" : "lib64";
726726
Loader = X32 ? "ld-linux-x32.so.2" : "ld-linux-x86-64.so.2";
727-
if (!getVFS().exists(getDriver().SysRoot + "/" + LibDir + "/" + Loader) &&
728-
getVFS().exists(getDriver().SysRoot + "/lib/" + Loader)) {
727+
if (!getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/" + LibDir + "/" + Loader) &&
728+
getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/lib/" + Loader)) {
729729
LibDir = "lib";
730730
}
731731
break;

0 commit comments

Comments
 (0)