-
Notifications
You must be signed in to change notification settings - Fork 13.3k
Failure to pass structure to external function by value on PowerPC #52297
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
Comments
Means compiled with Clang 3.8 instead of GCC for PowerPC as both GCC and Clang work on |
Should probably test this again now that #66050 has landed. |
I wonder if crossbuild on Debian Stretch was affected by them dropping support for PowerPC? If anyone has access to 32-bit PowerPC silicon, then it would be lovely to hear if this still reproduces or not. |
Debian still supports PowerPC, just not through official releases: https://cdimage.debian.org/cdimage/ports/snapshots/2022-03-28/ Cross-builds still work, just make sure you use a current environment. If you need access to big-endian PowerPC hardware, check out the GCC compile farm, see: https://gcc.gnu.org/wiki/CompileFarm Disclaimer: I am one of the Debian Developers who maintains these unofficial ports. |
I am not sure how conclusive this is, but I tried our old reproducer in a Debian 11 container running on OpenSUSE Tumbleweed. Everything works as expected on amd64 both on the host and in the container. Using
whereas using
As it looks like this is fixed and there is most likely nobody working on the original PowerPC-based project any more, I think this should be closed but I am admittedly unsure how reliable the user space emulation is. |
FWIW, the |
Oh okay! My mistake. Thank you for clarifying! Hmm. The GCC Compile Farm appears to have only PowerPC 64-bit hosts (for both BE and LE) and no PowerPC 32-bit hosts, unless one of the Given the Debian buildd logs suggest they were failing the rustc build at the time and it has now gone to passing, and QEMU also passes this now? If this needs to be reopened, it can be, but until then: I'm going to squint and call this close enough to resolved. |
We have a project which makes use of the grpcio crate and want to port this from
amd64
to embeddedarmv7
andpowerpc
targets. Everythings works as expected onarmv7
but we get segmentation faults when calling into gRPC onpowerpc
, both on the actual target as well as within QEMU.We use the
armv7-unknown-linux-gnuabihf
andpowerpc-unknown-linux-gnu
targets of rust/LLVM and the compilers shipped ascrossbuild-essential-{armhf,powerpc}
in Debian Stretch to build the C code and link the final executable.We have isolated the problem to passing a structure to an external function by value and have created the attached reproducer as a minimal example triggering the issue on
powerpc
but working correctly onamd64
andarmv7
. (The reproducer also fails when the C function is compiled using Clang 3.8 as shipped with Debian.)reproducer.tar.gz
The text was updated successfully, but these errors were encountered: