0017-clang-driver-Add-dyld-prefix-when-checking-sysroot-f.patch 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. From a9127817f4ceb0f19e99c89c08ffb1d9d256d1a2 Mon Sep 17 00:00:00 2001
  2. From: Oleksandr Ocheretnyi <oocheret@cisco.com>
  3. Date: Wed, 15 Apr 2020 00:08:39 +0300
  4. Subject: [PATCH] clang: driver: Add dyld-prefix when checking sysroot for ldso
  5. path
  6. * the dyld-prefix shall be taken into account when the default
  7. path for the dynamic linker has to be checked.
  8. * this patch shall be used as annex to the next patch:
  9. 'clang: driver: Check sysroot for ldso path' which includes
  10. the usrmerge scenario.
  11. Upstream-Status: Pending
  12. Signed-off-by: Oleksandr Ocheretnyi <oocheret@cisco.com>
  13. Signed-off-by: Khem Raj <raj.khem@gmail.com>
  14. ---
  15. clang/lib/Driver/ToolChains/Linux.cpp | 16 ++++++++--------
  16. 1 file changed, 8 insertions(+), 8 deletions(-)
  17. diff --git a/clang/lib/Driver/ToolChains/Linux.cpp b/clang/lib/Driver/ToolChains/Linux.cpp
  18. index c68a842b45e0..ca9f5f2e4f74 100644
  19. --- a/clang/lib/Driver/ToolChains/Linux.cpp
  20. +++ b/clang/lib/Driver/ToolChains/Linux.cpp
  21. @@ -518,8 +518,8 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const {
  22. LibDir = "lib64";
  23. Loader =
  24. (tools::ppc::hasPPCAbiArg(Args, "elfv2")) ? "ld64.so.2" : "ld64.so.1";
  25. - if (!getVFS().exists(getDriver().SysRoot + "/" + LibDir + "/" + Loader) &&
  26. - getVFS().exists(getDriver().SysRoot + "/lib/" + Loader)) {
  27. + if (!getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/" + LibDir + "/" + Loader) &&
  28. + getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/lib/" + Loader)) {
  29. LibDir = "lib";
  30. }
  31. break;
  32. @@ -527,8 +527,8 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const {
  33. LibDir = "lib64";
  34. Loader =
  35. (tools::ppc::hasPPCAbiArg(Args, "elfv1")) ? "ld64.so.1" : "ld64.so.2";
  36. - if (!getVFS().exists(getDriver().SysRoot + "/" + LibDir + "/" + Loader) &&
  37. - getVFS().exists(getDriver().SysRoot + "/lib/" + Loader)) {
  38. + if (!getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/" + LibDir + "/" + Loader) &&
  39. + getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/lib/" + Loader)) {
  40. LibDir = "lib";
  41. }
  42. break;
  43. @@ -552,8 +552,8 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const {
  44. case llvm::Triple::sparcv9:
  45. LibDir = "lib64";
  46. Loader = "ld-linux.so.2";
  47. - if (!getVFS().exists(getDriver().SysRoot + "/" + LibDir + "/" + Loader) &&
  48. - getVFS().exists(getDriver().SysRoot + "/lib/" + Loader)) {
  49. + if (!getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/" + LibDir + "/" + Loader) &&
  50. + getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/lib/" + Loader)) {
  51. LibDir = "lib";
  52. }
  53. break;
  54. @@ -570,8 +570,8 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const {
  55. LibDir = X32 ? "libx32" : "lib64";
  56. Loader = X32 ? "ld-linux-x32.so.2" : "ld-linux-x86-64.so.2";
  57. - if (!getVFS().exists(getDriver().SysRoot + "/" + LibDir + "/" + Loader) &&
  58. - getVFS().exists(getDriver().SysRoot + "/lib/" + Loader)) {
  59. + if (!getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/" + LibDir + "/" + Loader) &&
  60. + getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/lib/" + Loader)) {
  61. LibDir = "lib";
  62. }
  63. break;