0007-clang-Driver-tools.cpp-Add-lssp_nonshared-on-musl.patch 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. From e9ee4c781d0fdee8bae1a28c01d329db3cae0a77 Mon Sep 17 00:00:00 2001
  2. From: Jun Yuan Tan <junyuan.tan@starfivetech.com>
  3. Date: Fri, 22 Oct 2021 11:26:58 +0800
  4. Subject: [PATCH] clang: Driver/tools.cpp: Add -lssp_nonshared on musl
  5. musl driver will need to add ssp_nonshared for stack_check_local
  6. on the linker cmdline when using stack protector commands on
  7. compiler cmdline
  8. Rebased to LLVM 14.0.0 by Jun Yuan Tan
  9. Signed-off-by: Khem Raj <raj.khem@gmail.com>
  10. Signed-off-by: Jun Yuan Tan <junyuan.tan@starfivetech.com>
  11. ---
  12. clang/lib/Driver/ToolChains/Gnu.cpp | 6 ++++++
  13. 1 file changed, 6 insertions(+)
  14. diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp
  15. index e599f5d2a53e..5436317cde35 100644
  16. --- a/clang/lib/Driver/ToolChains/Gnu.cpp
  17. +++ b/clang/lib/Driver/ToolChains/Gnu.cpp
  18. @@ -625,6 +625,12 @@ void tools::gnutools::Linker::ConstructJob(Compilation &C, const JobAction &JA,
  19. if (IsIAMCU)
  20. CmdArgs.push_back("-lgloss");
  21. + if (ToolChain.getTriple().isMusl() &&
  22. + (Args.hasArg(options::OPT_fstack_protector) ||
  23. + Args.hasArg(options::OPT_fstack_protector_strong) ||
  24. + Args.hasArg(options::OPT_fstack_protector_all))) {
  25. + CmdArgs.push_back("-lssp_nonshared");
  26. + }
  27. if (IsStatic || IsStaticPIE)
  28. CmdArgs.push_back("--end-group");
  29. else
  30. --
  31. 2.33.0