-
Notifications
You must be signed in to change notification settings - Fork 258
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
OpenXR-SDK: error compiling for Raspberry Pi armhf: "No architecture string known!" #463
Comments
Hmm. Rats. OK, so I messed up. I have armhf as armv7a-vfp. (Which makes sense, I explicitly called out hardware floating point in the name just like the debian name.) I'm not sure why I didn't realize armhf is only armv6 instead of armv7. I wonder if this is a debian vs raspbian difference, that sounds familiar... https://registry.khronos.org/OpenXR/specs/1.0/loader.html#architecture-identifiers On the plus side, the Android mapping is clear, and I don't think there are too many users of OpenXR on Linux on ARM, so we can probably fix the mistake if it makes sense. I am just not sure what would make sense here. What version of rpi are you using? Is it unreasonable to insist on a 64-bit distro to get useful XR? (in case of mapping raspberry pi armhf to armv5te aka soft float) The other option, is to have the requirements artificially raised, make that package insist on armv7a instead of just armv6. Means it wouldn't work on rpi1 or 2 but I'm not sure it ever would have in a useful way there... |
Yep. it's a raspbian (RasPiOS) quirk, to support RPi 1. Apparently RPi2 has a v7 even, it's just the 1 (and probably zero) with the armv6. Debian armhf does match my description added to the loader doc (armv7a with VFP). "The port is necessary because the official Debian wheezy armhf release is compatible only with versions of the ARM architecture later than the one used on the Raspberry Pi (ARMv7-A CPUs and higher, vs the Raspberry Pi's ARMv6 CPU)." So I think the right thing to do, is that when you're building for Raspbian, you configure for armhf + armv7a + vfp, and mark the result as not working on an rpi 1. Sorry for the focus on packages, I'm thinking of this from my perspective as the Debian package maintainer. Speaking of which, is there a reason you're not just using the packaged version? |
I'm cross compiling for Raspberry Pi OS 32-bit based on Debian 11, the one reported as "legacy" at: No it's not unreasonable to require 64-bit distro. I don't plan to do any VR on the original Pi, it's just that OpenXR SDK is compiled by default when building latest Qt from the git repository. I can turn it off, but I thought I should report the issue. |
Oh hmm. I wonder why Qt wants OpenXR and what it's doing with it. (and if it would break if we built openxr for ARMv7 instead of ARMv6, if it would fail gracefully) In any case, it's also probably safe to just turn off that openxr dependency on arm 32-bit for raspberry pi os |
Qt bundles a version of OpenXR and as such, Qt compilation fails when compiling that part. Thank you for the quick response! |
I mean OpenXR is packaged in Debian, they could have removed it from RPiOS. Looks like an RPiOS "armhf" package should depend additionally on And yeah in general I think for 32 bit RPiOS just turn off |
Can you try to see if applying this change fixes the build? #464 |
Compiles successfully with the patch applied, thank you! |
This is about failing to cross-compile the OpenXR-SDK project, please redirect me if I'm at the wrong place.
The error is
From the code:
https://github.com/KhronosGroup/OpenXR-SDK/blob/288d3a7ebc1ad959f62d51da75baa3d27438c499/src/common/platform_utils.hpp#L48-L75
For my target
__ARM_ARCH
is set to6
and the following ARM-related macros are defined:The text was updated successfully, but these errors were encountered: