[llvm-dev] Resolving a dependency circuit in cmake

Nagurne, James via llvm-dev llvm-dev at lists.llvm.org
Mon Aug 9 11:42:12 PDT 2021


Hi all,

Some background: our team has added Object to the LINK_COMPONENTS of  the ProfileData library as part of work to support code coverage on baremetal emebdded devices.
Specifically, there is a new type of InstrProfReader that opens an executable and extracts unallocated sections as metadata, rather than relying on a heavyweight runtime call and metadata sections living in restricted target memory.

Recently, commit ee7d20e8 (https://reviews.llvm.org/D106861) added a dependency on the ProfileData library to the MC library.

The combination of these changes causes a dependency circuit that results in link-time failures:

  *   MC depends on ProfileData
  *   ProfileData depends on Object
  *   Object depends on MC

Is there any good way to resolve such dependency circuits in the build system save for an invasive restructuring?

I'll note that in the review above, MCPseudoProbe only relies upon the static member function FunctionSamples::getCanonicalFnName, which itself relies on a number of static data members of FunctionSamples.

Regards,
J.B. Nagurne
Code Generation
Texas Instruments
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20210809/aaf1bba8/attachment.html>
-------------- next part --------------
An embedded message was scrubbed...
From: Cody Addison via llvm-dev <llvm-dev at lists.llvm.org>
Subject: [EXTERNAL] [llvm-dev] Code coverage for baremetal   microcontrollers
Date: Thu, 11 Oct 2018 01:41:38 +0000
Size: 8329
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20210809/aaf1bba8/attachment.mht>


More information about the llvm-dev mailing list