0019-clang-driver-Add-dyld-prefix-when-checking-sysroot-f.patch 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. From b9349e316a179b7a37a119dbfeddbd4d382941b4 Mon Sep 17 00:00:00 2001
  2. From: Jun Yuan Tan <junyuan.tan@starfivetech.com>
  3. Date: Tue, 9 Nov 2021 10:38:17 +0800
  4. Subject: [PATCH 19/34] clang: driver: Add dyld-prefix when checking sysroot
  5. for ldso 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. Rebased to LLVM 14.0.0 by Jun Yuan Tan
  12. Signed-off-by: Oleksandr Ocheretnyi <oocheret@cisco.com>
  13. Signed-off-by: Khem Raj <raj.khem@gmail.com>
  14. Signed-off-by: Jun Yuan Tan <junyuan.tan@starfivetech.com>
  15. ---
  16. clang/lib/Driver/ToolChains/Linux.cpp | 16 ++++++++--------
  17. 1 file changed, 8 insertions(+), 8 deletions(-)
  18. diff --git a/clang/lib/Driver/ToolChains/Linux.cpp b/clang/lib/Driver/ToolChains/Linux.cpp
  19. index 9fe4e5230045..abaab04c8266 100644
  20. --- a/clang/lib/Driver/ToolChains/Linux.cpp
  21. +++ b/clang/lib/Driver/ToolChains/Linux.cpp
  22. @@ -480,8 +480,8 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const {
  23. LibDir = "lib64";
  24. Loader =
  25. (tools::ppc::hasPPCAbiArg(Args, "elfv2")) ? "ld64.so.2" : "ld64.so.1";
  26. - if (!getVFS().exists(getDriver().SysRoot + "/" + LibDir + "/" + Loader) &&
  27. - getVFS().exists(getDriver().SysRoot + "/lib/" + Loader)) {
  28. + if (!getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/" + LibDir + "/" + Loader) &&
  29. + getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/lib/" + Loader)) {
  30. LibDir = "lib";
  31. }
  32. break;
  33. @@ -489,8 +489,8 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const {
  34. LibDir = "lib64";
  35. Loader =
  36. (tools::ppc::hasPPCAbiArg(Args, "elfv1")) ? "ld64.so.1" : "ld64.so.2";
  37. - if (!getVFS().exists(getDriver().SysRoot + "/" + LibDir + "/" + Loader) &&
  38. - getVFS().exists(getDriver().SysRoot + "/lib/" + Loader)) {
  39. + if (!getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/" + LibDir + "/" + Loader) &&
  40. + getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/lib/" + Loader)) {
  41. LibDir = "lib";
  42. }
  43. break;
  44. @@ -514,8 +514,8 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const {
  45. case llvm::Triple::sparcv9:
  46. LibDir = "lib64";
  47. Loader = "ld-linux.so.2";
  48. - if (!getVFS().exists(getDriver().SysRoot + "/" + LibDir + "/" + Loader) &&
  49. - getVFS().exists(getDriver().SysRoot + "/lib/" + Loader)) {
  50. + if (!getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/" + LibDir + "/" + Loader) &&
  51. + getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/lib/" + Loader)) {
  52. LibDir = "lib";
  53. }
  54. break;
  55. @@ -532,8 +532,8 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const {
  56. LibDir = X32 ? "libx32" : "lib64";
  57. Loader = X32 ? "ld-linux-x32.so.2" : "ld-linux-x86-64.so.2";
  58. - if (!getVFS().exists(getDriver().SysRoot + "/" + LibDir + "/" + Loader) &&
  59. - getVFS().exists(getDriver().SysRoot + "/lib/" + Loader)) {
  60. + if (!getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/" + LibDir + "/" + Loader) &&
  61. + getVFS().exists(getDriver().SysRoot + getDriver().DyldPrefix + "/lib/" + Loader)) {
  62. LibDir = "lib";
  63. }
  64. break;
  65. --
  66. 2.33.1