Skip to content
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

Added arm-none-eabi target #60135

Closed
wants to merge 4 commits into from
Closed

Conversation

Gilnaa
Copy link

@Gilnaa Gilnaa commented Apr 20, 2019

Hello,

This PR adds a new target for compiling bare-metal ARM Cortex-A programs.

I've managed to build and use this new target, but I am unclear with regards to a few details:

  • I'm not sure what are the criteria for choosing between lld and gnu-ld
  • When trying to build with ./x.py build --target arm-none-eabi, the script tries to compile with cc, instead of arm-none-eabi-gcc. It could find different cross-compilers just fine, but I didn't understand where I had to specify it. (I ended up specifying CC_arm_none_eabi=arm-none-eabi-gcc in the environment).
  • I couldn't find where I can exclude std from compiling for this target (as I guess occurs with other bare-metal targets).
  • Should I add a separate target for eabihf?

@rust-highfive
Copy link
Collaborator

r? @zackmdavis

(rust_highfive has picked a reviewer for you, use r? to override)

@rust-highfive rust-highfive added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Apr 20, 2019
@rust-highfive
Copy link
Collaborator

The job x86_64-gnu-llvm-6.0 of your PR failed on Travis (raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
travis_time:end:2cec2834:start=1555774435094141694,finish=1555774520419916522,duration=85325774828
$ git checkout -qf FETCH_HEAD
travis_fold:end:git.checkout

Encrypted environment variables have been removed for security reasons.
See https://docs.travis-ci.com/user/pull-requests/#pull-requests-and-security-restrictions
$ export SCCACHE_BUCKET=rust-lang-ci-sccache2
$ export SCCACHE_REGION=us-west-1
$ export GCP_CACHE_BUCKET=rust-lang-ci-cache
$ export AWS_ACCESS_KEY_ID=AKIA46X5W6CZEJZ6XT55
---
[00:03:12] tidy error: /checkout/src/librustc_target/spec/arm_none_eabi.rs:23: trailing whitespace
[00:03:14] some tidy checks failed
[00:03:14] 
[00:03:14] 
[00:03:14] command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-tools-bin/tidy" "/checkout/src" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "--no-vendor" "--quiet"
[00:03:14] 
[00:03:14] 
[00:03:14] failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test src/tools/tidy
[00:03:14] Build completed unsuccessfully in 0:00:44
[00:03:14] Build completed unsuccessfully in 0:00:44
[00:03:14] make: *** [tidy] Error 1
[00:03:14] Makefile:67: recipe for target 'tidy' failed
The command "stamp sh -x -c "$RUN_SCRIPT"" exited with 2.
travis_time:start:045ae480
$ date && (curl -fs --head https://google.com | grep ^Date: | sed 's/Date: //g' || true)
Sat Apr 20 15:38:43 UTC 2019
---
travis_time:end:2116bf1e:start=1555774723965334947,finish=1555774723969597430,duration=4262483
travis_fold:end:after_failure.3
travis_fold:start:after_failure.4
travis_time:start:2992650e
$ ln -s . checkout && for CORE in obj/cores/core.*; do EXE=$(echo $CORE | sed 's|obj/cores/core\.[0-9]*\.!checkout!\(.*\)|\1|;y|!|/|'); if [ -f "$EXE" ]; then printf travis_fold":start:crashlog\n\033[31;1m%s\033[0m\n" "$CORE"; gdb --batch -q -c "$CORE" "$EXE" -iex 'set auto-load off' -iex 'dir src/' -iex 'set sysroot .' -ex bt -ex q; echo travis_fold":"end:crashlog; fi; done || true
travis_fold:end:after_failure.4
travis_fold:start:after_failure.5
travis_time:start:0dee2b01
travis_time:start:0dee2b01
$ cat ./obj/build/x86_64-unknown-linux-gnu/native/asan/build/lib/asan/clang_rt.asan-dynamic-i386.vers || true
cat: ./obj/build/x86_64-unknown-linux-gnu/native/asan/build/lib/asan/clang_rt.asan-dynamic-i386.vers: No such file or directory
travis_fold:end:after_failure.5
travis_fold:start:after_failure.6
travis_time:start:26dce132
$ dmesg | grep -i kill

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 @TimNN. (Feature Requests)

@Centril Centril added relnotes Marks issues that should be documented in the release notes of the next release. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Apr 20, 2019
@Centril Centril added this to the 1.36 milestone Apr 20, 2019
@zackmdavis
Copy link
Member

r? @alexcrichton

@alexcrichton
Copy link
Member

alexcrichton commented Apr 22, 2019

@japaric or @jamesmunns can y'all comment on this perhaps? I suspect this is highly related to the embedded WG!

@jamesmunns
Copy link
Member

I think @japaric is going to know more than I will, but I have a couple initial comments.

Regarding Naming: If this is for Cortex-A targets, this covers a couple of different possible targets, particularly spanning the ARMv7A and ARMv8A architectures, as well as 32 vs 64 bit targets. I can't remember what LLVM's naming scheme is exactly (we have armv7- for 32 bit and aarch64 for 64 bit targets), and I think the arm-none-eabi target would correlate to armv6 targets, of which I don't think any of the Cortex-A devices are. I don't know what the breakdown is for Cortex-A targets with/without hardfloat, @Amanieu probably would though.

Depending on the answers above, this might need to be split into a couple targets, such as:

  • armv7-none-eabi
  • armv7-none-eabihf
  • aarch64-none-eabi
  • aarch64-none-eabihf

Again, not sure if all of the items above are actually "real" targets.

Regarding lld, we are defaulting to that for bare metal targets if lld supports them well. I would expect this to be the case for Cortex-A targets, so I would suggest starting with that if possible.

I'm not sure about the CI/x.py tooling, that's not something I touch often enough to know off the top of my head. You can definitely grep around for what some of the other bare metal targets like the thumb* targets do in these cases.

CC also maybe @posborne and @SergioBenitez, who have done bare metal Cortex-A things in the past.

@jamesmunns
Copy link
Member

Edit, oops, I meant to tag @phil-opp, rather than Paul (sorry for the noise). @andre-richter is also probably a good person to tag regarding ARM Cortex-A, or anyone from the Cortex-A team on the embedded-wg.

features: "+strict-align,+v6".to_string(),
executables: true,
relocation_model: "static".to_string(),
max_atomic_width: Some(64),
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do the 32 bit targets support 64 bit atomics?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

According to other arm-* targets, it does

@Gilnaa
Copy link
Author

Gilnaa commented Apr 23, 2019

Bare metal aarch64 targets exist already, so I don't think it's relevant.

As for v6, I assumed I should match other hosted arm targets, and that you'd be able (as a user) to specify either your exact CPU or a feature set.

Edit: I looked at it and it seems Arm-V6 are mostly old legacy CPUs that can probably be targeted by one of the thumb targets.

I wonder about other arm targets and why don't they specify +v7.

Even if we do, should we keep the name to match the gcc/llvm target?

@Gilnaa
Copy link
Author

Gilnaa commented Apr 23, 2019

It looks like the current state of arm targets is that there is both an arm_unknown_linux_gnueabi[hf] and armv7_unknown_linux_gnueabihf.

We can probably add none targets to both, though I'm not sure anymore of the significance of the former.

@parched
Copy link
Contributor

parched commented Apr 23, 2019

FWIW, the naming of the rust arm-unknown-linux-* targets is a bit inconsistent for historical reasons, they should really be armv6-unknown-linux-* to disambiguate with the other arm targets.

I suspect the target you are wanting to add is armv7a-none-eabi but it depends which cores you are trying to target and what for?

@Gilnaa
Copy link
Author

Gilnaa commented Apr 23, 2019

I am running on v7 cores using hard-float, but I'm not really using any fp-operations so it doesn't really matter to me.

I've replaced the arm-none-eabi target with armv7-none-eabihf. (seeing as there's no other armv7- target that is without hard-float).
In order to compile libcore correctly I've had to set the following env variables:

export CC_armv7_none_eabihf=arm-none-eabi-gcc
export CFLAGS_armv7_none_eabihf="-marm -march=armv7-a -mfloat-abi=hard -mfpu=vfpv3-d16"

I'm sure there's somewhere I can specify these variables inside the toolchain, but I can't find it.

@andre-richter
Copy link
Member

andre-richter commented Apr 23, 2019

This is probably a good time to streamline the naming of the ARM bare metal targets before we bring in a new one with yet a different naming.

We already have the aarch64-unknown-none target upstream for bare-metal. I chose the name back then because I saw this one being used in LLVM if I remember correctly. Likewise there was a "armv7-unknown-none" in LLVM I think.

Unfortunately, aarch64-unknown-none is hf-enabled, although not showing it in the name. In the end, we would want both.
We have a (neglected) issue open to rectify this by bringing in both hf and non-hf targets(rust-embedded/wg#230).

I think https://github.com/rust-embedded/rust-raspi3-OS-tutorials is one of the few, if not the only "popular" user of aarch64-unknown-none currently, so I would also be open to introduce a breaking change in order to streamline our target naming.

I am unsure who should make the call, though. Probably @parched due to his affiliation ;)

// For example, `-C target-cpu=cortex-a7`.

use crate::spec::{LinkerFlavor, LldFlavor, PanicStrategy, Target, TargetOptions, TargetResult};

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You probably want +strict-align for bare-metal.

It can bite you with a hard to find bugs if alignment errors happen. Made the experience already: c4e4614

@Gilnaa
Copy link
Author

Gilnaa commented Apr 23, 2019

My general line of thought was int favour of keeping names same to GCC/LLVM, but I also assumed the scheme was consistent, so I don't have an opinion on the subject anymore.

On the one hand, breaking compatibility sounds a bit scary, but then again, it's not like code that wasn't valid/invalid before will be now.

@andre-richter
Copy link
Member

If we base the discussion on http://clang.llvm.org/docs/CrossCompilation.html#general-cross-compilation-options-in-clang, I think we need the <sub> field, so the name of the target of this PR has to start with armv7.

Furthermore, for <vendor>, we have the choice between unknown and omitting it. In my opinion, verbosity doesn't hurt, and we've used it already with the aarch64 target.

<sys> is easy to answer, it needs to be none.

So far, we would be at armv7-unknown-none. Where I personally struggle right now due to lack of experience is the <abi> field.
I think here its tradition to differentiate between eabi and eabihf, like mentioned in @jamesmunns's comment.
In the aarch64-unknown-none target, we give llvm_target: "aarch64-unknown-none".to_string(), to LLVM (https://github.com/rust-lang/rust/blob/master/src/librustc_target/spec/aarch64_unknown_none.rs).

What ABI are we even getting here? unknown? eabi? elf (ELF at least is what the unix file command tells about the compiled output. Would we get ELF with eabi as well)?
So technically, would we need to have unknown and unknownhf?

@Gilnaa
Copy link
Author

Gilnaa commented Apr 23, 2019

I think omitting unknown in this case is for the better, not sure if it adds anything.

Out of the currently available none-targets, 12 are simply "none", as opposed to 5 "unknown-none" (of which, 4 are riscv and one is aarch64).

More specifically, all other arm or thumb targets are of the former form, and end with either eabi or eabihf

@parched
Copy link
Contributor

parched commented Apr 23, 2019

My general line of thought was int favour of keeping names same to GCC/LLVM,

I agree with this but there are some subtleties here

  • GCC has multilib single arch compilers, i.e., arm-none-eabi-gcc is generally configured to support about 6 different LLVM/Rust targets. Which one you get depends on which -march/-mfpu flags you use.
  • LLVM doesn't need the full target name and will guess the rest for you. You can happily use just armv7 which ends up being armv7a-unknown-none-eabi.

IMO the target(s) should be called armv7a-none-eabi(hf). Note I've included the a which the existing linux targets have omitted because an armv7r-linux or armv7m-linux target is unlikely but we already have armv7r-none targets.

Whether we want an eabi or eabihf target depends on the use case (both would be ideal but, IMO, eabi would suffice for now). Even your target CPU has an FPU, to use the eabihf target, you must enable the FPU in assembly code before running the rust code. That's because the compiler may use FP registers regardless of whether you explicitly use floating point in your code (especially if you enable neon).

I don't have a strong opinion on whether to include the unknown vendor. That's something that's inconsistent throughout all the Rust targets so probably doesn't need to solved now. (IMO ultimately they should all be changed to include the vendor along with defaulting to unknown if the user doesn't specify). For now I think it mostly makes sense to follow the majority of other none targets and leave it out.

@andre-richter
Copy link
Member

Out of the currently available none-targets, 12 are simply "none", as opposed to 5 "unknown-none" (of which, 4 are riscv and one is aarch64).

Yes, but there is a total of 8 aarch64 targets which start with aarch64-unknown in the current rust tree.

How about:

  • armv7a-none-eabi
  • armv7a-none-eabihf
  • aarch64-unknown-none-eabi
  • aarch64-unknown-none-eabihf

This way, we would be consistent with regards to the <vendor> field between aarch64 and other ARM targets in the current Rust tree, and adhere to all the other points we made so far. I would prepare a PR for the aarch64 stuff accordingly. Would that make sense to everyone?

@Gilnaa
Copy link
Author

Gilnaa commented Apr 23, 2019

Makes perfect sense, I'll fix the naming when I get home

@bors bors added the S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. label May 2, 2019
kennytm added a commit to kennytm/rust that referenced this pull request May 2, 2019
Added arm-none-eabi target

Hello,

This PR adds a new target for compiling bare-metal ARM Cortex-A programs.

I've managed to build and use this new target, but I am unclear with regards to a few details:

- I'm not sure what are the criteria for choosing between lld and gnu-ld
- When trying to build with `./x.py build --target arm-none-eabi`, the script tries to compile with `cc`, instead of `arm-none-eabi-gcc`. It could find different cross-compilers just fine, but I didn't understand where I had to specify it. (I ended up specifying `CC_arm_none_eabi=arm-none-eabi-gcc` in the environment).
- I couldn't find where I can exclude std from compiling for this target (as I guess occurs with other bare-metal targets).
- Should I add a separate target for `eabihf`?
Centril added a commit to Centril/rust that referenced this pull request May 2, 2019
Added arm-none-eabi target

Hello,

This PR adds a new target for compiling bare-metal ARM Cortex-A programs.

I've managed to build and use this new target, but I am unclear with regards to a few details:

- I'm not sure what are the criteria for choosing between lld and gnu-ld
- When trying to build with `./x.py build --target arm-none-eabi`, the script tries to compile with `cc`, instead of `arm-none-eabi-gcc`. It could find different cross-compilers just fine, but I didn't understand where I had to specify it. (I ended up specifying `CC_arm_none_eabi=arm-none-eabi-gcc` in the environment).
- I couldn't find where I can exclude std from compiling for this target (as I guess occurs with other bare-metal targets).
- Should I add a separate target for `eabihf`?
@bors
Copy link
Contributor

bors commented May 4, 2019

⌛ Testing commit c8baec9 with merge d3e91159d42eff4a82cf0b7a55994d4434cecc8c...

@bors
Copy link
Contributor

bors commented May 4, 2019

💔 Test failed - checks-travis

@bors bors added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels May 4, 2019
@rust-highfive
Copy link
Collaborator

The job dist-various-1 of your PR failed on Travis (raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
[00:03:45]  ---> 935f81178b9d
[00:03:45] Step 51/56 : ENV TARGETS=$TARGETS,thumbv7neon-unknown-linux-gnueabihf
[00:03:45]  ---> Using cache
[00:03:45]  ---> 160f6ee3d14d
[00:03:45] Step 52/56 : ENV CC_mipsel_unknown_linux_musl=mipsel-openwrt-linux-gcc     CC_mips_unknown_linux_musl=mips-openwrt-linux-gcc     CC_sparc64_unknown_linux_gnu=sparc64-linux-gnu-gcc     CC_x86_64_unknown_redox=x86_64-unknown-redox-gcc     CC_armebv7r_none_eabi=arm-none-eabi-gcc     CC_armv7a_none_eabi=arm-none-eabi-gcc     CC_armv7a_none_eabihf=arm-none-eabi-gcc     CC_thumbv7neon_unknown_linux_gnueabihf=arm-linux-gnueabihf-gcc     AR_thumbv7neon_unknown_linux_gnueabihf=arm-linux-gnueabihf-ar     CXX_thumbv7neon_unknown_linux_gnueabihf=arm-linux-gnueabihf-g++
[00:03:45]  ---> 1d86202bd6b5
[00:03:45] Step 53/56 : ENV RUST_CONFIGURE_ARGS       --musl-root-armv5te=/musl-armv5te       --musl-root-arm=/musl-arm       --musl-root-armhf=/musl-armhf       --musl-root-armv7=/musl-armv7       --musl-root-aarch64=/musl-aarch64       --musl-root-mips=/musl-mips       --musl-root-mipsel=/musl-mipsel       --enable-emscripten       --disable-docs
[00:03:45]  ---> Using cache
[00:03:45]  ---> 13f0c5ce979f
---
[01:02:51] travis_time:end:test_run-make:start=1556953432303417126,finish=1556953432722829229,duration=419412103

[01:02:51] [TIMING] Compiletest { compiler: Compiler { stage: 2, host: "x86_64-unknown-linux-gnu" }, target: "thumbv7em-none-eabihf", mode: "run-make", suite: "run-make", path: Some("src/test/run-make"), compare_mode: None } -- 0.435
[01:02:51] Build completed successfully in 0:57:20
[01:02:51] + python2.7 ../x.py dist --target asmjs-unknown-emscripten,wasm32-unknown-emscripten,x86_64-rumprun-netbsd,mips-unknown-linux-musl,mipsel-unknown-linux-musl,arm-unknown-linux-musleabi,arm-unknown-linux-musleabihf,armv5te-unknown-linux-gnueabi,armv5te-unknown-linux-musleabi,armv7-unknown-linux-musleabihf,aarch64-unknown-linux-musl,sparc64-unknown-linux-gnu,x86_64-unknown-redox,thumbv6m-none-eabi,thumbv7m-none-eabi,thumbv7em-none-eabi,thumbv7em-none-eabihf,thumbv8m.base-none-eabi,thumbv8m.main-none-eabi,thumbv8m.main-none-eabihf,riscv32imc-unknown-none-elf,riscv32imac-unknown-none-elf,riscv64imac-unknown-none-elf,riscv64gc-unknown-none-elf,armebv7r-none-eabi,armebv7r-none-eabihf,armv7r-none-eabi,armv7r-none-eabihf,armv7a-none-eabi,armv7a-none-eabihf,thumbv7neon-unknown-linux-gnueabihf
[01:02:54] git could not determine the LLVM submodule commit hash. Assuming that an LLVM build is necessary.
[01:02:54] git could not determine the LLVM submodule commit hash. Assuming that an LLVM build is necessary.
[01:02:54] Dist docs (asmjs-unknown-emscripten)
[01:02:54]  skipping - docs disabled
---
[01:37:25]    Compiling compiler_builtins v0.1.10
[01:37:28] error: failed to run custom build command for `compiler_builtins v0.1.10`
[01:37:28] process didn't exit successfully: `/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-std/release/build/compiler_builtins-42fce5e38c1933b0/build-script-build` (exit code: 101)
[01:37:28] --- stdout
[01:37:28] cargo:rerun-if-changed=build.rs
[01:37:28] cargo:compiler-rt=/cargo/registry/src/github.mirror.nvdadr.com-1ecc6299db9ec823/compiler_builtins-0.1.10/compiler-rt
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/absvdi2.c
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/absvsi2.c
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/absvti2.c
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/addvdi3.c
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/addvsi3.c
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/addvti3.c
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/arm/aeabi_cdcmp.S
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/arm/aeabi_cdcmpeq_check_nan.c
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/arm/aeabi_cfcmp.S
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/arm/aeabi_cfcmpeq_check_nan.c
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/arm/aeabi_div0.c
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/arm/aeabi_drsub.c
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/arm/aeabi_frsub.c
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/apple_versioning.c
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/arm/bswapdi2.S
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/arm/bswapsi2.S
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/arm/clzdi2.S
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/arm/clzsi2.S
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/clzti2.c
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/cmpdi2.c
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/cmpti2.c
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/ctzdi2.c
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/ctzsi2.c
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/ctzti2.c
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/divdc3.c
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/arm/divmodsi4.S
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/divsc3.c
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/divxc3.c
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/extendhfsf2.c
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/ffsti2.c
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/arm/fixdfsivfp.S
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/arm/fixsfsivfp.S
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/arm/fixunsdfsivfp.S
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/arm/fixunssfsivfp.S
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/arm/floatsidfvfp.S
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/arm/floatsisfvfp.S
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/arm/floatunssidfvfp.S
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/arm/floatunssisfvfp.S
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/int_util.c
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/arm/modsi3.S
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/muldc3.c
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/mulsc3.c
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/mulvdi3.c
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/mulvsi3.c
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/mulvti3.c
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/mulxc3.c
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/negdf2.c
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/arm/negdf2vfp.S
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/negdi2.c
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/negsf2.c
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/arm/negsf2vfp.S
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/negti2.c
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/negvdi2.c
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/negvsi2.c
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/negvti2.c
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/paritydi2.c
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/paritysi2.c
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/parityti2.c
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/popcountdi2.c
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/popcountsi2.c
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/popcountti2.c
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/powixf2.c
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/arm/restore_vfp_d8_d15_regs.S
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/arm/save_vfp_d8_d15_regs.S
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/subvdi3.c
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/subvsi3.c
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/subvti3.c
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/arm/switch16.S
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/arm/switch32.S
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/arm/switch8.S
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/arm/switchu8.S
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/arm/sync_synchronize.S
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/truncdfhf2.c
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/truncdfsf2.c
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/truncsfhf2.c
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/ucmpdi2.c
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/ucmpti2.c
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/arm/udivmodsi4.S
[01:37:28] cargo:rerun-if-changed=./compiler-rt/lib/builtins/arm/umodsi3.S
[01:37:28] TARGET = Some("armv7a-none-eabihf")
[01:37:28] HOST = Some("x86_64-unknown-linux-gnu")
[01:37:28] HOST = Some("x86_64-unknown-linux-gnu")
[01:37:28] CC_armv7a-none-eabihf = Some("sccache arm-none-eabi-gcc")
[01:37:28] CFLAGS_armv7a-none-eabihf = Some("-ffunction-sections -fdata-sections -fPIC")
[01:37:28] CRATE_CC_NO_DEFAULTS = None
[01:37:28] DEBUG = Some("false")
[01:37:28] CARGO_CFG_TARGET_FEATURE = Some("aclass,dsp,v5te,v6,v6k,v6t2,v7,vfp2,vfp3")
[01:37:28] CC_armv7a-none-eabihf = Some("sccache arm-none-eabi-gcc")
[01:37:28] CFLAGS_armv7a-none-eabihf = Some("-ffunction-sections -fdata-sections -fPIC")
[01:37:28] CRATE_CC_NO_DEFAULTS = None
[01:37:28] CARGO_CFG_TARGET_FEATURE = Some("aclass,dsp,v5te,v6,v6k,v6t2,v7,vfp2,vfp3")
[01:37:28] running: "sccache" "arm-none-eabi-gcc" "-O2" "-ffunction-sections" "-fdata-sections" "-fPIC" "-ffunction-sections" "-fdata-sections" "-fPIC" "-fno-builtin" "-fvisibility=hidden" "-ffreestanding" "-DVISIBILITY_HIDDEN" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-std/armv7a-none-eabihf/release/build/compiler_builtins-5c9fe6f284ee09ad/out/./compiler-rt/lib/builtins/absvdi2.o" "-c" "./compiler-rt/lib/builtins/absvdi2.c"
[01:37:28] exit code: 0
[01:37:28] running: "sccache" "arm-none-eabi-gcc" "-O2" "-ffunction-sections" "-fdata-sections" "-fPIC" "-ffunction-sections" "-fdata-sections" "-fPIC" "-fno-builtin" "-fvisibility=hidden" "-ffreestanding" "-DVISIBILITY_HIDDEN" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-std/armv7a-none-eabihf/release/build/compiler_builtins-5c9fe6f284ee09ad/out/./compiler-rt/lib/builtins/absvsi2.o" "-c" "./compiler-rt/lib/builtins/absvsi2.c"
[01:37:28] exit code: 0
[01:37:28] running: "sccache" "arm-none-eabi-gcc" "-O2" "-ffunction-sections" "-fdata-sections" "-fPIC" "-ffunction-sections" "-fdata-sections" "-fPIC" "-fno-builtin" "-fvisibility=hidden" "-ffreestanding" "-DVISIBILITY_HIDDEN" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-std/armv7a-none-eabihf/release/build/compiler_builtins-5c9fe6f284ee09ad/out/./compiler-rt/lib/builtins/absvti2.o" "-c" "./compiler-rt/lib/builtins/absvti2.c"
[01:37:28] exit code: 0
[01:37:28] running: "sccache" "arm-none-eabi-gcc" "-O2" "-ffunction-sections" "-fdata-sections" "-fPIC" "-ffunction-sections" "-fdata-sections" "-fPIC" "-fno-builtin" "-fvisibility=hidden" "-ffreestanding" "-DVISIBILITY_HIDDEN" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-std/armv7a-none-eabihf/release/build/compiler_builtins-5c9fe6f284ee09ad/out/./compiler-rt/lib/builtins/addvdi3.o" "-c" "./compiler-rt/lib/builtins/addvdi3.c"
[01:37:28] exit code: 0
[01:37:28] running: "sccache" "arm-none-eabi-gcc" "-O2" "-ffunction-sections" "-fdata-sections" "-fPIC" "-ffunction-sections" "-fdata-sections" "-fPIC" "-fno-builtin" "-fvisibility=hidden" "-ffreestanding" "-DVISIBILITY_HIDDEN" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-std/armv7a-none-eabihf/release/build/compiler_builtins-5c9fe6f284ee09ad/out/./compiler-rt/lib/builtins/addvsi3.o" "-c" "./compiler-rt/lib/builtins/addvsi3.c"
[01:37:28] exit code: 0
[01:37:28] running: "sccache" "arm-none-eabi-gcc" "-O2" "-ffunction-sections" "-fdata-sections" "-fPIC" "-ffunction-sections" "-fdata-sections" "-fPIC" "-fno-builtin" "-fvisibility=hidden" "-ffreestanding" "-DVISIBILITY_HIDDEN" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-std/armv7a-none-eabihf/release/build/compiler_builtins-5c9fe6f284ee09ad/out/./compiler-rt/lib/builtins/addvti3.o" "-c" "./compiler-rt/lib/builtins/addvti3.c"
[01:37:28] exit code: 0
[01:37:28] running: "sccache" "arm-none-eabi-gcc" "-O2" "-ffunction-sections" "-fdata-sections" "-fPIC" "-ffunction-sections" "-fdata-sections" "-fPIC" "-fno-builtin" "-fvisibility=hidden" "-ffreestanding" "-DVISIBILITY_HIDDEN" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-std/armv7a-none-eabihf/release/build/compiler_builtins-5c9fe6f284ee09ad/out/./compiler-rt/lib/builtins/arm/aeabi_cdcmp.o" "-c" "./compiler-rt/lib/builtins/arm/aeabi_cdcmp.S"
[01:37:28] exit code: 0
[01:37:28] running: "sccache" "arm-none-eabi-gcc" "-O2" "-ffunction-sections" "-fdata-sections" "-fPIC" "-ffunction-sections" "-fdata-sections" "-fPIC" "-fno-builtin" "-fvisibility=hidden" "-ffreestanding" "-DVISIBILITY_HIDDEN" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-std/armv7a-none-eabihf/release/build/compiler_builtins-5c9fe6f284ee09ad/out/./compiler-rt/lib/builtins/arm/aeabi_cdcmpeq_check_nan.o" "-c" "./compiler-rt/lib/builtins/arm/aeabi_cdcmpeq_check_nan.c"
[01:37:28] exit code: 0
[01:37:28] running: "sccache" "arm-none-eabi-gcc" "-O2" "-ffunction-sections" "-fdata-sections" "-fPIC" "-ffunction-sections" "-fdata-sections" "-fPIC" "-fno-builtin" "-fvisibility=hidden" "-ffreestanding" "-DVISIBILITY_HIDDEN" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-std/armv7a-none-eabihf/release/build/compiler_builtins-5c9fe6f284ee09ad/out/./compiler-rt/lib/builtins/arm/aeabi_cfcmp.o" "-c" "./compiler-rt/lib/builtins/arm/aeabi_cfcmp.S"
[01:37:28] exit code: 0
[01:37:28] running: "sccache" "arm-none-eabi-gcc" "-O2" "-ffunction-sections" "-fdata-sections" "-fPIC" "-ffunction-sections" "-fdata-sections" "-fPIC" "-fno-builtin" "-fvisibility=hidden" "-ffreestanding" "-DVISIBILITY_HIDDEN" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-std/armv7a-none-eabihf/release/build/compiler_builtins-5c9fe6f284ee09ad/out/./compiler-rt/lib/builtins/arm/aeabi_cfcmpeq_check_nan.o" "-c" "./compiler-rt/lib/builtins/arm/aeabi_cfcmpeq_check_nan.c"
[01:37:28] exit code: 0
[01:37:28] running: "sccache" "arm-none-eabi-gcc" "-O2" "-ffunction-sections" "-fdata-sections" "-fPIC" "-ffunction-sections" "-fdata-sections" "-fPIC" "-fno-builtin" "-fvisibility=hidden" "-ffreestanding" "-DVISIBILITY_HIDDEN" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-std/armv7a-none-eabihf/release/build/compiler_builtins-5c9fe6f284ee09ad/out/./compiler-rt/lib/builtins/arm/aeabi_div0.o" "-c" "./compiler-rt/lib/builtins/arm/aeabi_div0.c"
[01:37:28] exit code: 0
[01:37:28] running: "sccache" "arm-none-eabi-gcc" "-O2" "-ffunction-sections" "-fdata-sections" "-fPIC" "-ffunction-sections" "-fdata-sections" "-fPIC" "-fno-builtin" "-fvisibility=hidden" "-ffreestanding" "-DVISIBILITY_HIDDEN" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-std/armv7a-none-eabihf/release/build/compiler_builtins-5c9fe6f284ee09ad/out/./compiler-rt/lib/builtins/arm/aeabi_drsub.o" "-c" "./compiler-rt/lib/builtins/arm/aeabi_drsub.c"
[01:37:28] exit code: 0
[01:37:28] running: "sccache" "arm-none-eabi-gcc" "-O2" "-ffunction-sections" "-fdata-sections" "-fPIC" "-ffunction-sections" "-fdata-sections" "-fPIC" "-fno-builtin" "-fvisibility=hidden" "-ffreestanding" "-DVISIBILITY_HIDDEN" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-std/armv7a-none-eabihf/release/build/compiler_builtins-5c9fe6f284ee09ad/out/./compiler-rt/lib/builtins/arm/aeabi_frsub.o" "-c" "./compiler-rt/lib/builtins/arm/aeabi_frsub.c"
[01:37:28] exit code: 0
[01:37:28] running: "sccache" "arm-none-eabi-gcc" "-O2" "-ffunction-sections" "-fdata-sections" "-fPIC" "-ffunction-sections" "-fdata-sections" "-fPIC" "-fno-builtin" "-fvisibility=hidden" "-ffreestanding" "-DVISIBILITY_HIDDEN" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-std/armv7a-none-eabihf/release/build/compiler_builtins-5c9fe6f284ee09ad/out/./compiler-rt/lib/builtins/apple_versioning.o" "-c" "./compiler-rt/lib/builtins/apple_versioning.c"
[01:37:28] exit code: 0
[01:37:28] running: "sccache" "arm-none-eabi-gcc" "-O2" "-ffunction-sections" "-fdata-sections" "-fPIC" "-ffunction-sections" "-fdata-sections" "-fPIC" "-fno-builtin" "-fvisibility=hidden" "-ffreestanding" "-DVISIBILITY_HIDDEN" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-std/armv7a-none-eabihf/release/build/compiler_builtins-5c9fe6f284ee09ad/out/./compiler-rt/lib/builtins/arm/bswapdi2.o" "-c" "./compiler-rt/lib/builtins/arm/bswapdi2.S"
[01:37:28] exit code: 0
[01:37:28] running: "sccache" "arm-none-eabi-gcc" "-O2" "-ffunction-sections" "-fdata-sections" "-fPIC" "-ffunction-sections" "-fdata-sections" "-fPIC" "-fno-builtin" "-fvisibility=hidden" "-ffreestanding" "-DVISIBILITY_HIDDEN" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-std/armv7a-none-eabihf/release/build/compiler_builtins-5c9fe6f284ee09ad/out/./compiler-rt/lib/builtins/arm/bswapsi2.o" "-c" "./compiler-rt/lib/builtins/arm/bswapsi2.S"
[01:37:28] exit code: 0
[01:37:28] running: "sccache" "arm-none-eabi-gcc" "-O2" "-ffunction-sections" "-fdata-sections" "-fPIC" "-ffunction-sections" "-fdata-sections" "-fPIC" "-fno-builtin" "-fvisibility=hidden" "-ffreestanding" "-DVISIBILITY_HIDDEN" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-std/armv7a-none-eabihf/release/build/compiler_builtins-5c9fe6f284ee09ad/out/./compiler-rt/lib/builtins/arm/clzdi2.o" "-c" "./compiler-rt/lib/builtins/arm/clzdi2.S"
[01:37:28] exit code: 0
[01:37:28] running: "sccache" "arm-none-eabi-gcc" "-O2" "-ffunction-sections" "-fdata-sections" "-fPIC" "-ffunction-sections" "-fdata-sections" "-fPIC" "-fno-builtin" "-fvisibility=hidden" "-ffreestanding" "-DVISIBILITY_HIDDEN" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-std/armv7a-none-eabihf/release/build/compiler_builtins-5c9fe6f284ee09ad/out/./compiler-rt/lib/builtins/arm/clzsi2.o" "-c" "./compiler-rt/lib/builtins/arm/clzsi2.S"
[01:37:28] exit code: 0
[01:37:28] running: "sccache" "arm-none-eabi-gcc" "-O2" "-ffunction-sections" "-fdata-sections" "-fPIC" "-ffunction-sections" "-fdata-sections" "-fPIC" "-fno-builtin" "-fvisibility=hidden" "-ffreestanding" "-DVISIBILITY_HIDDEN" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-std/armv7a-none-eabihf/release/build/compiler_builtins-5c9fe6f284ee09ad/out/./compiler-rt/lib/builtins/clzti2.o" "-c" "./compiler-rt/lib/builtins/clzti2.c"
[01:37:28] exit code: 0
[01:37:28] running: "sccache" "arm-none-eabi-gcc" "-O2" "-ffunction-sections" "-fdata-sections" "-fPIC" "-ffunction-sections" "-fdata-sections" "-fPIC" "-fno-builtin" "-fvisibility=hidden" "-ffreestanding" "-DVISIBILITY_HIDDEN" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-std/armv7a-none-eabihf/release/build/compiler_builtins-5c9fe6f284ee09ad/out/./compiler-rt/lib/builtins/cmpdi2.o" "-c" "./compiler-rt/lib/builtins/cmpdi2.c"
[01:37:28] exit code: 0
[01:37:28] running: "sccache" "arm-none-eabi-gcc" "-O2" "-ffunction-sections" "-fdata-sections" "-fPIC" "-ffunction-sections" "-fdata-sections" "-fPIC" "-fno-builtin" "-fvisibility=hidden" "-ffreestanding" "-DVISIBILITY_HIDDEN" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-std/armv7a-none-eabihf/release/build/compiler_builtins-5c9fe6f284ee09ad/out/./compiler-rt/lib/builtins/cmpti2.o" "-c" "./compiler-rt/lib/builtins/cmpti2.c"
[01:37:28] exit code: 0
[01:37:28] running: "sccache" "arm-none-eabi-gcc" "-O2" "-ffunction-sections" "-fdata-sections" "-fPIC" "-ffunction-sections" "-fdata-sections" "-fPIC" "-fno-builtin" "-fvisibility=hidden" "-ffreestanding" "-DVISIBILITY_HIDDEN" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-std/armv7a-none-eabihf/release/build/compiler_builtins-5c9fe6f284ee09ad/out/./compiler-rt/lib/builtins/ctzdi2.o" "-c" "./compiler-rt/lib/builtins/ctzdi2.c"
[01:37:28] exit code: 0
[01:37:28] running: "sccache" "arm-none-eabi-gcc" "-O2" "-ffunction-sections" "-fdata-sections" "-fPIC" "-ffunction-sections" "-fdata-sections" "-fPIC" "-fno-builtin" "-fvisibility=hidden" "-ffreestanding" "-DVISIBILITY_HIDDEN" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-std/armv7a-none-eabihf/release/build/compiler_builtins-5c9fe6f284ee09ad/out/./compiler-rt/lib/builtins/ctzsi2.o" "-c" "./compiler-rt/lib/builtins/ctzsi2.c"
[01:37:28] exit code: 0
[01:37:28] running: "sccache" "arm-none-eabi-gcc" "-O2" "-ffunction-sections" "-fdata-sections" "-fPIC" "-ffunction-sections" "-fdata-sections" "-fPIC" "-fno-builtin" "-fvisibility=hidden" "-ffreestanding" "-DVISIBILITY_HIDDEN" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-std/armv7a-none-eabihf/release/build/compiler_builtins-5c9fe6f284ee09ad/out/./compiler-rt/lib/builtins/ctzti2.o" "-c" "./compiler-rt/lib/builtins/ctzti2.c"
[01:37:28] exit code: 0
[01:37:28] running: "sccache" "arm-none-eabi-gcc" "-O2" "-ffunction-sections" "-fdata-sections" "-fPIC" "-ffunction-sections" "-fdata-sections" "-fPIC" "-fno-builtin" "-fvisibility=hidden" "-ffreestanding" "-DVISIBILITY_HIDDEN" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-std/armv7a-none-eabihf/release/build/compiler_builtins-5c9fe6f284ee09ad/out/./compiler-rt/lib/builtins/divdc3.o" "-c" "./compiler-rt/lib/builtins/divdc3.c"
[01:37:28] exit code: 0
[01:37:28] running: "sccache" "arm-none-eabi-gcc" "-O2" "-ffunction-sections" "-fdata-sections" "-fPIC" "-ffunction-sections" "-fdata-sections" "-fPIC" "-fno-builtin" "-fvisibility=hidden" "-ffreestanding" "-DVISIBILITY_HIDDEN" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-std/armv7a-none-eabihf/release/build/compiler_builtins-5c9fe6f284ee09ad/out/./compiler-rt/lib/builtins/arm/divmodsi4.o" "-c" "./compiler-rt/lib/builtins/arm/divmodsi4.S"
[01:37:28] exit code: 0
[01:37:28] running: "sccache" "arm-none-eabi-gcc" "-O2" "-ffunction-sections" "-fdata-sections" "-fPIC" "-ffunction-sections" "-fdata-sections" "-fPIC" "-fno-builtin" "-fvisibility=hidden" "-ffreestanding" "-DVISIBILITY_HIDDEN" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-std/armv7a-none-eabihf/release/build/compiler_builtins-5c9fe6f284ee09ad/out/./compiler-rt/lib/builtins/divsc3.o" "-c" "./compiler-rt/lib/builtins/divsc3.c"
[01:37:28] exit code: 0
[01:37:28] running: "sccache" "arm-none-eabi-gcc" "-O2" "-ffunction-sections" "-fdata-sections" "-fPIC" "-ffunction-sections" "-fdata-sections" "-fPIC" "-fno-builtin" "-fvisibility=hidden" "-ffreestanding" "-DVISIBILITY_HIDDEN" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-std/armv7a-none-eabihf/release/build/compiler_builtins-5c9fe6f284ee09ad/out/./compiler-rt/lib/builtins/divxc3.o" "-c" "./compiler-rt/lib/builtins/divxc3.c"
[01:37:28] exit code: 0
[01:37:28] running: "sccache" "arm-none-eabi-gcc" "-O2" "-ffunction-sections" "-fdata-sections" "-fPIC" "-ffunction-sections" "-fdata-sections" "-fPIC" "-fno-builtin" "-fvisibility=hidden" "-ffreestanding" "-DVISIBILITY_HIDDEN" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-std/armv7a-none-eabihf/release/build/compiler_builtins-5c9fe6f284ee09ad/out/./compiler-rt/lib/builtins/extendhfsf2.o" "-c" "./compiler-rt/lib/builtins/extendhfsf2.c"
[01:37:28] exit code: 0
[01:37:28] running: "sccache" "arm-none-eabi-gcc" "-O2" "-ffunction-sections" "-fdata-sections" "-fPIC" "-ffunction-sections" "-fdata-sections" "-fPIC" "-fno-builtin" "-fvisibility=hidden" "-ffreestanding" "-DVISIBILITY_HIDDEN" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-std/armv7a-none-eabihf/release/build/compiler_builtins-5c9fe6f284ee09ad/out/./compiler-rt/lib/builtins/ffsti2.o" "-c" "./compiler-rt/lib/builtins/ffsti2.c"
[01:37:28] exit code: 0
[01:37:28] running: "sccache" "arm-none-eabi-gcc" "-O2" "-ffunction-sections" "-fdata-sections" "-fPIC" "-ffunction-sections" "-fdata-sections" "-fPIC" "-fno-builtin" "-fvisibility=hidden" "-ffreestanding" "-DVISIBILITY_HIDDEN" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-std/armv7a-none-eabihf/release/build/compiler_builtins-5c9fe6f284ee09ad/out/./compiler-rt/lib/builtins/arm/fixdfsivfp.o" "-c" "./compiler-rt/lib/builtins/arm/fixdfsivfp.S"
[01:37:28] cargo:warning=./compiler-rt/lib/builtins/arm/fixdfsivfp.S: Assembler messages:
[01:37:28] cargo:warning=./compiler-rt/lib/builtins/arm/fixdfsivfp.S:26: Error: selected processor does not support `vmov d7,r0,r1' in ARM mode
[01:37:28] cargo:warning=./compiler-rt/lib/builtins/arm/fixdfsivfp.S:27: Error: selected processor does not support `vcvt.s32.f64 s15,d7' in ARM mode
[01:37:28] cargo:warning=./compiler-rt/lib/builtins/arm/fixdfsivfp.S:28: Error: selected processor does not support `vmov r0,s15' in ARM mode
[01:37:28] 
[01:37:28] --- stderr
[01:37:28] thread 'main' panicked at '
[01:37:28] 
[01:37:28] 
[01:37:28] Internal error occurred: Command "sccache" "arm-none-eabi-gcc" "-O2" "-ffunction-sections" "-fdata-sections" "-fPIC" "-ffunction-sections" "-fdata-sections" "-fPIC" "-fno-builtin" "-fvisibility=hidden" "-ffreestanding" "-DVISIBILITY_HIDDEN" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-std/armv7a-none-eabihf/release/build/compiler_builtins-5c9fe6f284ee09ad/out/./compiler-rt/lib/builtins/arm/fixdfsivfp.o" "-c" "./compiler-rt/lib/builtins/arm/fixdfsivfp.S" with args "arm-none-eabi-gcc" did not execute successfully (status code exit code: 1).
[01:37:28] ', /cargo/registry/src/github.mirror.nvdadr.com-1ecc6299db9ec823/cc-1.0.35/src/lib.rs:2398:5
[01:37:28] note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
[01:37:28] 
[01:37:28] warning: build failed, waiting for other jobs to finish...
[01:37:28] warning: build failed, waiting for other jobs to finish...
[01:37:51] [RUSTC-TIMING] core test:false 25.826
[01:37:51] error: build failed
[01:37:51] command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "build" "--target" "armv7a-none-eabihf" "-j" "4" "--release" "--locked" "--color" "always" "-p" "alloc" "--manifest-path" "/checkout/src/liballoc/Cargo.toml" "--features" "compiler-builtins-mem" "--message-format" "json"
[01:37:51] expected success, got: exit code: 101
[01:37:51] failed to run: /checkout/obj/build/bootstrap/debug/bootstrap dist --target asmjs-unknown-emscripten,wasm32-unknown-emscripten,x86_64-rumprun-netbsd,mips-unknown-linux-musl,mipsel-unknown-linux-musl,arm-unknown-linux-musleabi,arm-unknown-linux-musleabihf,armv5te-unknown-linux-gnueabi,armv5te-unknown-linux-musleabi,armv7-unknown-linux-musleabihf,aarch64-unknown-linux-musl,sparc64-unknown-linux-gnu,x86_64-unknown-redox,thumbv6m-none-eabi,thumbv7m-none-eabi,thumbv7em-none-eabi,thumbv7em-none-eabihf,thumbv8m.base-none-eabi,thumbv8m.main-none-eabi,thumbv8m.main-none-eabihf,riscv32imc-unknown-none-elf,riscv32imac-unknown-none-elf,riscv64imac-unknown-none-elf,riscv64gc-unknown-none-elf,armebv7r-none-eabi,armebv7r-none-eabihf,armv7r-none-eabi,armv7r-none-eabihf,armv7a-none-eabi,armv7a-none-eabihf,thumbv7neon-unknown-linux-gnueabihf
travis_time:end:15d31a7e:start=1556949660882056497,finish=1556955533213821036,duration=5872331764539
The command "stamp sh -x -c "$RUN_SCRIPT"" exited with 1.
travis_time:start:0516ee2a
$ date && (curl -fs --head https://google.com | grep ^Date: | sed 's/Date: //g' || true)
---
travis_time:end:03ae4e78:start=1556955534950826024,finish=1556955534964083449,duration=13257425
travis_fold:end:after_failure.3
travis_fold:start:after_failure.4
travis_time:start:1dc17deb
$ ln -s . checkout && for CORE in obj/cores/core.*; do EXE=$(echo $CORE | sed 's|obj/cores/core\.[0-9]*\.!checkout!\(.*\)|\1|;y|!|/|'); if [ -f "$EXE" ]; then printf travis_fold":start:crashlog\n\033[31;1m%s\033[0m\n" "$CORE"; gdb --batch -q -c "$CORE" "$EXE" -iex 'set auto-load off' -iex 'dir src/' -iex 'set sysroot .' -ex bt -ex q; echo travis_fold":"end:crashlog; fi; done || true
travis_fold:end:after_failure.4
travis_fold:start:after_failure.5
travis_time:start:1b83e608
travis_time:start:1b83e608
$ cat ./obj/build/x86_64-unknown-linux-gnu/native/asan/build/lib/asan/clang_rt.asan-dynamic-i386.vers || true
cat: ./obj/build/x86_64-unknown-linux-gnu/native/asan/build/lib/asan/clang_rt.asan-dynamic-i386.vers: No such file or directory
travis_fold:end:after_failure.5
travis_fold:start:after_failure.6
travis_time:start:05aa2272
$ dmesg | grep -i kill

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 @TimNN. (Feature Requests)

@sanxiyn sanxiyn added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels May 7, 2019
@sanxiyn
Copy link
Member

sanxiyn commented May 7, 2019

Legitimate failure compiling https://github.com/rust-lang-nursery/compiler-builtins.

@Gilnaa
Copy link
Author

Gilnaa commented May 7, 2019

Yeah, I'm kinda lost. Not sure where to put the flags to fix this (they're listed above), and couldn't find someone to tell me.

@Centril
Copy link
Contributor

Centril commented May 15, 2019

@bors r- since legitimate failure.

@Gilnaa
Copy link
Author

Gilnaa commented May 15, 2019

Sorry, I don't have the time or knowledge to fix this

@Gilnaa Gilnaa closed this May 15, 2019
@Centril Centril removed this from the 1.36 milestone May 31, 2019
@Centril Centril removed the relnotes Marks issues that should be documented in the release notes of the next release. label May 31, 2019
Centril added a commit to Centril/rust that referenced this pull request Sep 27, 2019
…=Amanieu

Differentiate AArch64 bare-metal targets between hf and non-hf.

CC @parched, kindly request you to review.

~~Note: This change breaks code that uses the target `aarch64-unknown-none` for the sake of clearer naming as discussed in the links posted below. A search on github reveals that code using `aarch64-unknown-none` is almost exclusively forked from our embedded WG's OS tutorials repo at https://github.com/rust-embedded/rust-raspi3-OS-tutorials, for which the target was originally created.~~

~~I will adapt this repo to the new target name asap once this PR would go upstream. The minor annoyance for the forks to break temporarily should be acceptable for the sake of introducing a better differentiation now before it is too late.
Also, the break would only happen upon updating the toolchain, giving the user a good hint at what has happened.~~

---------- Patch commit message:
Following up on [1] and [2], this PR adds differntiation for aarch64 bare-metal
targets between versions with and without floating point enabled.

This streamlines the target naming with other existing ARM targets and provides
the user clear indication if he is getting float or non-float for his bare-metal
target.

[1] rust-lang#60135 (comment)
[2] rust-embedded/wg#230

Closes: rust-embedded/wg#230
Centril added a commit to Centril/rust that referenced this pull request Sep 28, 2019
…=Amanieu

Differentiate AArch64 bare-metal targets between hf and non-hf.

CC @parched, kindly request you to review.

~~Note: This change breaks code that uses the target `aarch64-unknown-none` for the sake of clearer naming as discussed in the links posted below. A search on github reveals that code using `aarch64-unknown-none` is almost exclusively forked from our embedded WG's OS tutorials repo at https://github.com/rust-embedded/rust-raspi3-OS-tutorials, for which the target was originally created.~~

~~I will adapt this repo to the new target name asap once this PR would go upstream. The minor annoyance for the forks to break temporarily should be acceptable for the sake of introducing a better differentiation now before it is too late.
Also, the break would only happen upon updating the toolchain, giving the user a good hint at what has happened.~~

---------- Patch commit message:
Following up on [1] and [2], this PR adds differntiation for aarch64 bare-metal
targets between versions with and without floating point enabled.

This streamlines the target naming with other existing ARM targets and provides
the user clear indication if he is getting float or non-float for his bare-metal
target.

[1] rust-lang#60135 (comment)
[2] rust-embedded/wg#230

Closes: rust-embedded/wg#230
Centril added a commit to Centril/rust that referenced this pull request Sep 28, 2019
…=Amanieu

Differentiate AArch64 bare-metal targets between hf and non-hf.

CC @parched, kindly request you to review.

~~Note: This change breaks code that uses the target `aarch64-unknown-none` for the sake of clearer naming as discussed in the links posted below. A search on github reveals that code using `aarch64-unknown-none` is almost exclusively forked from our embedded WG's OS tutorials repo at https://github.com/rust-embedded/rust-raspi3-OS-tutorials, for which the target was originally created.~~

~~I will adapt this repo to the new target name asap once this PR would go upstream. The minor annoyance for the forks to break temporarily should be acceptable for the sake of introducing a better differentiation now before it is too late.
Also, the break would only happen upon updating the toolchain, giving the user a good hint at what has happened.~~

---------- Patch commit message:
Following up on [1] and [2], this PR adds differntiation for aarch64 bare-metal
targets between versions with and without floating point enabled.

This streamlines the target naming with other existing ARM targets and provides
the user clear indication if he is getting float or non-float for his bare-metal
target.

[1] rust-lang#60135 (comment)
[2] rust-embedded/wg#230

Closes: rust-embedded/wg#230
Centril added a commit to Centril/rust that referenced this pull request Sep 29, 2019
…=Amanieu

Differentiate AArch64 bare-metal targets between hf and non-hf.

CC @parched, kindly request you to review.

~~Note: This change breaks code that uses the target `aarch64-unknown-none` for the sake of clearer naming as discussed in the links posted below. A search on github reveals that code using `aarch64-unknown-none` is almost exclusively forked from our embedded WG's OS tutorials repo at https://github.com/rust-embedded/rust-raspi3-OS-tutorials, for which the target was originally created.~~

~~I will adapt this repo to the new target name asap once this PR would go upstream. The minor annoyance for the forks to break temporarily should be acceptable for the sake of introducing a better differentiation now before it is too late.
Also, the break would only happen upon updating the toolchain, giving the user a good hint at what has happened.~~

---------- Patch commit message:
Following up on [1] and [2], this PR adds differntiation for aarch64 bare-metal
targets between versions with and without floating point enabled.

This streamlines the target naming with other existing ARM targets and provides
the user clear indication if he is getting float or non-float for his bare-metal
target.

[1] rust-lang#60135 (comment)
[2] rust-embedded/wg#230

Closes: rust-embedded/wg#230
andjo403 pushed a commit to andjo403/rust that referenced this pull request Oct 4, 2019
Following up on [1] and [2], this PR adds differntiation for aarch64 bare-metal
targets between versions with and without hardware floating point enabled.

This streamlines the target naming with other existing ARM targets and provides
the user clear indication if he is getting float or non-float for his bare-metal
target.

[1] rust-lang#60135 (comment)
[2] rust-embedded/wg#230

Closes: rust-embedded/wg#230
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.