[llvm-bugs] [Bug 43147] New: LLD crashes on Rust generated code with ASan/libfuzzer
via llvm-bugs
llvm-bugs at lists.llvm.org
Wed Aug 28 10:15:06 PDT 2019
https://bugs.llvm.org/show_bug.cgi?id=43147
Bug ID: 43147
Summary: LLD crashes on Rust generated code with ASan/libfuzzer
Product: lld
Version: unspecified
Hardware: PC
OS: Linux
Status: NEW
Severity: enhancement
Priority: P
Component: ELF
Assignee: unassignedbugs at nondot.org
Reporter: manojgupta at google.com
CC: llozano at chromium.org, llvm-bugs at lists.llvm.org,
manojgupta at google.com, peter.smith at linaro.org,
peter at pcc.me.uk, ruiu at google.com, zhizhouy at google.com
We are building fuzzers for rust code in Chrome OS.
When switching to lld for linking, lld crashes when linking rust fuzzers.
Reproducer:
https://drive.google.com/drive/folders/1hX7MHQGIocdCx2oraKqSbCohXYs8QAbS?usp=sharing
ld.lld @response.txt
Stack dump:
0. Program arguments: ../bin/ld.lld @response.txt
#0 0x00005631e7cf2390 llvm::sys::PrintStackTrace(llvm::raw_ostream&)
/usr/local/google/home/manojgupta/llvm_monorepo/llvm-project/llvm/lib/Support/Unix/Signals.inc:533:22
#1 0x00005631e7cf2423 PrintStackTraceSignalHandler(void*)
/usr/local/google/home/manojgupta/llvm_monorepo/llvm-project/llvm/lib/Support/Unix/Signals.inc:594:1
#2 0x00005631e7cf05bd llvm::sys::RunSignalHandlers()
/usr/local/google/home/manojgupta/llvm_monorepo/llvm-project/llvm/lib/Support/Signals.cpp:68:20
#3 0x00005631e7cf1e0c SignalHandler(int)
/usr/local/google/home/manojgupta/llvm_monorepo/llvm-project/llvm/lib/Support/Unix/Signals.inc:385:1
#4 0x00007f08bec233a0 __restore_rt
(/lib/x86_64-linux-gnu/libpthread.so.0+0x123a0)
#5 0x00005631e7fbc6f2 compareByFilePosition(lld::elf::InputSection*,
lld::elf::InputSection*)
/usr/local/google/home/manojgupta/llvm_monorepo/llvm-project/lld/ELF/Writer.cpp:1530:18
#6 0x00005631e800911a bool __gnu_cxx::__ops::_Iter_comp_iter<bool
(*)(lld::elf::InputSection*,
lld::elf::InputSection*)>::operator()<__gnu_cxx::__normal_iterator<lld::elf::InputSection**,
std::vector<lld::elf::InputSection*, std::allocator<lld::elf::InputSection*> >
>, __gnu_cxx::__normal_iterator<lld::elf::InputSection**,
std::vector<lld::elf::InputSection*, std::allocator<lld::elf::InputSection*> >
> >(__gnu_cxx::__normal_iterator<lld::elf::InputSection**,
std::vector<lld::elf::InputSection*, std::allocator<lld::elf::InputSection*> >
>, __gnu_cxx::__normal_iterator<lld::elf::InputSection**,
std::vector<lld::elf::InputSection*, std::allocator<lld::elf::InputSection*> >
>) /usr/include/c++/8/bits/predefined_ops.h:143:49
#7 0x00005631e8009032 void
std::__insertion_sort<__gnu_cxx::__normal_iterator<lld::elf::InputSection**,
std::vector<lld::elf::InputSection*, std::allocator<lld::elf::InputSection*> >
>, __gnu_cxx::__ops::_Iter_comp_iter<bool (*)(lld::elf::InputSection*,
lld::elf::InputSection*)>
>(__gnu_cxx::__normal_iterator<lld::elf::InputSection**,
std::vector<lld::elf::InputSection*, std::allocator<lld::elf::InputSection*> >
>, __gnu_cxx::__normal_iterator<lld::elf::InputSection**,
std::vector<lld::elf::InputSection*, std::allocator<lld::elf::InputSection*> >
>, __gnu_cxx::__ops::_Iter_comp_iter<bool (*)(lld::elf::InputSection*,
lld::elf::InputSection*)>) /usr/include/c++/8/bits/stl_algo.h:1847:4
#8 0x00005631e800a461 void
std::__chunk_insertion_sort<__gnu_cxx::__normal_iterator<lld::elf::InputSection**,
std::vector<lld::elf::InputSection*, std::allocator<lld::elf::InputSection*> >
>, long, __gnu_cxx::__ops::_Iter_comp_iter<bool (*)(lld::elf::InputSection*,
lld::elf::InputSection*)>
>(__gnu_cxx::__normal_iterator<lld::elf::InputSection**,
std::vector<lld::elf::InputSection*, std::allocator<lld::elf::InputSection*> >
>, __gnu_cxx::__normal_iterator<lld::elf::InputSection**,
std::vector<lld::elf::InputSection*, std::allocator<lld::elf::InputSection*> >
>, long, __gnu_cxx::__ops::_Iter_comp_iter<bool (*)(lld::elf::InputSection*,
lld::elf::InputSection*)>) /usr/include/c++/8/bits/stl_algo.h:2696:12
#9 0x00005631e80093c7 void
std::__merge_sort_with_buffer<__gnu_cxx::__normal_iterator<lld::elf::InputSection**,
std::vector<lld::elf::InputSection*, std::allocator<lld::elf::InputSection*> >
>, lld::elf::InputSection**, __gnu_cxx::__ops::_Iter_comp_iter<bool
(*)(lld::elf::InputSection*, lld::elf::InputSection*)>
>(__gnu_cxx::__normal_iterator<lld::elf::InputSection**,
std::vector<lld::elf::InputSection*, std::allocator<lld::elf::InputSection*> >
>, __gnu_cxx::__normal_iterator<lld::elf::InputSection**,
std::vector<lld::elf::InputSection*, std::allocator<lld::elf::InputSection*> >
>, lld::elf::InputSection**, __gnu_cxx::__ops::_Iter_comp_iter<bool
(*)(lld::elf::InputSection*, lld::elf::InputSection*)>)
/usr/include/c++/8/bits/stl_algo.h:2718:26
#10 0x00005631e8007c63 void
std::__stable_sort_adaptive<__gnu_cxx::__normal_iterator<lld::elf::InputSection**,
std::vector<lld::elf::InputSection*, std::allocator<lld::elf::InputSection*> >
>, lld::elf::InputSection**, long, __gnu_cxx::__ops::_Iter_comp_iter<bool
(*)(lld::elf::InputSection*, lld::elf::InputSection*)>
>(__gnu_cxx::__normal_iterator<lld::elf::InputSection**,
std::vector<lld::elf::InputSection*, std::allocator<lld::elf::InputSection*> >
>, __gnu_cxx::__normal_iterator<lld::elf::InputSection**,
std::vector<lld::elf::InputSection*, std::allocator<lld::elf::InputSection*> >
>, lld::elf::InputSection**, long, __gnu_cxx::__ops::_Iter_comp_iter<bool
(*)(lld::elf::InputSection*, lld::elf::InputSection*)>)
/usr/include/c++/8/bits/stl_algo.h:2753:25
#11 0x00005631e8005bf5 void
std::__stable_sort<__gnu_cxx::__normal_iterator<lld::elf::InputSection**,
std::vector<lld::elf::InputSection*, std::allocator<lld::elf::InputSection*> >
>, __gnu_cxx::__ops::_Iter_comp_iter<bool (*)(lld::elf::InputSection*,
lld::elf::InputSection*)>
>(__gnu_cxx::__normal_iterator<lld::elf::InputSection**,
std::vector<lld::elf::InputSection*, std::allocator<lld::elf::InputSection*> >
>, __gnu_cxx::__normal_iterator<lld::elf::InputSection**,
std::vector<lld::elf::InputSection*, std::allocator<lld::elf::InputSection*> >
>, __gnu_cxx::__ops::_Iter_comp_iter<bool (*)(lld::elf::InputSection*,
lld::elf::InputSection*)>) /usr/include/c++/8/bits/stl_algo.h:5001:15
#12 0x00005631e8000069 void
std::stable_sort<__gnu_cxx::__normal_iterator<lld::elf::InputSection**,
std::vector<lld::elf::InputSection*, std::allocator<lld::elf::InputSection*> >
>, bool (*)(lld::elf::InputSection*,
lld::elf::InputSection*)>(__gnu_cxx::__normal_iterator<lld::elf::InputSection**,
std::vector<lld::elf::InputSection*, std::allocator<lld::elf::InputSection*> >
>, __gnu_cxx::__normal_iterator<lld::elf::InputSection**,
std::vector<lld::elf::InputSection*, std::allocator<lld::elf::InputSection*> >
>, bool (*)(lld::elf::InputSection*, lld::elf::InputSection*))
/usr/include/c++/8/bits/stl_algo.h:5077:5
#13 0x00005631e7ff91fe void
llvm::stable_sort<std::vector<lld::elf::InputSection*,
std::allocator<lld::elf::InputSection*> >&, bool (*)(lld::elf::InputSection*,
lld::elf::InputSection*)>(std::vector<lld::elf::InputSection*,
std::allocator<lld::elf::InputSection*> >&, bool (*)(lld::elf::InputSection*,
lld::elf::InputSection*))
/usr/local/google/home/manojgupta/llvm_monorepo/llvm-project/llvm/include/llvm/ADT/STLExtras.h:1323:1
#14 0x00005631e7fdd583 (anonymous
namespace)::Writer<llvm::object::ELFType<(llvm::support::endianness)1, true>
>::resolveShfLinkOrder()
/usr/local/google/home/manojgupta/llvm_monorepo/llvm-project/lld/ELF/Writer.cpp:1560:14
#15 0x00005631e7fce0f2 (anonymous
namespace)::Writer<llvm::object::ELFType<(llvm::support::endianness)1, true>
>::finalizeSections()
/usr/local/google/home/manojgupta/llvm_monorepo/llvm-project/lld/ELF/Writer.cpp:1930:3
#16 0x00005631e7fbf59c (anonymous
namespace)::Writer<llvm::object::ELFType<(llvm::support::endianness)1, true>
>::run()
/usr/local/google/home/manojgupta/llvm_monorepo/llvm-project/lld/ELF/Writer.cpp:581:3
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20190828/778b1f42/attachment-0001.html>
More information about the llvm-bugs
mailing list