Skip to content

Commit a200893

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 fd5095d commit a200893

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

519519
Loader = HF ? "ld-linux-armhf.so.3" : "ld-linux.so.3";
520520
LibDir = "lib32";
521-
if (!getVFS().exists(getDriver().SysRoot + "/" + LibDir + "/" + Loader) &&
522-
getVFS().exists(getDriver().SysRoot + "/lib/" + Loader)) {
521+
if (!getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/" + LibDir + "/" + Loader) &&
522+
getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/lib/" + Loader)) {
523523
LibDir = "lib";
524524
}
525525
break;
@@ -575,17 +575,17 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const {
575575
LibDir = "lib64";
576576
Loader =
577577
(tools::ppc::hasPPCAbiArg(Args, "elfv2")) ? "ld64.so.2" : "ld64.so.1";
578-
if (!getVFS().exists(getDriver().SysRoot + "/" + LibDir + "/" + Loader) &&
579-
getVFS().exists(getDriver().SysRoot + "/lib/" + Loader)) {
578+
if (!getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/" + LibDir + "/" + Loader) &&
579+
getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/lib/" + Loader)) {
580580
LibDir = "lib";
581581
}
582582
break;
583583
case llvm::Triple::ppc64le:
584584
LibDir = "lib64";
585585
Loader =
586586
(tools::ppc::hasPPCAbiArg(Args, "elfv1")) ? "ld64.so.1" : "ld64.so.2";
587-
if (!getVFS().exists(getDriver().SysRoot + "/" + LibDir + "/" + Loader) &&
588-
getVFS().exists(getDriver().SysRoot + "/lib/" + Loader)) {
587+
if (!getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/" + LibDir + "/" + Loader) &&
588+
getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/lib/" + Loader)) {
589589
LibDir = "lib";
590590
}
591591
break;
@@ -605,8 +605,8 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const {
605605
case llvm::Triple::sparcv9:
606606
LibDir = "lib64";
607607
Loader = "ld-linux.so.2";
608-
if (!getVFS().exists(getDriver().SysRoot + "/" + LibDir + "/" + Loader) &&
609-
getVFS().exists(getDriver().SysRoot + "/lib/" + Loader)) {
608+
if (!getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/" + LibDir + "/" + Loader) &&
609+
getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/lib/" + Loader)) {
610610
LibDir = "lib";
611611
}
612612
break;
@@ -623,8 +623,8 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const {
623623

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

0 commit comments

Comments
 (0)