-
Notifications
You must be signed in to change notification settings - Fork 6.9k
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
[RFC] Situation with Zephyr POSIX subsystem and ARCH_POSIX (targets running on the underlying POSIX OS) #13054
Comments
cc: @nashif |
@pfalcon : Having the same POSIX APIs both above and below Zephyr does certainly require some cheating to make it work. Could you be a bit more specific about what are those continued failures and frustrations? (so we can address them) |
So, the problem is that there's too much magic in each of the subsystems above. I'm working on de-magicize POSIX API subsystem, but I get blocked by native_posix failures on each step. Here's an example case transcript:
So, the point that there should be much better synchronization between CONFIG_POSIX_API and CONFIG_ARCH_POSIX developers, which first requires cleaning up and documenting better both. There're (as usual) currently no resources for that, so better for now would be just separate one from another until it's more stabilized and we can work on a specific task on integrating both together (to the extent possible, which is so far unknown and requires separate research task). So, I'll be looking into blacklisting native_posix for tests/posix/ in the meantime, but comments are welcome. |
Well, It does, for quite some time now. Any change to the POSIX subsys leads to breakage of CI re: native_posix.
It's not like "giving up", it's more like accepting that it's a separate task to integrate both, which so far severely interferes with the development of POSIX subsys itself. After last working streak on it in September or so, I tried to stay away from it. Now I need to work on it again, and the same breakage-on-each-step story repeats. |
Ok, you raise several points which require separate answers:
|
There is no need to rename the POSIX types, so let's not do it to simplify things Also remove an unnecessary guard (POSIX_ARCH) to avoid mystifying this any more than necessary Related to zephyrproject-rtos#13054 Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
So, while this ticket as about "POSIX subsystem vs ARCH_POSIX" matters, to give a wider perspective, currently POSIX subsystem conflicts with:
As you may imagine, that's too much conflicts to take care of. Of these, conflict with ARCH_POSIX is the most tangled one, least clear how it should be handled at all, and not much useful in practice. That's why it's brought up, and why temporary solution is proposed to just decouple POSIX subsys and ARCH_POSIX for now, and concentrate on its development per se, while dealing with remaining conflicts, which are themselves quite enough. |
@pfalcon : With regard to giving up the support of the POSIX API on top of the POSIX ARCH: |
I'd say you actually should welcome it, because any attempts to "fix" it would likely adversely affect your main usecases for it (simulation, etc.) And again, the talk is about to temporary decouple them, until POSIX subsys matures enough. Then it can be revisited. |
There is no need to rename the POSIX types, so let's not do it to simplify things Also remove an unnecessary guard (POSIX_ARCH) to avoid mystifying this any more than necessary Related to #13054 Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
I understand there is currently no action to be taken by me here, so I unassigned myself |
Yes, the expected action is approving a PR with blacklisting of native_posix from POSIX tests, but I don't haste with it, for as long as there're other PRs to push from that work. |
this is useful for many reason, the primary being able to test with something as simple as native_posix and also get coverage data for that subsystem.
I fully understand the issue and frustration here, been that route myself before. I propose to do it this way:
|
it is either a bug or an RFC, not both... |
For the purpose of 1.14 release planning, it's RFC indeed. |
I've been digging into this today, not on purpose, but we need to decide where the header information is suppose to come from. We have a number of different combinations at play now:
|
Yes, that would be subject of a separate RFC, but I lean towards following option:
The only alternative to that would be:
But I assume that totally makes no sense, and such an option was already considered, and newlib is for a reason part of the SDK and not Zephyr itself. But p.1 of course leaves open question of POSIX subsys support for platforms/toolchains without newlib. And actually, to get most of newlib, we likely would need to patch it, as currently it has some parts #ifdef'ed for Cygwin and RTEMS. |
@aescolar can you please take a look and see if this is still relevant and close if not? |
Subj is a cause of continued cases of failures and frustrating workarounds in Zephyr. Something needs to be done about it. Two obvious choices are:
The text was updated successfully, but these errors were encountered: