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

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. From 554002679332300b789cf44384c2274840ed24d9 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. Signed-off-by: Oleksandr Ocheretnyi <oocheret@cisco.com>
  12. Signed-off-by: Khem Raj <raj.khem@gmail.com>
  13. ---
  14. clang/lib/Driver/ToolChains/Linux.cpp | 16 ++++++++--------
  15. 1 file changed, 8 insertions(+), 8 deletions(-)
  16. diff --git a/clang/lib/Driver/ToolChains/Linux.cpp b/clang/lib/Driver/ToolChains/Linux.cpp
  17. index f9e233f15dfc..bf73b1ef27db 100644
  18. --- a/clang/lib/Driver/ToolChains/Linux.cpp
  19. +++ b/clang/lib/Driver/ToolChains/Linux.cpp
  20. @@ -493,8 +493,8 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const {
  21. LibDir = "lib64";
  22. Loader =
  23. (tools::ppc::hasPPCAbiArg(Args, "elfv2")) ? "ld64.so.2" : "ld64.so.1";
  24. - if (!getVFS().exists(getDriver().SysRoot + "/" + LibDir + "/" + Loader) &&
  25. - getVFS().exists(getDriver().SysRoot + "/lib/" + Loader)) {
  26. + if (!getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/" + LibDir + "/" + Loader) &&
  27. + getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/lib/" + Loader)) {
  28. LibDir = "lib";
  29. }
  30. break;
  31. @@ -502,8 +502,8 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const {
  32. LibDir = "lib64";
  33. Loader =
  34. (tools::ppc::hasPPCAbiArg(Args, "elfv1")) ? "ld64.so.1" : "ld64.so.2";
  35. - if (!getVFS().exists(getDriver().SysRoot + "/" + LibDir + "/" + Loader) &&
  36. - getVFS().exists(getDriver().SysRoot + "/lib/" + Loader)) {
  37. + if (!getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/" + LibDir + "/" + Loader) &&
  38. + getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/lib/" + Loader)) {
  39. LibDir = "lib";
  40. }
  41. break;
  42. @@ -527,8 +527,8 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const {
  43. case llvm::Triple::sparcv9:
  44. LibDir = "lib64";
  45. Loader = "ld-linux.so.2";
  46. - if (!getVFS().exists(getDriver().SysRoot + "/" + LibDir + "/" + Loader) &&
  47. - getVFS().exists(getDriver().SysRoot + "/lib/" + Loader)) {
  48. + if (!getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/" + LibDir + "/" + Loader) &&
  49. + getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/lib/" + Loader)) {
  50. LibDir = "lib";
  51. }
  52. break;
  53. @@ -545,8 +545,8 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const {
  54. LibDir = X32 ? "libx32" : "lib64";
  55. Loader = X32 ? "ld-linux-x32.so.2" : "ld-linux-x86-64.so.2";
  56. - if (!getVFS().exists(getDriver().SysRoot + "/" + LibDir + "/" + Loader) &&
  57. - getVFS().exists(getDriver().SysRoot + "/lib/" + Loader)) {
  58. + if (!getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/" + LibDir + "/" + Loader) &&
  59. + getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/lib/" + Loader)) {
  60. LibDir = "lib";
  61. }
  62. break;