Skip to content

Commit 1d659f1

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 c57e08f commit 1d659f1

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

526526
Loader = HF ? "ld-linux-armhf.so.3" : "ld-linux.so.3";
527527
LibDir = "lib32";
528-
if (!getVFS().exists(getDriver().SysRoot + "/" + LibDir + "/" + Loader) &&
529-
getVFS().exists(getDriver().SysRoot + "/lib/" + Loader)) {
528+
if (!getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/" + LibDir + "/" + Loader) &&
529+
getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/lib/" + Loader)) {
530530
LibDir = "lib";
531531
}
532532
break;
@@ -582,17 +582,17 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const {
582582
LibDir = "lib64";
583583
Loader =
584584
(tools::ppc::hasPPCAbiArg(Args, "elfv2")) ? "ld64.so.2" : "ld64.so.1";
585-
if (!getVFS().exists(getDriver().SysRoot + "/" + LibDir + "/" + Loader) &&
586-
getVFS().exists(getDriver().SysRoot + "/lib/" + Loader)) {
585+
if (!getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/" + LibDir + "/" + Loader) &&
586+
getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/lib/" + Loader)) {
587587
LibDir = "lib";
588588
}
589589
break;
590590
case llvm::Triple::ppc64le:
591591
LibDir = "lib64";
592592
Loader =
593593
(tools::ppc::hasPPCAbiArg(Args, "elfv1")) ? "ld64.so.1" : "ld64.so.2";
594-
if (!getVFS().exists(getDriver().SysRoot + "/" + LibDir + "/" + Loader) &&
595-
getVFS().exists(getDriver().SysRoot + "/lib/" + Loader)) {
594+
if (!getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/" + LibDir + "/" + Loader) &&
595+
getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/lib/" + Loader)) {
596596
LibDir = "lib";
597597
}
598598
break;
@@ -612,8 +612,8 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const {
612612
case llvm::Triple::sparcv9:
613613
LibDir = "lib64";
614614
Loader = "ld-linux.so.2";
615-
if (!getVFS().exists(getDriver().SysRoot + "/" + LibDir + "/" + Loader) &&
616-
getVFS().exists(getDriver().SysRoot + "/lib/" + Loader)) {
615+
if (!getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/" + LibDir + "/" + Loader) &&
616+
getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/lib/" + Loader)) {
617617
LibDir = "lib";
618618
}
619619
break;
@@ -630,8 +630,8 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const {
630630

631631
LibDir = X32 ? "libx32" : "lib64";
632632
Loader = X32 ? "ld-linux-x32.so.2" : "ld-linux-x86-64.so.2";
633-
if (!getVFS().exists(getDriver().SysRoot + "/" + LibDir + "/" + Loader) &&
634-
getVFS().exists(getDriver().SysRoot + "/lib/" + Loader)) {
633+
if (!getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/" + LibDir + "/" + Loader) &&
634+
getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/lib/" + Loader)) {
635635
LibDir = "lib";
636636
}
637637
break;

0 commit comments

Comments
 (0)