From 45d8ee6df1920fed603b4b5c729312a4abcb5e30 Mon Sep 17 00:00:00 2001 From: Mike Hommey Date: Tue, 26 Mar 2019 03:12:56 +0000 Subject: [PATCH] Bug 1538419 - Add support for thumbv7neon to target-lexicon. r=froydnj Differential Revision: https://phabricator.services.mozilla.com/D24596 --HG-- extra : moz-landing-system : lando --- .cargo/config.in | 5 +++ Cargo.lock | 10 +++--- Cargo.toml | 1 + .../rust/target-lexicon/.cargo-checksum.json | 2 +- third_party/rust/target-lexicon/.rustfmt.toml | 0 third_party/rust/target-lexicon/.travis.yml | 31 +++++++++++++++++ third_party/rust/target-lexicon/Cargo.toml | 34 +++++-------------- .../rust/target-lexicon/src/targets.rs | 5 +++ 8 files changed, 57 insertions(+), 31 deletions(-) create mode 100644 third_party/rust/target-lexicon/.rustfmt.toml create mode 100644 third_party/rust/target-lexicon/.travis.yml diff --git a/.cargo/config.in b/.cargo/config.in index 3b768c4c9cfa..f887f5395520 100644 --- a/.cargo/config.in +++ b/.cargo/config.in @@ -27,5 +27,10 @@ git = "https://github.com/hsivonen/packed_simd" branch = "rust_1_32" replace-with = "vendored-sources" +[source."https://github.com/CraneStation/target-lexicon"] +git = "https://github.com/glandium/target-lexicon" +branch = "thumbv7neon-v0.2" +replace-with = "vendored-sources" + [source.vendored-sources] directory = '@top_srcdir@/third_party/rust' diff --git a/Cargo.lock b/Cargo.lock index 965db15c2d1c..ebccb55d786c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -170,7 +170,7 @@ dependencies = [ "cranelift-wasm 0.29.0 (registry+https://github.com/rust-lang/crates.io-index)", "env_logger 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "target-lexicon 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "target-lexicon 0.2.0 (git+https://github.com/glandium/target-lexicon?branch=thumbv7neon-v0.2)", ] [[package]] @@ -591,7 +591,7 @@ dependencies = [ "failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "failure_derive 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "target-lexicon 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "target-lexicon 0.2.0 (git+https://github.com/glandium/target-lexicon?branch=thumbv7neon-v0.2)", ] [[package]] @@ -614,7 +614,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cranelift-codegen 0.29.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "target-lexicon 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "target-lexicon 0.2.0 (git+https://github.com/glandium/target-lexicon?branch=thumbv7neon-v0.2)", ] [[package]] @@ -2804,7 +2804,7 @@ dependencies = [ [[package]] name = "target-lexicon" version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" +source = "git+https://github.com/glandium/target-lexicon?branch=thumbv7neon-v0.2#b2d4b34509abb3e12b1c93d19b8593d02ddeed76" dependencies = [ "failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "failure_derive 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3699,7 +3699,7 @@ dependencies = [ "checksum syn 0.14.6 (registry+https://github.com/rust-lang/crates.io-index)" = "4e4b5274d4a0a3d2749d5c158dc64d3403e60554dc61194648787ada5212473d" "checksum syn 0.15.24 (registry+https://github.com/rust-lang/crates.io-index)" = "734ecc29cd36e8123850d9bf21dfd62ef8300aaa8f879aabaa899721808be37c" "checksum synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "73687139bf99285483c96ac0add482c3776528beac1d97d444f6e91f203a2015" -"checksum target-lexicon 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4af5e2227f0b887d591d3724b796a96eff04226104d872f5b3883fcd427d64b9" +"checksum target-lexicon 0.2.0 (git+https://github.com/glandium/target-lexicon?branch=thumbv7neon-v0.2)" = "" "checksum tempdir 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "87974a6f5c1dfb344d733055601650059a3363de2a6104819293baff662132d6" "checksum term 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "fa63644f74ce96fbeb9b794f66aff2a52d601cbd5e80f4b97123e3899f4570f1" "checksum term_size 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e2b6b55df3198cc93372e85dd2ed817f0e38ce8cc0f22eb32391bfad9c4bf209" diff --git a/Cargo.toml b/Cargo.toml index 4a9d9212514a..ed147194ecba 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -62,3 +62,4 @@ serde_derive = { git = "https://github.com/servo/serde", branch = "deserialize_f winapi = { git = "https://github.com/froydnj/winapi-rs", branch = "aarch64" } cc = { git = "https://github.com/glandium/cc-rs", branch = "1.0.23-clang-cl-aarch64" } packed_simd = { git = "https://github.com/hsivonen/packed_simd", branch = "rust_1_32" } +target-lexicon = { git = "https://github.com/glandium/target-lexicon", branch = "thumbv7neon-v0.2" } diff --git a/third_party/rust/target-lexicon/.cargo-checksum.json b/third_party/rust/target-lexicon/.cargo-checksum.json index 8e5cebb16156..4763caf427b5 100644 --- a/third_party/rust/target-lexicon/.cargo-checksum.json +++ b/third_party/rust/target-lexicon/.cargo-checksum.json @@ -1 +1 @@ -{"files":{"Cargo.toml":"0a20947ba69f4f7fbadd6ec6fd2e760b9c8e03144135490b77828cc3e3243919","LICENSE":"268872b9816f90fd8e85db5a28d33f8150ebb8dd016653fb39ef1f94f2686bc5","README.md":"89f73d9404c960632bef4cfde9709862dbb510081180318e0be7bf12d18e9da7","build.rs":"c349b503b884c79aef182ba27eeffa51ca439a511d8c6adefa2ed56f80a4530c","examples/misc.rs":"2e7f27fc7b7479b9cf96bdf81b402a6ef4bec71f8ef6f4f39588745b85cb2d3d","src/host.rs":"c4a0aa3364662eb2c585a69c8872d3e380f1b8537b51def6ca582b301993ce0a","src/lib.rs":"72a94fcc6b7f5dd6692cda84974b3ffb50b6c5eb9e2ebed91c6635d102202ced","src/parse_error.rs":"38c0cb21171741faa1c69c931be6a97be658b01de07bcb69aae84e5319b03920","src/targets.rs":"de44ac5ab97d1a036e692b511b2c5423dbf38f8d7ea36437ee3ac79bae3c3f90","src/triple.rs":"d3cdd3be7b18f04511ae59c6156983e4300bc57a3671282c74b2c7e81e699d75"},"package":"4af5e2227f0b887d591d3724b796a96eff04226104d872f5b3883fcd427d64b9"} \ No newline at end of file +{"files":{".rustfmt.toml":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",".travis.yml":"e7a5518637394467f13cb084fa7fa75783007815b17ba22d4dee567965d418bb","Cargo.toml":"5dbb0ad2824e20f91e80cc7b3ab2f9f241e8dbeb214c821e65a9add3b3f49045","LICENSE":"268872b9816f90fd8e85db5a28d33f8150ebb8dd016653fb39ef1f94f2686bc5","README.md":"89f73d9404c960632bef4cfde9709862dbb510081180318e0be7bf12d18e9da7","build.rs":"c349b503b884c79aef182ba27eeffa51ca439a511d8c6adefa2ed56f80a4530c","examples/misc.rs":"2e7f27fc7b7479b9cf96bdf81b402a6ef4bec71f8ef6f4f39588745b85cb2d3d","src/host.rs":"c4a0aa3364662eb2c585a69c8872d3e380f1b8537b51def6ca582b301993ce0a","src/lib.rs":"72a94fcc6b7f5dd6692cda84974b3ffb50b6c5eb9e2ebed91c6635d102202ced","src/parse_error.rs":"38c0cb21171741faa1c69c931be6a97be658b01de07bcb69aae84e5319b03920","src/targets.rs":"4f6585736061118e61c857908b8f7c539a48641c7233f7cfc856e9c94e4ffa34","src/triple.rs":"d3cdd3be7b18f04511ae59c6156983e4300bc57a3671282c74b2c7e81e699d75"},"package":null} \ No newline at end of file diff --git a/third_party/rust/target-lexicon/.rustfmt.toml b/third_party/rust/target-lexicon/.rustfmt.toml new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/third_party/rust/target-lexicon/.travis.yml b/third_party/rust/target-lexicon/.travis.yml new file mode 100644 index 000000000000..6832cba9c02d --- /dev/null +++ b/third_party/rust/target-lexicon/.travis.yml @@ -0,0 +1,31 @@ +language: rust +rust: + - stable + - beta + - nightly +matrix: + allow_failures: + - rust: beta + - rust: nightly +dist: trusty +sudo: false +before_script: + # If an old version of rustfmt from cargo is already installed, uninstall + # it, since it can prevent the installation of the new version from rustup. + - cargo uninstall rustfmt || true + - cargo install --list + # If we're testing beta or nightly, we still need to install the stable + # toolchain so that we can run the stable version of rustfmt. + - rustup toolchain install stable + # Install the stable version of rustfmt. + - rustup component add --toolchain=stable rustfmt-preview + - rustup component list --toolchain=stable + - rustup show + - rustfmt +stable --version || echo fail + # Sometimes the component isn't actually ready after being installed, and + # rustup update makes it ready. + - rustup update + - rustfmt +stable --version +script: cargo test +cache: + cargo: true diff --git a/third_party/rust/target-lexicon/Cargo.toml b/third_party/rust/target-lexicon/Cargo.toml index 8d0d5bb8557a..a053f5e813ee 100644 --- a/third_party/rust/target-lexicon/Cargo.toml +++ b/third_party/rust/target-lexicon/Cargo.toml @@ -1,15 +1,3 @@ -# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO -# -# When uploading crates to the registry Cargo will automatically -# "normalize" Cargo.toml files for maximal compatibility -# with all versions of Cargo and also rewrite `path` dependencies -# to registry (e.g. crates.io) dependencies -# -# If you believe there's an error in this file please file an -# issue against the rust-lang/cargo repository. If you're -# editing this file be aware that the upstream Cargo.toml -# will likely look very different (and much more reasonable) - [package] name = "target-lexicon" version = "0.2.0" @@ -21,22 +9,18 @@ keywords = ["target", "host", "triple", "compiler", "jit"] categories = ["no-std"] license = "Apache-2.0 WITH LLVM-exception" repository = "https://github.com/CraneStation/target-lexicon" -[dependencies.failure] -version = "0.1.3" -features = ["derive"] -default-features = false -[dependencies.failure_derive] -version = "0.1.3" -default-features = false -[build-dependencies.serde_json] -version = "1.0" +[dependencies] +failure = { version = "0.1.3", default-features = false, features = ["derive"] } +failure_derive = { version = "0.1.3", default-features = false } + +[build-dependencies] +serde_json = "1.0" [features] default = ["std"] std = [] -[badges.maintenance] -status = "passively-maintained" -[badges.travis-ci] -repository = "CraneStation/target-lexicon" +[badges] +maintenance = { status = "passively-maintained" } +travis-ci = { repository = "CraneStation/target-lexicon" } diff --git a/third_party/rust/target-lexicon/src/targets.rs b/third_party/rust/target-lexicon/src/targets.rs index e97a9c00030c..88afc07a00fa 100644 --- a/third_party/rust/target-lexicon/src/targets.rs +++ b/third_party/rust/target-lexicon/src/targets.rs @@ -37,6 +37,7 @@ pub enum Architecture { Thumbv6m, Thumbv7em, Thumbv7m, + Thumbv7neon, Wasm32, X86_64, } @@ -139,6 +140,7 @@ impl Architecture { | Architecture::Thumbv6m | Architecture::Thumbv7em | Architecture::Thumbv7m + | Architecture::Thumbv7neon | Architecture::Wasm32 | Architecture::X86_64 => Ok(Endianness::Little), Architecture::Mips @@ -172,6 +174,7 @@ impl Architecture { | Architecture::Thumbv6m | Architecture::Thumbv7em | Architecture::Thumbv7m + | Architecture::Thumbv7neon | Architecture::Wasm32 | Architecture::Mips | Architecture::Powerpc => Ok(PointerWidth::U32), @@ -236,6 +239,7 @@ impl fmt::Display for Architecture { Architecture::Thumbv6m => "thumbv6m", Architecture::Thumbv7em => "thumbv7em", Architecture::Thumbv7m => "thumbv7m", + Architecture::Thumbv7neon => "thumbv7neon", Architecture::Wasm32 => "wasm32", Architecture::X86_64 => "x86_64", }; @@ -276,6 +280,7 @@ impl FromStr for Architecture { "thumbv6m" => Architecture::Thumbv6m, "thumbv7em" => Architecture::Thumbv7em, "thumbv7m" => Architecture::Thumbv7m, + "thumbv7neon" => Architecture::Thumbv7neon, "wasm32" => Architecture::Wasm32, "x86_64" => Architecture::X86_64, _ => return Err(()),