[llvm-dev] 答复: How to add new arch for llvm-cov show?

xuruobin via llvm-dev llvm-dev at lists.llvm.org
Wed Jan 23 01:24:30 PST 2019


Hi vedant,

  The program didn't pass the checking "OF->getArch() != Triple(Arch).getArch()" loadBinaryFormat in CoverageMappingReader.cpp and returned an error. It's because "OF->getArch()" returned null and "Triple(Arch).getArch()" returned XXXX(name of my arch). 
  The returned value of  " OF->getArch()" is decided by " EF.getHeader()->e_machine" but I found "e_machine" is defined somewhere in MCAssembler(My compiler uses binutils as assembler) . Although I make some hacks to pass this checking, I still get other errors. So my problem is whether llvm-cov has to work with MCAssembler and is it possible to do it with binutils?

Best,
Ruobin

> -----邮件原件-----
> 发件人: vsk at apple.com [mailto:vsk at apple.com]
> 发送时间: 2019年1月23日 1:24
> 收件人: xuruobin <xuruobin at huawei.com>
> 抄送: llvm-dev at lists.llvm.org; Yuchao (Michael)
> <michael.yuchao at huawei.com>
> 主题: Re: [llvm-dev] How to add new arch for llvm-cov show?
> 
> Hi Ruobin,
> 
> > On Jan 21, 2019, at 5:21 PM, xuruobin via llvm-dev <llvm-dev at lists.llvm.org>
> wrote:
> >
> > Hi all,
> >
> > I'm trying to support llvm-cov for a new architecture and I have successfully
> built compiler-rt for my arch. Following steps shown in
> https://clang.llvm.org/docs/SourceBasedCodeCoverage.html , I encountered
> an error for the last step(step of llvm-cov show).
> > The command line was (supposed my arch is XXXX)
> >
> > "llvm-cov show -arch=XXXX ./foo -instr-profile=foo.profdata"
> >
> > and the error was
> >
> > "Failed to load coverage: No object file for requested architecture."
> >
> > I think I should add my arch information to somewhere(maybe an llvm-cov
> support list?) but I don't know where to add these information. Can
> someone give me some suggestions?
> 
> You’ll need to teach libObject about this architecture. Specifically, the
> coverage reader checks that calling getArch() on a loaded ObjectFile matches
> Triple(Arch).getArch() (see loadBinaryFormat in
> CoverageMappingReader.cpp).
> 
> best,
> vedant
> 
> 
> >
> > Best Regards,
> > Ruobin.
> > _______________________________________________
> > LLVM Developers mailing list
> > llvm-dev at lists.llvm.org
> > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev



More information about the llvm-dev mailing list