Skip to content
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

Test on big-endian byte order #4710

Closed
jnohlgard opened this issue Jan 28, 2016 · 7 comments
Closed

Test on big-endian byte order #4710

jnohlgard opened this issue Jan 28, 2016 · 7 comments
Assignees
Labels
Area: network Area: Networking Area: tests Area: tests and testing framework Community: good first issue This issue is good for newcomers to RIOT to be addressed / implemented State: won't fix State: The issue can not or will not be fixed Type: new feature The issue requests / The PR implemements a new feature for RIOT

Comments

@jnohlgard
Copy link
Member

It would be interesting to see an interoperability test between RIOT running on a big-endian CPU (e.g. PowerPC, Sparc, some MIPS) and RIOT running on a little-endian CPU (e.g. x86, most ARM), as well as other IPv6 systems.
This interoperability test could possibly detect if there are any places where the byte order conversion is wrongly chosen or missing.

As a starting point without any extra hardware: It is possible to emulate ppc and sparc in qemu and run RIOT native on top of a Linux installation in such a system.

@jnohlgard jnohlgard added Newbie-Task-Candidate Area: network Area: Networking Area: tests Area: tests and testing framework labels Jan 28, 2016
@miri64
Copy link
Member

miri64 commented Jan 28, 2016

@haukepetersen and I were jesting about this at the last Hack'n'ACK that RIOT is likely to fail on big-endian systems, since some drivers basically assume little-endianess if little-endian is required (i.e. IEEE 802.15.4 radios). In #4646 I tried to straighten some kinks, but I bet I did not find all of them. But as far as I know some of our processors have switchable endianess, so indeed it maybe a good idea to start with those.

@haukepetersen
Copy link
Contributor

This would indeed be very interesting to see, though we would need to find a suitable big-endian platform to port RIOT to. As a fact we know, that many device drivers are not able to run on big-endian systems, as there is a lot of manual byte ordering for little endian implemented.

So how about we look out for a suitable, easy-to-port big endian platform first?!

@miri64
Copy link
Member

miri64 commented Oct 18, 2016

Bump

@miri64 miri64 added Type: new feature The issue requests / The PR implemements a new feature for RIOT Community: good first issue This issue is good for newcomers to RIOT to be addressed / implemented and removed Feature Request labels Sep 30, 2018
@stale
Copy link

stale bot commented Aug 10, 2019

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. If you want me to ignore this issue, please mark it with the "State: don't stale" label. Thank you for your contributions.

@stale stale bot added the State: stale State: The issue / PR has no activity for >185 days label Aug 10, 2019
@stale stale bot closed this as completed Sep 10, 2019
@miri64
Copy link
Member

miri64 commented Sep 10, 2019

I think we should still try to do this.

@miri64 miri64 reopened this Sep 10, 2019
@stale stale bot removed the State: stale State: The issue / PR has no activity for >185 days label Sep 10, 2019
@miri64 miri64 added the State: don't stale State: Tell state-bot to ignore this issue label Sep 10, 2019
@MrKevinWeiss MrKevinWeiss added this to the Release 2021.07 milestone Jun 22, 2021
@MrKevinWeiss MrKevinWeiss removed this from the Release 2021.07 milestone Jul 15, 2021
@maribu
Copy link
Member

maribu commented Sep 16, 2022

Today, all big-endian machines are found in museums only, rendering endianess-safety a purely academic issue. (Still, our code base looks quite endianess-safe.)

IMO this can be closed as "WONTFIX", as the effort to set up toolchains and VMs to actually test on big endian systems is not worth the gain.

We still do code review for endianess-safety, which hopefully catches most of the issues. And if and when big-endian system become relevant again, there will be means to actually test this and fix the instances that slipped through the code review.

If anyone disagrees with closing this, feel free to re-open.

@maribu maribu closed this as completed Sep 16, 2022
@miri64 miri64 added State: won't fix State: The issue can not or will not be fixed and removed State: don't stale State: Tell state-bot to ignore this issue labels Sep 19, 2022
@miri64
Copy link
Member

miri64 commented Sep 19, 2022

IMO this can be closed as "WONTFIX",

Marked it accordingly ;-).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area: network Area: Networking Area: tests Area: tests and testing framework Community: good first issue This issue is good for newcomers to RIOT to be addressed / implemented State: won't fix State: The issue can not or will not be fixed Type: new feature The issue requests / The PR implemements a new feature for RIOT
Projects
None yet
Development

No branches or pull requests

5 participants