Skip to content

Commit e993644

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 <oocheret@cisco.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 parent bdc6237 commit e993644

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

518518
Loader = HF ? "ld-linux-armhf.so.3" : "ld-linux.so.3";
519519
LibDir = "lib32";
520-
if (!getVFS().exists(getDriver().SysRoot + "/" + LibDir + "/" + Loader) &&
521-
getVFS().exists(getDriver().SysRoot + "/lib/" + Loader)) {
520+
if (!getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/" + LibDir + "/" + Loader) &&
521+
getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/lib/" + Loader)) {
522522
LibDir = "lib";
523523
}
524524
break;
@@ -574,17 +574,17 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const {
574574
LibDir = "lib64";
575575
Loader =
576576
(tools::ppc::hasPPCAbiArg(Args, "elfv2")) ? "ld64.so.2" : "ld64.so.1";
577-
if (!getVFS().exists(getDriver().SysRoot + "/" + LibDir + "/" + Loader) &&
578-
getVFS().exists(getDriver().SysRoot + "/lib/" + Loader)) {
577+
if (!getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/" + LibDir + "/" + Loader) &&
578+
getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/lib/" + Loader)) {
579579
LibDir = "lib";
580580
}
581581
break;
582582
case llvm::Triple::ppc64le:
583583
LibDir = "lib64";
584584
Loader =
585585
(tools::ppc::hasPPCAbiArg(Args, "elfv1")) ? "ld64.so.1" : "ld64.so.2";
586-
if (!getVFS().exists(getDriver().SysRoot + "/" + LibDir + "/" + Loader) &&
587-
getVFS().exists(getDriver().SysRoot + "/lib/" + Loader)) {
586+
if (!getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/" + LibDir + "/" + Loader) &&
587+
getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/lib/" + Loader)) {
588588
LibDir = "lib";
589589
}
590590
break;
@@ -604,8 +604,8 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const {
604604
case llvm::Triple::sparcv9:
605605
LibDir = "lib64";
606606
Loader = "ld-linux.so.2";
607-
if (!getVFS().exists(getDriver().SysRoot + "/" + LibDir + "/" + Loader) &&
608-
getVFS().exists(getDriver().SysRoot + "/lib/" + Loader)) {
607+
if (!getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/" + LibDir + "/" + Loader) &&
608+
getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/lib/" + Loader)) {
609609
LibDir = "lib";
610610
}
611611
break;
@@ -622,8 +622,8 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const {
622622

623623
LibDir = X32 ? "libx32" : "lib64";
624624
Loader = X32 ? "ld-linux-x32.so.2" : "ld-linux-x86-64.so.2";
625-
if (!getVFS().exists(getDriver().SysRoot + "/" + LibDir + "/" + Loader) &&
626-
getVFS().exists(getDriver().SysRoot + "/lib/" + Loader)) {
625+
if (!getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/" + LibDir + "/" + Loader) &&
626+
getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/lib/" + Loader)) {
627627
LibDir = "lib";
628628
}
629629
break;

0 commit comments

Comments
 (0)