Fix loader ABI compatibility regression#665
Open
planetchili wants to merge 1 commit into
Open
Conversation
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.
Contributor
There was a problem hiding this comment.
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 oldIdentificationTableCallbacksforwarding 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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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