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

12345678910111213141516171819202122232425262728293031
  1. From 12b2de3db9a53a25610f3c61fef10fe877e765c4 Mon Sep 17 00:00:00 2001
  2. From: Khem Raj <raj.khem@gmail.com>
  3. Date: Thu, 19 May 2016 21:11:06 -0700
  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. Signed-off-by: Khem Raj <raj.khem@gmail.com>
  9. ---
  10. clang/lib/Driver/ToolChains/Gnu.cpp | 6 ++++++
  11. 1 file changed, 6 insertions(+)
  12. diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp
  13. index 7a9570a686f4..633daa58590d 100644
  14. --- a/clang/lib/Driver/ToolChains/Gnu.cpp
  15. +++ b/clang/lib/Driver/ToolChains/Gnu.cpp
  16. @@ -622,6 +622,12 @@ void tools::gnutools::Linker::ConstructJob(Compilation &C, const JobAction &JA,
  17. if (IsIAMCU)
  18. CmdArgs.push_back("-lgloss");
  19. + if (ToolChain.getTriple().isMusl() &&
  20. + (Args.hasArg(options::OPT_fstack_protector) ||
  21. + Args.hasArg(options::OPT_fstack_protector_strong) ||
  22. + Args.hasArg(options::OPT_fstack_protector_all))) {
  23. + CmdArgs.push_back("-lssp_nonshared");
  24. + }
  25. if (IsStatic || IsStaticPIE)
  26. CmdArgs.push_back("--end-group");
  27. else