-
Notifications
You must be signed in to change notification settings - Fork 349
llext: fix undefined symbols #10055
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
llext: fix undefined symbols #10055
Conversation
The recently added xrun notification framework failed to export symbols to LLEXT modules. This might remain unnoticed until an xrun happens and a module attempts to send a notification, at which popint it will cause an exception. This might be the cause of recent CI failures. This commit adds the missing exports. Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
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.
Pull Request Overview
This PR fixes the issue of undefined symbols in LLEXT modules by exporting the missing notification functions.
- Added missing include for <rtos/symbol.h> to support symbol exporting.
- Added EXPORT_SYMBOL for ipc_notification_pool_get and mixer_underrun_notif_msg_init.
Reviewed Changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| src/ipc/notification_pool.c | Added include for <rtos/symbol.h> and export for ipc_notification_pool_get. |
| src/ipc/ipc4/notification.c | Added include for <rtos/symbol.h> and export for mixer_underrun_notif_msg_init. |
Comments suppressed due to low confidence (2)
src/ipc/notification_pool.c:103
- The missing export for ipc_notification_pool_get has been correctly added. Please ensure that this symbol is intended for public use as part of the IPC notification API.
EXPORT_SYMBOL(ipc_notification_pool_get);
src/ipc/ipc4/notification.c:82
- The export for mixer_underrun_notif_msg_init is now added, which should help with the undefined symbol issue in LLEXT modules. Verify with testing that this change resolves the export requirements across modules.
EXPORT_SYMBOL(mixer_underrun_notif_msg_init);
| notif_data->event_data.mixer_underrun.data_mixed = data_mixed; | ||
| notif_data->event_data.mixer_underrun.expected_data_mixed = expected_data_mixed; | ||
| } | ||
| EXPORT_SYMBOL(mixer_underrun_notif_msg_init); |
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.
Aren't the other notif_msg_init() functions called from the llext modules?
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.
Aren't the other notif_msg_init() functions called from the llext modules?
@jsarha no, if they were, we'd get unresolved symbols for them too
ujfalusi
left a comment
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.
@lyakh, this is an amazing find!!!
lgirdwood
left a comment
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.
llext should report an error for any unresolved symbols.
@lgirdwood zephyrproject-rtos/zephyr#91560 It reports an error in the log already now, but I want to make LLEXT fail in such cases |
The recently added xrun notification framework failed to export symbols to LLEXT modules. This might remain unnoticed until an xrun happens and a module attempts to send a notification, at which popint it will cause an exception. This might be the cause of recent CI failures. This commit adds the missing exports.