-
Notifications
You must be signed in to change notification settings - Fork 6.8k
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
tests: arch: arm: no_multithreading: Limit platforms allowed #34749
tests: arch: arm: no_multithreading: Limit platforms allowed #34749
Conversation
When multithreading is off, kernel source files like sem.c (samphore implementation) are not present in the build. Some platforms by default fetch modules or drivers that are using multithreading primitives and because of that fails to compile when multithreading is off. Limit the test to only qemu platforms since test is arch specific. Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
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 needs to run on hardware, we cannot do it like this.
Do you expect a fix soon? If not, I'd like to merge this and than we deal with expanding this to run on other platforms as a follow up PR. |
So let me ask this - we merged changes in the support of CONFIG_MULTITHREADING=n feature, (probably here: #34279) that broke this test, which has been working for quite a long time, i.e. we had support for CONFIG_MULTITHREADING=n on real ARM hardware, and we consider that the fix is to run the test only for QEMU targets? Looking closely on #34279; it appears to me that this PR has introduced additional tests for the CONFIG_MULTITHREADING=n use-case, but all of them build and run only on QEMU targets, why have we agreed to go this way? Nothing in the description of the PR suggests that from now on, the CONFIG_MULTITHREADING=n feature is only supported on qemu targets, not hardware. |
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.
Some platforms by default
fetch modules or drivers that are using multithreading primitives and
because of that fails to compile when multithreading is off.
In #34739, we are seeing messages like:
libzephyr.a(rtt_console.c.obj): in function `k_mutex_lock':
libzephyr.a(rtt_console.c.obj): in function `k_mutex_unlock':
libzephyr.a(rtt_console.c.obj): in function `k_sleep':
Were these functions undefined/unsupported prior to #34279 when CONFIG_MULTITHREADING=n
?
Sorry guys, i'm on vacation with limited access to PC (back Thursday) #34279 changed kernel CMakeLists.txt to not include multithreading files when Not sure how to filter ok platforms. I checked that test compiles for nrf boards except boards like Thingy (#34468) which has sensors and uses i2c and spi.
I can add some nrf boards? Others i want be able to test. |
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 not the right thing to do.
CONFIG_MULTITHREADING=n was de-deprecated, so it needs to run in some set of hardware.
I'll file an issue about this.
When multithreading is off, kernel source files like sem.c (samphore
implementation) are not present in the build. Some platforms by default
fetch modules or drivers that are using multithreading primitives and
because of that fails to compile when multithreading is off.
Limit the test to only qemu platforms since test is arch specific.
Fixes #34739.
Signed-off-by: Krzysztof Chruscinski krzysztof.chruscinski@nordicsemi.no