upgrade to target-lexicon 0.8.0

* the target-lexicon crate no longer has or needs the std feature
  in cargo, so we can delete all default-features=false, any mentions
  of its std feature, and the nostd configs in many lib.rs files
* the representation of arm architectures has changed, so some case
  statements needed refactoring
This commit is contained in:
Pat Hickey
2019-09-04 12:25:58 -07:00
committed by Dan Gohman
parent 49a37e48fb
commit 89d741f8ae
20 changed files with 33 additions and 44 deletions

View File

@@ -38,7 +38,7 @@ serde = "1.0.8"
term = "0.6.1" term = "0.6.1"
capstone = { version = "0.6.0", optional = true } capstone = { version = "0.6.0", optional = true }
wabt = { version = "0.9.1", optional = true } wabt = { version = "0.9.1", optional = true }
target-lexicon = "0.4.0" target-lexicon = "0.8.0"
pretty_env_logger = "0.3.0" pretty_env_logger = "0.3.0"
file-per-thread-logger = "0.1.2" file-per-thread-logger = "0.1.2"
indicatif = "0.11.0" indicatif = "0.11.0"

View File

@@ -32,7 +32,6 @@
) )
)] )]
#![no_std] #![no_std]
#![cfg_attr(not(feature = "std"), feature(alloc))]
#[cfg(test)] #[cfg(test)]
#[cfg(not(feature = "std"))] #[cfg(not(feature = "std"))]

View File

@@ -18,7 +18,7 @@ cranelift-bforest = { path = "../cranelift-bforest", version = "0.41.0", default
failure = { version = "0.1.1", default-features = false, features = ["derive"] } failure = { version = "0.1.1", default-features = false, features = ["derive"] }
failure_derive = { version = "0.1.1", default-features = false } failure_derive = { version = "0.1.1", default-features = false }
hashmap_core = { version = "0.1.9", optional = true } hashmap_core = { version = "0.1.9", optional = true }
target-lexicon = { version = "0.4.0", default-features = false } target-lexicon = "0.8.0"
log = { version = "0.4.6", default-features = false } log = { version = "0.4.6", default-features = false }
serde = { version = "1.0.94", features = ["derive"], optional = true } serde = { version = "1.0.94", features = ["derive"], optional = true }
# It is a goal of the cranelift-codegen crate to have minimal external dependencies. # It is a goal of the cranelift-codegen crate to have minimal external dependencies.
@@ -38,7 +38,6 @@ default = ["std"]
std = [ std = [
"cranelift-entity/std", "cranelift-entity/std",
"cranelift-bforest/std", "cranelift-bforest/std",
"target-lexicon/std",
"cranelift-codegen-meta/std" "cranelift-codegen-meta/std"
] ]

View File

@@ -42,14 +42,13 @@ fn isa_constructor(
builder: shared_settings::Builder, builder: shared_settings::Builder,
) -> Box<dyn TargetIsa> { ) -> Box<dyn TargetIsa> {
let level1 = match triple.architecture { let level1 = match triple.architecture {
Architecture::Thumbv6m | Architecture::Thumbv7em | Architecture::Thumbv7m => { Architecture::Arm(arm) => {
if arm.is_thumb() {
&enc_tables::LEVEL1_T32[..] &enc_tables::LEVEL1_T32[..]
} else {
&enc_tables::LEVEL1_A32[..]
}
} }
Architecture::Arm
| Architecture::Armv4t
| Architecture::Armv5te
| Architecture::Armv7
| Architecture::Armv7s => &enc_tables::LEVEL1_A32[..],
_ => panic!(), _ => panic!(),
}; };
Box::new(Isa { Box::new(Isa {

View File

@@ -31,6 +31,7 @@ impl CallConv {
// uses System V. // uses System V.
Ok(CallingConvention::SystemV) | Err(()) => CallConv::SystemV, Ok(CallingConvention::SystemV) | Err(()) => CallConv::SystemV,
Ok(CallingConvention::WindowsFastcall) => CallConv::WindowsFastcall, Ok(CallingConvention::WindowsFastcall) => CallConv::WindowsFastcall,
Ok(unimp) => unimplemented!("calling convention: {:?}", unimp),
} }
} }

View File

@@ -111,15 +111,8 @@ pub fn lookup(triple: Triple) -> Result<Builder, LookupError> {
Architecture::I386 | Architecture::I586 | Architecture::I686 | Architecture::X86_64 => { Architecture::I386 | Architecture::I586 | Architecture::I686 | Architecture::X86_64 => {
isa_builder!(x86, "x86")(triple) isa_builder!(x86, "x86")(triple)
} }
Architecture::Thumbv6m Architecture::Arm { .. } => isa_builder!(arm32, "arm32")(triple),
| Architecture::Thumbv7em Architecture::Aarch64 { .. } => isa_builder!(arm64, "arm64")(triple),
| Architecture::Thumbv7m
| Architecture::Arm
| Architecture::Armv4t
| Architecture::Armv5te
| Architecture::Armv7
| Architecture::Armv7s => isa_builder!(arm32, "arm32")(triple),
Architecture::Aarch64 => isa_builder!(arm64, "arm64")(triple),
_ => Err(LookupError::Unsupported), _ => Err(LookupError::Unsupported),
} }
} }

