lld doesn't demangle symbol names for undefined symbols |
||||
Issue descriptionpbos originally reported this: "When hitting linking errors for missing symbols they're just really hard to parse. As a result I don't really read the linker output but rather guess what's wrong. Is it feasible to get unmangled symbol names for better error messages (in addition to existing mangled names)? In this case I've not yet implemented a method Painter::CreateSolidRoundRectPainterWithInsets but it's somewhat tricky to read if you don't speak mangled C++." [15/15] LINK(DLL) chrome.dll chrome.dll.lib chrome.dll.pdb FAILED: chrome.dll chrome.dll.lib chrome.dll.pdb ninja -t msvc -e environment.x86 -- ../../third_party/llvm-build/Release+Asserts/bin/lld-link.exe /nologo /IMPLIB:./chrome.dll.lib /DLL /OUT:./chrome.dll /PDB:./chrome.dll.pdb @./chrome.dll.rsp ../../third_party/llvm-build/Release+Asserts/bin\lld-link.exe: error: undefined symbol: __imp_?CreateSolidRoundRectPainterWithInsets@Painter@views@@SA?AV?$unique_ptr@VPainter@views@@U?$default_delete@VPainter@views@@@std@@@std@@IMABVInsets@gfx@@@Z >>> referenced by C:\src\chromium\src\chrome\browser\ui\views\profiles\avatar_toolbar_button.cc:119 >>> ui_4.lib(avatar_toolbar_button.obj):(?UpdateTooltipText@AvatarToolbarButton@@QAEXXZ) lld has the code to demangle symbol names (lld::toString(coff::Symbol&)), it's just not used very much. In particular it's not used for the undefined symbol errors. It would be a good improvement to hook that up.
,
Sep 14
https://reviews.llvm.org/D52104 does some of this.
,
Sep 15
,
Sep 16
https://reviews.llvm.org/D52145 does the missing bit
,
Sep 17
Last bit landed in r342401; should work after the next clang roll.
,
Sep 24
Should now work; shout if things don't work as expected. |
||||
►
Sign in to add a comment |
||||
Comment 1 by thakis@chromium.org
, Sep 10