-
Notifications
You must be signed in to change notification settings - Fork 179
Add testing on powerpc to the github CI #3433
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
base: master
Are you sure you want to change the base?
Conversation
e6f9209
to
0dd777f
Compare
ChangeLog: * .github/workflows/ccpp.yml: Add powerpc target compile and test. Signed-off-by: Owen Avery <[email protected]>
A file last modified before I was born is failing to compile because it intentionally uses implicit function declarations |
erm, darwin ppc (original report) is a native target without rustc support, and you're adding a cross target, still without rustc support, but it's even worse as we don't support cross compilation yet. Do we really want to add this? |
My own take (as someone who cares very much about GCC and Rust portability in the long-term) is that it's not worth spending time on this yet. |
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 fantastic the only change i would make is i think it shouldnt be part of ccpp.yml workflow on pull requests but make it its own workflow like the bootstrap one where it runs on a cron and we add the build-badge to the readme
I was thinking this would be good for making sure we don't break big endian back ends, but if rustc doesn't support it, it would be impossible at this point to compile the rust libraries we use. Would probably be good to leave this unmerged for now, although the CI logs on this PR might help us troubleshoot anyways. |
I'm not really sure what you're going to test, as I believe it won't even pass the configure step for gcc. But if you're willing to add cross compilation, an easy way is to use crosstool-ng (we use it in compiler explorer to build the various cross gcc). But it won't solve the fact that we only support native compiler with existing rustc support 🤷 ç |
The big issue we'd have with compiling for a target |
(Strictly speaking, it is the other way round: Rust is without support for Darwin ppc.) But any way of testing on a Big-endian PowerPC will be helpful. There is nothing to CI on Darwin at the moment, of course, since Rust lacks support for the ABI. gccrs from earlier gcc did build and mostly pass tests on Darwin, but rust just doesn’t exist. Once gcc backend is supported, then it might work via mrustc to bootstrap rust. |
Re gcc and rust on PowerPC, see also: rust-lang/rfcs#1312 |
I think the plan is to do something like https://rust-gcc.github.io/2024/09/20/reusing-rustc-components.html#how-do-we-use-them -- compile with rust components disabled, then recompile with them enabled. Come to think of it, we could probably even do some shenanigans like
which would only work when building a native compiler, of course |
Our priority list for selecting a rust compiler would look something like
The stated conditions placed on option 2 would be partially redundant, as after stage 1 of a native compiler build we would have |
@iains Iain, tagging you re |
Keep in mind, everything past the post I linked is just me brainstorming. It hasn't been decided yet or anything |
It looks like this was fixed in https://sourceware.org/git/?p=newlib-cygwin.git;a=commit;h=467b85c58f815b0695c32ff9cb7b8da07d1dfb24 -- if we get compiling working without rustc again before the ~end-of-year release of newlib 4.6, we may have to manually apply it. |
This should help solve #2184