View File

@@ -41,7 +41,6 @@
) )
)] )]
#![no_std] #![no_std]
#![cfg_attr(not(feature = "std"), feature(alloc))]
#[cfg(not(feature = "std"))] #[cfg(not(feature = "std"))]
#[macro_use] #[macro_use]

View File

@@ -51,7 +51,6 @@
) )
)] )]
#![no_std] #![no_std]
#![cfg_attr(not(feature = "std"), feature(alloc))]
#[cfg(not(feature = "std"))] #[cfg(not(feature = "std"))]
#[macro_use] #[macro_use]

View File

@@ -15,7 +15,7 @@ cranelift-module = { path = "../cranelift-module", version = "0.41.0" }
faerie = "0.10.0" faerie = "0.10.0"
goblin = "0.0.24" goblin = "0.0.24"
failure = "0.1.2" failure = "0.1.2"
target-lexicon = "0.4.0" target-lexicon = "0.8.0"
[badges] [badges]
maintenance = { status = "experimental" } maintenance = { status = "experimental" }

View File

@@ -12,7 +12,7 @@ edition = "2018"
[dependencies] [dependencies]
cranelift-codegen = { path = "../cranelift-codegen", version = "0.41.0", default-features = false } cranelift-codegen = { path = "../cranelift-codegen", version = "0.41.0", default-features = false }
target-lexicon = { version = "0.4.0", default-features = false } target-lexicon = "0.8.0"
log = { version = "0.4.6", default-features = false } log = { version = "0.4.6", default-features = false }
hashmap_core = { version = "0.1.9", optional = true } hashmap_core = { version = "0.1.9", optional = true }

View File

@@ -175,7 +175,6 @@
) )
)] )]
#![no_std] #![no_std]
#![cfg_attr(not(feature = "std"), feature(alloc))]
#[cfg(not(feature = "std"))] #[cfg(not(feature = "std"))]
#[macro_use] #[macro_use]

View File

@@ -15,7 +15,7 @@ libfuzzer-sys = { git = "https://github.com/rust-fuzz/libfuzzer-sys.git" }
cranelift-codegen = { path = "../cranelift-codegen" } cranelift-codegen = { path = "../cranelift-codegen" }
cranelift-wasm = { path = "../cranelift-wasm" } cranelift-wasm = { path = "../cranelift-wasm" }
cranelift-reader = { path = "../cranelift-reader" } cranelift-reader = { path = "../cranelift-reader" }
target-lexicon = "0.4.0" target-lexicon = "0.8.0"
# Prevent this from interfering with workspaces # Prevent this from interfering with workspaces
[workspace] [workspace]

View File

@@ -19,7 +19,6 @@
) )
)] )]
#![no_std] #![no_std]
#![cfg_attr(not(feature = "std"), feature(alloc))]
#[cfg(not(feature = "std"))] #[cfg(not(feature = "std"))]
#[macro_use] #[macro_use]

View File

