Skip to content

[cdacreader] Simplify build order and dependencies #104158

Closed
@lambdageek

Description

@lambdageek

The original src/native/managed infrastructure was developed with the idea that we need to build libcdacreader.so/cdacreader.dll (or libcdacreader.a/cdacreader.a before static library support was abandoned) ahead of the main CoreCLR build so that we can link to the shared library during the CoreCLR build (specifically during the DAC build).

But we don't do that now. Instead the DAC shared library dynamically loads the cDAC using dlopen/LoadLibrary

That means we don't have a true build-time dependency between the cDAC and the rest of the CoreCLR build. So we don't need to hook it in via runtime-prereqs.proj. We can add it as a separate subset or as a ProjectReference some place else. The only requirements are:

  1. Must be available before we package up the runtime
  2. Must be available before we create Core_Root for runtime tests
  3. Must be available before we run library tests

This is also a first step for any plan to publish the cdacreader separately from the runtime (which is a long-term goal of the cdac effort: it should be possible to distribute and use cdacreader out of band)

Metadata

Metadata

Assignees

No one assigned

    Labels

    area-Infrastructure-coreclrenhancementProduct code improvement that does NOT require public API changes/additionsin-prThere is an active PR which will close this issue when it is merged

    Type

    No type

    Projects

    Status

    Done

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions