-
Notifications
You must be signed in to change notification settings - Fork 321
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
lmdk: fix building system-service modules #8812
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This PR doesn't solve the problem. The __SOF_MODULE_SERVICE_BUILD__
symbol is defined only in one example module. We need more universal solution.
@softwarecki you don't use it when building LMDK modules? Ok, I thought you did. Is there anything that you do define for all system-service modules? |
We don't define it in our examples of lmdk modules. Please check files in |
That sounds very brittle (quotes mine) Can you confirm MAJOR_IADSP_API_VERSION is here to stay for a while? |
@softwarecki btw, why does system services build and link to a base FW file (e.fg the source/sink API) ? Shouldn't these be unresolved in the library and then be resolved when the library is loaded ? |
@marc-hb @lgirdwood I moved the common files used for building basefw and lmdk modules to the directory modules. These are simple wrappers that invoke pointers functions provided by the sink/source API. @lyakh Can we reverse the condition and check for the existence of a definition associated with llext or move these exports to another file? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
MAJOR_IADSP_API_VERSION is deprecated
System-service modules cannot include Zephyr headers and don't use exported symbols, they link sink_api.c and source_api.c into their images. Disable symbol exporting for them. Signed-off-by: Guennadi Liakhovetski <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a very surprising solution, but it works so I accept it.
I think we can safely state, that this PR cannot be a reason for all the CI failures:
|
Moreover it's short, well documented and self-contained in only 2 places to change if needed in the future. So very low technical debt if any! |
System-service modules cannot include Zephyr headers and don't use exported symbols, they link sink_api.c and source_api.c into their images. Disable symbol exporting for them.