Skip to content

Commit 0088a3f

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 1c6aff6 commit 0088a3f

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
@@ -523,8 +523,8 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const {
523523

524524
Loader = HF ? "ld-linux-armhf.so.3" : "ld-linux.so.3";
525525
LibDir = "lib32";
526-
if (!getVFS().exists(getDriver().SysRoot + "/" + LibDir + "/" + Loader) &&
527-
getVFS().exists(getDriver().SysRoot + "/lib/" + Loader)) {
526+
if (!getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/" + LibDir + "/" + Loader) &&
527+
getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/lib/" + Loader)) {
528528
LibDir = "lib";
529529
}
530530
break;
@@ -580,17 +580,17 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const {
580580
LibDir = "lib64";
581581
Loader =
582582
(tools::ppc::hasPPCAbiArg(Args, "elfv2")) ? "ld64.so.2" : "ld64.so.1";
583-
if (!getVFS().exists(getDriver().SysRoot + "/" + LibDir + "/" + Loader) &&
584-
getVFS().exists(getDriver().SysRoot + "/lib/" + Loader)) {
583+
if (!getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/" + LibDir + "/" + Loader) &&
584+
getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/lib/" + Loader)) {
585585
LibDir = "lib";
586586
}
587587
break;
588588
case llvm::Triple::ppc64le:
589589
LibDir = "lib64";
590590
Loader =
591591
(tools::ppc::hasPPCAbiArg(Args, "elfv1")) ? "ld64.so.1" : "ld64.so.2";
592-
if (!getVFS().exists(getDriver().SysRoot + "/" + LibDir + "/" + Loader) &&
593-
getVFS().exists(getDriver().SysRoot + "/lib/" + Loader)) {
592+
if (!getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/" + LibDir + "/" + Loader) &&
593+
getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/lib/" + Loader)) {
594594
LibDir = "lib";
595595
}
596596
break;
@@ -610,8 +610,8 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const {
610610
case llvm::Triple::sparcv9:
611611
LibDir = "lib64";
612612
Loader = "ld-linux.so.2";
613-
if (!getVFS().exists(getDriver().SysRoot + "/" + LibDir + "/" + Loader) &&
614-
getVFS().exists(getDriver().SysRoot + "/lib/" + Loader)) {
613+
if (!getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/" + LibDir + "/" + Loader) &&
614+
getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/lib/" + Loader)) {
615615
LibDir = "lib";
616616
}
617617
break;
@@ -628,8 +628,8 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const {
628628

629629
LibDir = X32 ? "libx32" : "lib64";
630630
Loader = X32 ? "ld-linux-x32.so.2" : "ld-linux-x86-64.so.2";
631-
if (!getVFS().exists(getDriver().SysRoot + "/" + LibDir + "/" + Loader) &&
632-
getVFS().exists(getDriver().SysRoot + "/lib/" + Loader)) {
631+
if (!getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/" + LibDir + "/" + Loader) &&
632+
getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/lib/" + Loader)) {
633633
LibDir = "lib";
634634
}
635635
break;

0 commit comments

Comments
 (0)