-
Notifications
You must be signed in to change notification settings - Fork 734
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
Build failure on Windows UWP target (aarch64-uwp-windows-msvc, x86_64-uwp-windows-msvc, i686-uwp-windows-msvc) #960
Comments
x86_64-uwp-windows-msvc was successful. Lines 230 to 242 in ddfa683
|
I'm happy to add this. I don't know how to do the test automation for UWP targets. Any ideas? |
This is what I've found about AppVeyor: |
It is fine to require VS 2017 or VS 2019 as the minimum version. My question though is, after we built for, say, aarch64-uwp-windows-msvc, how do we actually run the tests on that plaform? |
...on a x86-64-pc-windows-msvc host. |
Hello @briansmith I'm not familiar with Rust's build system. |
I tried working on the |
Right now, build.rs says "if we're on windows, use yasm or nasm." Instead it needs to say "if we're targetting x86-64 or x86-64 on windows, use yasm or nasm." |
Check out https://boringssl.googlesource.com/boringssl/+/bc7e2cb92d948de5f437e5eef2b1c3ad6281bb35. That's basically what we'll need to do to get it working, on top of adjusting the build system. |
@briansmith |
How are you even installing the rust toolchain for x86_64-uwp-windows-msvc, i686-uwp-windows-msvc, and aarch64-uwp-windows-msvc? I.e. what is the equivalent of The code change is very small, but I can't even test it without being able to install the toolchain. |
I couldn't install the
The DLL built this way (without ring) is now functional under my HoloLen2(Arm64+UWP) and HoloLens1(x86+UWP) environments. My [dependencies.std]
features = ["panic_unwind", "std_detect_dlsym_getauxval", "std_detect_file_io"] |
Is anybody actually using Rust on UWP?
Am I missing something? |
I tried using
|
The time I had to keep up with the stale UWP was over in June of this year. |
It might only be Servo, I don't know. In servo/servo#27848 the intention/desire is stated to keep the UWP/Hololens port alive. It can also be used on Win10 desktop. Unfortunately, the winit port of Servo (regular Linux, Mac, Windows app) is still a bit lagging behind in terms of basic UI elements. I don't know if they would abandon the UWP/Hololens port when the winit port finally gets UI elements, given that they have worked so much on UWP. The main focus still seems to be on others embedding the Servo engine instead of also becoming a web browser of its own. Given the mass of code I doubt Servo's team would accept rustls if openssl had to be kept for UWP.
If there is a new/better way of creating Hololens apps, we should file a Servo issue, but I have found this comment:
Servo compiles everything with Rust nightly (currently nightly-2020-07-27), and uses xargo for UWP.
japaric/xargo#110 says it would mean a Xargo.toml file is missing. https://github.com/servo/servo/blob/master/Xargo.toml |
@sumibi-yakitori Thanks for the update. @Darkspirit Thanks for the very useful info.
Thanks. nightly-2020-07-27 is quite old. I wonder why they're using such an old version? Perhaps just because of the organizational changes? In any case, there are other reason why I need to make the changes that would likely be prerequisites for UWP support, so I'll make those changes and then report back here when they are done. Then perhaps somebody could help with the UWP-specific bits. It would be great if somebody could verify that a very recent version of Rust Nightly (2020-11-29 or later) works with Xargo for the UWP target. |
In #1193 (comment), @bdbai shared this log: https://gist.github.com/bdbai/ff93935e702407bc3125a79ae28b4e31 when building for "thumbv7a-uwp-windows-msvc" @bdbai Could you please tell me how to get a working rust toolchain that can build "hello world" for thumbv7a-uwp-windows-msvc? From there I will be able to help you. |
Since UWP targets are in Tier 3, cargo +nightly build -Z build-std=std,panic_abort --target thumbv7a-uwp-windows-msvc Cargo will automatically build the standard libraries for that target first, followed by other crates. |
I have tried out ring version ring/crypto/poly1305/poly1305_arm.c Line 79 in fe67830
After fixing this, I got a bunch of unresolved symbols, like Lines 138 to 144 in fe67830
|
Please try the newest version of ring 0.17.0 and/or the latest main branch and report back. Also, my understanding from a quick Google is that UWP is dead? Please comment back if that's not the case and I'll reopen this. |
According to Windows app development: options and features as of updated on 10/13/2023, UWP is still a "Currently supported" development option. |
The C code for AAarch64/ARM has been written to only work with GCC/Clang/etc. It probably needs very minor tweaks to work with MSVC. And/or you could set
Yes, the build.rs probably needs to be updated to consider this target. I would accept PRs for this. |
C4146 is a warning, but we treat warnings as errors when you're building from a Git checkout. Please see build.rs where we disable other warnings. Just make a PR that adds C4146 to the list. |
I tried to tweak the build script to include ARM 32 on Windows (see this commit YtFlow@5f8b03c), it still failed with unresovled symbols: Any ideas why it could go wrong? Or shall we just use fallback implementations for this case instead? |
Regarding
|
Regarding |
You need to change the "aarch64" |
Actually, I was specifically working on the
At the time of this issue being created, the |
According to rust-lang/rust#109030, there is no plans for the Rust toolchain to support that target. I suggest we focus on verifying that x86_64-uwp-windows-msvc works first, then aarch64-uwp-windows-msvc. For 32-BIT ARM Windows (!?!?!), you'd probably need to force the use of clang like we do for aarch64-pc-windows-msvc, and/or change build.rs to use |
Log: servo/servo#26005 (comment)
The text was updated successfully, but these errors were encountered: