Skip to content

Fix loader ABI compatibility regression#665

Open
planetchili wants to merge 1 commit into
mainfrom
fix/compatibility-internal
Open

Fix loader ABI compatibility regression#665
planetchili wants to merge 1 commit into
mainfrom
fix/compatibility-internal

Conversation

@planetchili

Copy link
Copy Markdown
Collaborator

Keep sink tracking and pmUnlinkLogging_ teardown while reverting the id-table link parameter to the v2.5.1 interface.

Treat internal middleware hooks as optional at loader bind time.

Resolve pm*_ exports with best-effort C++ lookup and guard loader proxies when hooks are absent so session C API load is not blocked.

closes #664

Keep sink tracking and pmUnlinkLogging_ teardown while reverting the id-table link parameter to the v2.5.1 interface.

Treat internal middleware hooks as optional at loader bind time.

Resolve pm*_ exports with best-effort C++ lookup and guard loader proxies when hooks are absent so session C API load is not blocked.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR addresses loader/middleware binary compatibility by making internal (private) middleware hooks optional at loader bind time, while updating the internal logging link mechanism used to bridge identification-table updates between the middleware DLL and the host process.

Changes:

  • Make loader resolution of internal C++-linkage hooks optional so older middleware DLLs don’t prevent session C API loading.
  • Update pmLinkLogging_ to accept an ID-table getter callable and remove the old IdentificationTableCallbacks forwarding mechanism.
  • Update sample/client and test call sites to use the new pmLinkLogging_ interface.

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
IntelPresentMon/SampleClient/LogSetup.cpp Updates pmLinkLogging_ call site for ID-table linking (needs guarding for empty getters).
IntelPresentMon/PresentMonAPI2Tests/Logging.cpp Updates test harness to pass the new ID-table getter.
IntelPresentMon/PresentMonAPI2Loader/Implementation.cpp Makes internal C++ endpoints optional at bind time; guards proxies when hooks are absent.
IntelPresentMon/PresentMonAPI2/PresentMonAPI.cpp Implements new pmLinkLogging_ ID-table bridge using an ID-table getter callable.
IntelPresentMon/PresentMonAPI2/Internal.h Updates internal export signature of pmLinkLogging_.
IntelPresentMon/Core/source/infra/LogSetup.cpp Updates core client logging setup to pass new ID-table getter.
IntelPresentMon/CommonUtilities/log/IdentificationTable.h Removes IdentificationTableCallbacks and its forwarding helper declaration.
IntelPresentMon/CommonUtilities/log/IdentificationTable.cpp Removes MakeForwardingCallbacks() implementation.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread IntelPresentMon/SampleClient/LogSetup.cpp
Comment thread IntelPresentMon/PresentMonAPI2/PresentMonAPI.cpp
Comment thread IntelPresentMon/PresentMonAPI2/Internal.h
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Internal API Endpoints Causing Compatibility Failure

2 participants