[LLVMdev] [lld] adding demangler for symbol resolution
chisophugis at gmail.com
Fri Dec 12 17:55:50 PST 2014
On Thu, Dec 11, 2014 at 9:38 PM, Shankar Easwaran <shankare at codeaurora.org>
> One source of confusion is libstdc++ owns the API __cxa_demangle, when the
> demangle code is moved from libc++ to llvm, does libc++ link with
> libSupport ?
libSupport would have nothing to do with the __cxa_demangle symbol. It
would be llvm::demangle (and probably have a different signature, e.g.
-- Sean Silva
> libc++ needs to continue to own the demangle API too, IMO.
> Shankar Easwaran
> On 12/11/2014 6:24 PM, Sean Silva wrote:
>> The simplest long-term solution would probably be to just add demangling
>> a portable way to libSupport. Then we don't need to conditionalize or
>> anything. We just call llvm::demangle(). This is the only viable solution
>> for proper cross-linking anyway.
>> Given that there should be existing demanglers we can reuse, I'm not sure
>> that this long term solution is significantly more difficult than the
>> term solution you are proposing.
>> -- Sean Silva
>> On Tue, Apr 1, 2014 at 9:19 PM, Shankar Easwaran <shankare at codeaurora.org
>>> Hi Nick, Bigcheese,
>>> When lld is used to link C++ code, it would be required to demangle
>>> names by default/user driven option.
>>> The Gnu linker has the following options :-
>>> I found that clang/llvm-symbolizer use __cxx_demangle function.
>>> I would think that lld also need to call the same function, and I think
>>> the way we want to demangle is to have the function in LinkingContext as
>>> various flavors may choose to use different API's to demangle symbol
>>> The API's that would be in LinkingContext would be :-
>>> * virtual bool canDemangle() = 0; // Does the flavor provide a
>>> way to demangle symbol names ?
>>> * virtual std::string demangle(StringRef symbolName) = 0; //
>>> demangle the symbol name
>>> Thoughts / Suggestions ?
>>> Shankar Easwaran
>>> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted
>>> by the Linux Foundation
>>> LLVM Developers mailing list
>>> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted
> by the Linux Foundation
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the llvm-dev