diff options
Diffstat (limited to 'patches/llvm_host/llvm-0009-nm-workaround.patch')
-rw-r--r-- | patches/llvm_host/llvm-0009-nm-workaround.patch | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/patches/llvm_host/llvm-0009-nm-workaround.patch b/patches/llvm_host/llvm-0009-nm-workaround.patch new file mode 100644 index 00000000..5755e57f --- /dev/null +++ b/patches/llvm_host/llvm-0009-nm-workaround.patch @@ -0,0 +1,27 @@ +From https://llvm.org/bugs/show_bug.cgi?id=24115 + +diff --git a/tools/llvm-nm/llvm-nm.cpp b/tools/llvm-nm/llvm-nm.cpp +index e7ee312..b9e4779 100644 +--- a/tools/llvm-nm/llvm-nm.cpp ++++ b/tools/llvm-nm/llvm-nm.cpp +@@ -486,7 +486,7 @@ static void sortAndPrintSymbolList(SymbolicFile &Obj, bool printName, + std::string ArchiveName, + std::string ArchitectureName) { + if (!NoSort) { +- std::function<bool(const NMSymbol &, const NMSymbol &)> Cmp; ++ bool (*Cmp)(const NMSymbol &, const NMSymbol &); + if (NumericSort) + Cmp = compareSymbolAddress; + else if (SizeSort) +@@ -495,8 +495,9 @@ static void sortAndPrintSymbolList(SymbolicFile &Obj, bool printName, + Cmp = compareSymbolName; + + if (ReverseSort) +- Cmp = [=](const NMSymbol &A, const NMSymbol &B) { return Cmp(B, A); }; +- std::sort(SymbolList.begin(), SymbolList.end(), Cmp); ++ std::sort(SymbolList.begin(), SymbolList.end(), [=](const NMSymbol &A, const NMSymbol &B) { return Cmp(B, A); }); ++ else ++ std::sort(SymbolList.begin(), SymbolList.end(), Cmp); + } + + if (!PrintFileName) { |