Uh oh!
There was an error while loading. Please reload this page.
Enable thumbv7a-pc-windows-msvc target build end to end in rust/master - #60895
Conversation
rust-highfive
commented
May 16, 2019
Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @nikomatsakis (or someone else) soon. If any changes to this PR are deemed necessary, please add them as extra commits. This ensures that the reviewer can see what has changed since they last reviewed the code. Due to the way GitHub handles out-of-date commits, this should also make it reasonably obvious what issues have or haven't been addressed. Large or tricky changes may require several passes of review and changes. Please see the contribution instructions for more information. |
rust-highfive
commented
May 16, 2019
The job Click to expand the log.I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact |
chandde
commented
May 16, 2019
Undo the changes to bump compiler_builtins to hopefully have a good build. The version bump perhaps is worth another separate PR, @alexcrichton ? |
rust-highfive
commented
May 17, 2019
The job Click to expand the log.I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact |
mzji
commented
May 17, 2019
@chandde I think you should wrap this line to not exceed 80 columns. |
mati865
commented
May 17, 2019
alexcrichton
commented
May 17, 2019
r=me with tidy passing, thanks @chandde! |
Uh oh!
There was an error while loading. Please reload this page.
chandde
commented
May 17, 2019
thanks for the comments, I'm out attending some school activities with my son and won't have access to a pc until tonight. Will address all the comments later and get back. |
rust-highfive
commented
May 18, 2019
The job Click to expand the log.I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact |
chandde
commented
May 18, 2019
Uh oh!
There was an error while loading. Please reload this page.
mzji
commented
May 18, 2019
No, the tidy error line is the 40th line of |
Now it's done done 759921e I misread the comment and thought it's about the cfg line |
chandde
commented
May 19, 2019
I don't understand the codes, did you say you're ok with the change once tidy passing? who's gonna sign off & merge? @alexcrichton |
jonas-schievink
commented
May 19, 2019
bors
commented
May 19, 2019
📌 Commit 759921e has been approved by |
Enable thumbv7a-pc-windows-msvc target build end to end in rust/master With this PR, plus another commit rust-lang/compiler-builtins@cf98161, I'm able to build the target thumbv7a-pc-windows-msvc successfully, and I'm able to use the stage2 artifacts to build arm32 projects. The commit in compiler_builtins is in release 0.1.14, the current cargo.lock in rust master still uses 0.1.12, so I bumped the compiler_builtins version in cargo.lock to 0.1.15 The command I used to build rust ``` c:\python27\python.exe x.py build --host x86_64-pc-windows-msvc --build x86_64-pc-windows-msvc --target thumbv7a-pc-windows-msvc --verbose ``` **Changes** 1. update cargolock to use compiler_builtins 0.1.15 2. handle libunwind in libtest for thumv7a the same as what we have for aarch64 3. in llvm codegen add a field in CodegenContext to carry the arch, so later in create_msvc_imps function, the arch can be used to check against "x86", instead of 32 pointer width. Apparently Thumv7a is handled differently than x86. **Background** I'm from Microsoft working on enabling Azure IoTEdge on ARM32 Windows IoTCore, Azure IoTEdge has a component called IoTEdged written in rust as a NT service running on Windows, so we need to enable rust on thumbv7a in order to have full IoTEdge. My colleague had made some heavy lifting and we've been using our private toolchain to build IoTEdged in our devops pipeline, because at that time we cannot build thumbv7a target end to end successfully. This change is a followup to enable the end to end build for thumbv7a-pc-windows-msvc target. **Next step** I'll submit more changes to have this target built nightly in rust/master, to achieve the same availability for aarch64-pc-windows-msvc, indexed here https://rust-lang.github.io/rustup-components-history/aarch64-pc-windows-msvc.html and can be manually installed. **Please do share what takes to make this happen, is there a formal process I need to follow\?**
Rollup of 6 pull requests Successful merges: - #60590 (Test interaction of unions with non-zero/niche-filling optimization) - #60745 (Perform constant propagation into terminators) - #60895 (Enable thumbv7a-pc-windows-msvc target build end to end in rust/master) - #60908 (Fix lints handling in rustdoc) - #60960 (Stop using gensyms in HIR lowering) - #60962 (Fix data types indication) Failed merges: r? @ghost
chandde
commented
May 20, 2019
thanks for your review! now I'd like to have master branch build the target thumbv7a-pc-windows-msvc nightly, so user can install the target using rustup, without locally building the tool chain, is there instruction how to do it? ideally the same availability for aarch64-pc-windows-msvc here https://rust-lang.github.io/rustup-components-history/aarch64-pc-windows-msvc.html |
alexcrichton
commented
May 20, 2019
@chandde I think you'll basically want to grep around for aarch64-pc-windows-msvc in this repository and mirror its configuration, wherever aarch64 is mentioned thumbv7a probably also needs to be mentioned |
I'll add thumbv7a to whereever aarch64 has been mentioned, i.e. follow this search https://github.com/search?q=aarch64-pc-windows-msvc+user%3Arust-lang+repo%3Arust&type=Code Which exact file (from above search) that enables aarch64 for nightly build? once I make these changes locally, how do I verify? I'd expect I can verify things locally instead of keep pulling from next good nightly build.. Also where the builds happens? that I can take a look at build status, pipelines, steps, to get a better idea how a target is built |
alexcrichton
commented
May 20, 2019
Currently the aarch64 target is built on AppVeyor, configured here. |
With this PR, plus another commit rust-lang/compiler-builtins@cf98161, I'm able to build the target thumbv7a-pc-windows-msvc successfully, and I'm able to use the stage2 artifacts to build arm32 projects. The commit in compiler_builtins is in release 0.1.14, the current cargo.lock in rust master still uses 0.1.12, so I bumped the compiler_builtins version in cargo.lock to 0.1.15
The command I used to build rust
Changes
Background
I'm from Microsoft working on enabling Azure IoTEdge on ARM32 Windows IoTCore, Azure IoTEdge has a component called IoTEdged written in rust as a NT service running on Windows, so we need to enable rust on thumbv7a in order to have full IoTEdge. My colleague had made some heavy lifting and we've been using our private toolchain to build IoTEdged in our devops pipeline, because at that time we cannot build thumbv7a target end to end successfully. This change is a followup to enable the end to end build for thumbv7a-pc-windows-msvc target.
Next step
I'll submit more changes to have this target built nightly in rust/master, to achieve the same availability for aarch64-pc-windows-msvc, indexed here https://rust-lang.github.io/rustup-components-history/aarch64-pc-windows-msvc.html and can be manually installed. Please do share what takes to make this happen, is there a formal process I need to follow?