@@ -11,14 +11,14 @@ edition = "2018"
[dependencies] [dependencies]
cranelift-codegen = { path = "../cranelift-codegen", version = "0.41.0", default-features = false } cranelift-codegen = { path = "../cranelift-codegen", version = "0.41.0", default-features = false }
target-lexicon = { version = "0.4.0", default-features = false } target-lexicon = "0.8.0"
[target.'cfg(any(target_arch = "x86", target_arch = "x86_64"))'.dependencies] [target.'cfg(any(target_arch = "x86", target_arch = "x86_64"))'.dependencies]
raw-cpuid = "6.0.0" raw-cpuid = "6.0.0"
[features] [features]
default = ["std"] default = ["std"]
std = ["cranelift-codegen/std", "target-lexicon/std"] std = ["cranelift-codegen/std"]
# when compiling with the "core" feature, nightly must be enabled # when compiling with the "core" feature, nightly must be enabled
# enabling the "nightly" feature for raw-cpuid allows avoiding # enabling the "nightly" feature for raw-cpuid allows avoiding
# linking in a c-library. # linking in a c-library.

View File

@@ -19,7 +19,6 @@
) )
)] )]
#![no_std] #![no_std]
#![cfg_attr(not(feature = "std"), feature(alloc))]
#[cfg(not(feature = "std"))] #[cfg(not(feature = "std"))]
#[macro_use] #[macro_use]

View File

@@ -11,7 +11,7 @@ edition = "2018"
[dependencies] [dependencies]
cranelift-codegen = { path = "../cranelift-codegen", version = "0.41.0" } cranelift-codegen = { path = "../cranelift-codegen", version = "0.41.0" }
target-lexicon = "0.4.0" target-lexicon = "0.8.0"
[badges] [badges]
maintenance = { status = "experimental" } maintenance = { status = "experimental" }

View File

@@ -16,7 +16,7 @@ cranelift-native = { path = "../cranelift-native", version = "0.41.0" }
region = "2.0.0" region = "2.0.0"
libc = { version = "0.2.42" } libc = { version = "0.2.42" }
errno = "0.2.4" errno = "0.2.4"
target-lexicon = { version = "0.4.0" } target-lexicon = "0.8.0"
memmap = { version = "0.7.0", optional = true } memmap = { version = "0.7.0", optional = true }
[target.'cfg(target_os = "windows")'.dependencies] [target.'cfg(target_os = "windows")'.dependencies]

View File

@@ -136,16 +136,20 @@ cfg_if! {
.x86() .x86()
.mode(arch::x86::ArchMode::Mode64) .mode(arch::x86::ArchMode::Mode64)
.build(), .build(),
Architecture::Arm Architecture::Arm(arm) => {
| Architecture::Armv4t if arm.is_thumb() {
| Architecture::Armv5te Capstone::new()
| Architecture::Armv7 .arm()
| Architecture::Armv7s => Capstone::new().arm().mode(arch::arm::ArchMode::Arm).build(),
Architecture::Thumbv6m | Architecture::Thumbv7em | Architecture::Thumbv7m => Capstone::new(
).arm()
.mode(arch::arm::ArchMode::Thumb) .mode(arch::arm::ArchMode::Thumb)
.build(), .build()
Architecture::Aarch64 => Capstone::new() } else {
Capstone::new()
.arm()
.mode(arch::arm::ArchMode::Arm)
.build()
}
}
Architecture::Aarch64 {..} => Capstone::new()
.arm64() .arm64()
.mode(arch::arm64::ArchMode::Arm) .mode(arch::arm64::ArchMode::Arm)
.build(), .build(),

View File

@@ -23,7 +23,7 @@ serde = { version = "1.0.94", features = ["derive"], optional = true }
[dev-dependencies] [dev-dependencies]
wabt = "0.9.1" wabt = "0.9.1"
target-lexicon = "0.4.0" target-lexicon = "0.8.0"
[features] [features]
default = ["std"] default = ["std"]

View File

@@ -28,7 +28,6 @@
) )
)] )]
#![no_std] #![no_std]
#![cfg_attr(not(feature = "std"), feature(alloc))]
#[cfg(not(feature = "std"))] #[cfg(not(feature = "std"))]
#[macro_use] #[macro_use]