-
-
Notifications
You must be signed in to change notification settings - Fork 6
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
Fail to build over 32-bit systems #16
Comments
I have no idea what is causing that build error |
After a little test in a jail, I found the problem. This is a new procedure started in GCC-12. The explanation is here[1]. [1] https://gcc.gnu.org/gcc-12/changes.html See: An ABI incompatibility between C and C++ when passing or returning by value certain aggregates containing zero width bit-fields has been discovered on various targets. As mentioned in PR102024, since the PR42217 fix in GCC 4.5 the C++ front-end has been removing zero width bit-fields from the internal representation of the aggregates after the layout of those aggregates, but the C front-end kept them, so passing e.g. struct S { float a; int : 0; float b; } or struct T { float c; int : 0; } by value could differ between C and C++. Starting with GCC 12 the C++ front-end no longer removes those bit-fields from the internal representation and per clarified psABI some targets have been changed, so that they either ignore those bit-fields in the argument passing by value decisions in both C and C++, or they always take them into account. x86-64, ARM and AArch64 will always ignore them (so there is a C ABI incompatibility between GCC 11 and earlier with GCC 12 or later), PowerPC64 ELFv2 and S/390 always take them into account (so there is a C++ ABI incompatibility, GCC 4.4 and earlier compatible with GCC 12 or later, incompatible with GCC 4.5 through GCC 11). RISC-V has changed the handling of these already starting with GCC 10. As the ABI requires, MIPS takes them into account handling function return values so there is a C++ ABI incompatibility with GCC 4.5 through 11. For function arguments on MIPS, refer to the MIPS specific entry. GCC 12 on the above targets will report such incompatibilities as warnings or other diagnostics unless -Wno-psabi is used. Using Thanks for your attention. |
From this issue[1], WarmUpTill solved the problem using the following line for CMake:
I found errors when building move-transition, 3d-effect and source-clone over x86. |
That solution looks good to me, I will look at it more later. If you want to speed up the process you can create pull requests with the changes. |
Sorry, I tried something, but was not able to implement this change. |
Hi @exeldro,
When trying to build from source the version 0.1.4 over Intel x86 (Debian i386), I got the following error:
You can see the full building process here[1]. Maybe this is the same issue discussed here[2].
[1] https://salsa.debian.org/debian/obs-source-clone/-/jobs/4307052
[2] kcat/openal-soft#541
Thanks in advance.
The text was updated successfully, but these errors were encountered: