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

Rollup of 41 pull requests #57058

Closed
wants to merge 125 commits into from
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
125 commits
Select commit Hold shift + click to select a range
5f34316
simplify deprecation and stability rendering
euclio Dec 14, 2018
1bdd6ca
retrieve ty info from place_ty
csmoe Dec 15, 2018
7f9883d
Add unstable VecDeque::rotate_{left|right}
scottmcm Dec 15, 2018
9ca2902
update test
csmoe Dec 15, 2018
c4fa1d2
stop treating trait objects from #[fundamental] traits as fundamental
arielb1 Dec 15, 2018
0815531
Add a note about why the unsafe is sound
scottmcm Dec 16, 2018
bf4a984
Reduce search-index.js size
GuillaumeGomez Dec 16, 2018
fba23d0
Disable field reordering for repr(int).
emilio Dec 16, 2018
d84bdba
Add test to check order of repr(int) enum fields
petertodd Dec 8, 2018
bbce189
rustc: Update Clang used to build LLVM on LInux
alexcrichton Dec 16, 2018
37c3561
describe index with accurate _
csmoe Dec 17, 2018
e38e954
Simplify MIR generation for logical ops
sinkuu Dec 17, 2018
3e7a4ca
Remove a wrong multiplier on relocation offset computation
oli-obk Dec 17, 2018
e7e17f9
static eval: Do not ICE on layout size overflow
dlrobertson Dec 17, 2018
6130fc8
Add --progress to git submodule commands
Dec 17, 2018
e36b628
rename div_euc -> div_euclid, and mod_euc -> rem_euclid
ubsan Dec 18, 2018
82e55c1
deny intra-doc link resolution failures in libstd
euclio Dec 18, 2018
de39aea
fix tests
ubsan Dec 18, 2018
50eb5f6
Explain the math
oli-obk Dec 18, 2018
f731445
Mark tuple structs as live if their constructors are used
oli-obk Dec 18, 2018
fe91892
Update Pin API to match the one proposed for stabilization
cramertj Dec 18, 2018
987a5e4
Stabilize Pin
cramertj Dec 18, 2018
80059df
Pin stabilization: fix doctests
cramertj Dec 18, 2018
9229488
Rename Box/Arc/Rc::pinned to ::pin
cramertj Dec 18, 2018
46a4ff6
Fix Unpin docs link
cramertj Dec 18, 2018
3d8a066
Replace current crate's searchIndex when regenerating
GuillaumeGomez Dec 18, 2018
00bd306
Extend documentation for mem uninit to discuss partial allocation of …
Firstyear Dec 19, 2018
0829d0c
Updates based on comment
Firstyear Dec 19, 2018
3773ae2
FIXME(45827) remove comment since errors are reported
nivkner Dec 17, 2018
cf329d5
FIXME(49821) remove fixme since a tip about let binding is given
nivkner Dec 17, 2018
7092fca
FIXME(44217) remove fixme because the allocator logic was removed, bu…
nivkner Dec 17, 2018
cc568e7
FIXME(49824) remove fixme because there is no free region error anymore
nivkner Dec 17, 2018
e06b81e
FIXME(21232) update fixme to point to the open issue about accepting …
nivkner Dec 17, 2018
aedbe9a
FIXME(31702) remove fixme, move auxiliaries to the right place and fi…
nivkner Dec 17, 2018
b1db8f8
FIXME(45992) remove fixme since the lint is being tested
nivkner Dec 18, 2018
5d7fad3
FIXME(47184) update fixmes to point to issues specific to them
nivkner Dec 18, 2018
8680824
FIXME(2665) remove fixme since the c files are included by the testsuite
nivkner Dec 18, 2018
1aaad19
FIXME(RFC1868) point the fixme to the tracking issue
nivkner Dec 18, 2018
897c182
FIXME(52456) remove fixme and combine all extern items in one block
nivkner Dec 18, 2018
d88d319
FIXME(53451) remove fixme and unnecessary pubs
nivkner Dec 18, 2018
cbe9abb
Add more VecDeque::rotate_{left|right} tests
scottmcm Dec 19, 2018
957a9c7
Revert "FIXME(53451) remove fixme and unnecessary pubs"
nivkner Dec 19, 2018
b2d8040
Fix tidy error
Firstyear Dec 19, 2018
202904b
make basic CTFE tracing available on release builds
RalfJung Dec 19, 2018
885cf2a
Adding unwinding support for x86_64_fortanix_unknown_sgx target.
Dec 14, 2018
81a45e2
miri: allocation is infallible
RalfJung Dec 19, 2018
818ed69
dropck: simplify common patterns
ljedrz Dec 19, 2018
ae3f6b0
dropck: remove unnecessary call to cloned()
ljedrz Dec 19, 2018
7eb67c2
test: Ignore ui/target-feature-gate on powerpc and powerpc64(le)
glaubitz Dec 19, 2018
a153d48
test: Ignore ui/target-feature-gate on sparc and sparc64
glaubitz Dec 19, 2018
036ce5c
Fix compiletest `trim` deprecation warnings
phansch Dec 19, 2018
0e72c80
FIXME(9639) remove fixme and accept non-utf8 paths in compiletest
nivkner Dec 17, 2018
7894717
FIXME(9639) remove fixme and accept non-utf8 paths in librustdoc
nivkner Dec 19, 2018
90726e1
suggest similar lint names for unknown lints
euclio Dec 19, 2018
e7c5146
Remove `TokenStream::JointTree`.
nnethercote Dec 19, 2018
7b6cf6e
Stabilize Vec(Deque)::resize_with
scottmcm Dec 20, 2018
fb18dda
Add DoubleEndedIterator::nth_back
Dec 14, 2018
66bb34c
Update src/libcore/num/mod.rs
dtolnay Dec 20, 2018
455bc95
fix nits
ubsan Dec 20, 2018
405d8b0
Copyrite
oli-obk Dec 20, 2018
0b0a00c
new --static-root-path flag for controlling static file locations
QuietMisdreavus Dec 20, 2018
8dc8d7a
split extra_scripts to handle root_path shenanigans
QuietMisdreavus Dec 20, 2018
8d393bf
display rustc_private APIs as "Internal"
euclio Dec 13, 2018
49f5106
AST/HIR: Introduce `ExprKind::Err` for better error recovery in the f…
petrochenkov Dec 17, 2018
cc2b08d
Do not abort compilation if expansion produces errors
petrochenkov Dec 16, 2018
577427e
Get rid of `Block::recovered`
petrochenkov Dec 19, 2018
a053ae2
Fix `trace_macros` and `log_syntax`
petrochenkov Dec 20, 2018
db24d8e
Enable emission of alignment attrs for pointer params
nikic Dec 20, 2018
29f3d7b
Make sure feature gate errors are recoverable
petrochenkov Dec 20, 2018
4a6aa36
Address review comments and CI failures
petrochenkov Dec 20, 2018
edd08e0
Optimize away a move
Zoxc Dec 6, 2018
86e63ba
Remove QueryResult
Zoxc Dec 7, 2018
f8e508c
Fix a recently introduces regression
oli-obk Dec 17, 2018
b9d74fc
Also test projections
oli-obk Dec 17, 2018
3414be0
fix deprecation warnings in liballoc benches
RalfJung Dec 21, 2018
4f30a24
Inline tweaks
Zoxc Dec 5, 2018
6ed596e
Update tests to changes on master
oli-obk Dec 21, 2018
8c40aed
Fix feature gate to point to 1.32.0 for `path_from_str`
otavio Dec 21, 2018
87c8cdd
Stabilize #[repr(packed(N))]
cramertj Dec 21, 2018
e5e19d9
Remove unstable-book repr-packed entry
cramertj Dec 21, 2018
51e4c1f
Fixed typo in HashMap documentation
RyanMarcus Dec 21, 2018
34dc5c8
macro_literal_matcher was stabilized in 1.32; not 1.32.
Centril Dec 21, 2018
0203a1c
exhaustive_integer_patterns slipped 1.32; stabilized in 1.33.
Centril Dec 21, 2018
097d39d
Fix alignment for array indexing
nikic Dec 21, 2018
80c398b
Rollup merge of #56802 - clarcharr:nth_back, r=alexcrichton
Centril Dec 22, 2018
812576f
Rollup merge of #56824 - euclio:internal-apis, r=QuietMisdreavus
Centril Dec 22, 2018
8f2473e
Rollup merge of #56842 - scottmcm:vecdeque-rotate, r=alexcrichton
Centril Dec 22, 2018
e0fb972
Rollup merge of #56843 - csmoe:non-copy, r=davidtwco
Centril Dec 22, 2018
06b0f46
Rollup merge of #56862 - arielb1:fundamentally-clean, r=nikomatsakis
Centril Dec 22, 2018
0d26ce9
Rollup merge of #56869 - GuillaumeGomez:index-size-reduction, r=Quiet…
Centril Dec 22, 2018
ff6efb6
Rollup merge of #56887 - emilio:enum-field-reordering, r=eddyb
Centril Dec 22, 2018
c2ed5cc
Rollup merge of #56892 - alexcrichton:new-llvm, r=michaelwoerister
Centril Dec 22, 2018
e480450
Rollup merge of #56909 - dlrobertson:fix_56762, r=estebank
Centril Dec 22, 2018
88fbd9f
Rollup merge of #56914 - glaubitz:ignore-tests, r=alexcrichton
Centril Dec 22, 2018
3627261
Rollup merge of #56916 - oli-obk:static_mut_beta_regression, r=davidtwco
Centril Dec 22, 2018
95354fa
Rollup merge of #56917 - sinkuu:mir_build_logicop, r=davidtwco
Centril Dec 22, 2018
a4b32df
Rollup merge of #56919 - oli-obk:null_ref_array_tuple, r=RalfJung
Centril Dec 22, 2018
0f6ea43
Rollup merge of #56933 - clarcharr:xpy_progress, r=Mark-Simulacrum
Centril Dec 22, 2018
c85da26
Rollup merge of #56936 - ubsan:euclidean_div_rem, r=dtolnay
Centril Dec 22, 2018
10228bc
Rollup merge of #56939 - cramertj:pin-stabilization, r=alexcrichton
Centril Dec 22, 2018
ef6ce65
Rollup merge of #56941 - euclio:deny-libstd-resolution-failures, r=Qu…
Centril Dec 22, 2018
4481656
Rollup merge of #56953 - oli-obk:dead_const, r=petrochenkov
Centril Dec 22, 2018
6e267fb
Rollup merge of #56962 - nivkner:fixme_fixup4, r=pnkfelix
Centril Dec 22, 2018
4665a4b
Rollup merge of #56964 - nnethercote:TokenStream-IsJoint, r=petrochenkov
Centril Dec 22, 2018
e457c85
Rollup merge of #56967 - GuillaumeGomez:regen-search-index, r=QuietMi…
Centril Dec 22, 2018
0181d5b
Rollup merge of #56970 - Firstyear:mem_uninit_doc_ptr_drop, r=Manishe…
Centril Dec 22, 2018
8b0bcca
Rollup merge of #56973 - RalfJung:miri-trace, r=oli-obk
Centril Dec 22, 2018
bd12d8f
Rollup merge of #56979 - VardhanThigle:Vardhan/rust-sgx-unwind-suppor…
Centril Dec 22, 2018
132f477
Rollup merge of #56981 - RalfJung:miri-infallible-alloc, r=oli-obk
Centril Dec 22, 2018
f62dabd
Rollup merge of #56984 - ljedrz:dropck_outlives_tweaks, r=oli-obk
Centril Dec 22, 2018
4111c44
Rollup merge of #56989 - phansch:fix_compiletest_trim_deprecations, r…
Centril Dec 22, 2018
cdc8d46
Rollup merge of #56992 - euclio:unknown-lint-suggestion, r=oli-obk
Centril Dec 22, 2018
e36e427
Rollup merge of #56999 - petrochenkov:macrecov2, r=estebank
Centril Dec 22, 2018
edeae30
Rollup merge of #57002 - scottmcm:stabilize-resize_with, r=rkruppe
Centril Dec 22, 2018
06fa9cc
Rollup merge of #57011 - QuietMisdreavus:static-root-path, r=Guillaum…
Centril Dec 22, 2018
9ef6127
Rollup merge of #57021 - nikic:arg-pointer-align, r=nagisa
Centril Dec 22, 2018
f9eddb9
Rollup merge of #57027 - Zoxc:query-perf5, r=michaelwoerister
Centril Dec 22, 2018
d2ffa55
Rollup merge of #57031 - Zoxc:query-perf7, r=michaelwoerister
Centril Dec 22, 2018
7429dad
Rollup merge of #57032 - RalfJung:alloc-bench-deprecations, r=Centril
Centril Dec 22, 2018
bff1363
Rollup merge of #57034 - Zoxc:query-perf8, r=michaelwoerister
Centril Dec 22, 2018
87a0202
Rollup merge of #57040 - otavio:topic/adjust-path_from_str-feature-ga…
Centril Dec 22, 2018
70a3be6
Rollup merge of #57049 - cramertj:repr-packed, r=Centril
Centril Dec 22, 2018
3e7957d
Rollup merge of #57050 - RyanMarcus:master, r=zackmdavis
Centril Dec 22, 2018
0105a24
Rollup merge of #57052 - Centril:fix-eip-stable-version, r=varkor
Centril Dec 22, 2018
aefca41
Rollup merge of #57053 - nikic:fix-gep-align, r=nagisa
Centril Dec 22, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Adding unwinding support for x86_64_fortanix_unknown_sgx target.
  • Loading branch information
Vardhan Thigle committed Dec 19, 2018
commit 885cf2a2afd6da270287cfc3bfa651ac737d0378
2 changes: 1 addition & 1 deletion src/libpanic_unwind/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ cfg_if! {
if #[cfg(target_os = "emscripten")] {
#[path = "emcc.rs"]
mod imp;
} else if #[cfg(any(target_arch = "wasm32", target_env = "sgx"))] {
} else if #[cfg(target_arch = "wasm32")] {
#[path = "dummy.rs"]
mod imp;
} else if #[cfg(all(target_env = "msvc", target_arch = "aarch64"))] {
Expand Down
46 changes: 27 additions & 19 deletions src/librustc_target/spec/x86_64_fortanix_unknown_sgx.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,28 +10,29 @@

use std::iter;

use super::{LinkerFlavor, Target, TargetOptions, PanicStrategy};
use super::{LinkerFlavor, PanicStrategy, Target, TargetOptions};

pub fn target() -> Result<Target, String> {
const PRE_LINK_ARGS: &[&str] = &[
"-Wl,--as-needed",
"-Wl,-z,noexecstack",
"-m64",
"-fuse-ld=gold",
"-nostdlib",
"-shared",
"-Wl,-e,sgx_entry",
"-Wl,-Bstatic",
"-Wl,--gc-sections",
"-Wl,-z,text",
"-Wl,-z,norelro",
"-Wl,--rosegment",
"-Wl,--no-undefined",
"-Wl,--error-unresolved-symbols",
"-Wl,--no-undefined-version",
"-Wl,-Bsymbolic",
"-Wl,--export-dynamic",
"-fuse-ld=gold",
"-nostdlib",
"-shared",
"-Wl,-e,sgx_entry",
"-Wl,-Bstatic",
"-Wl,--gc-sections",
"-Wl,-z,text",
"-Wl,-z,norelro",
"-Wl,--rosegment",
"-Wl,--no-undefined",
"-Wl,--error-unresolved-symbols",
"-Wl,--no-undefined-version",
"-Wl,-Bsymbolic",
"-Wl,--export-dynamic",
];

const EXPORT_SYMBOLS: &[&str] = &[
"sgx_entry",
"HEAP_BASE",
Expand All @@ -41,19 +42,26 @@ pub fn target() -> Result<Target, String> {
"ENCLAVE_SIZE",
"CFGDATA_BASE",
"DEBUG",
"EH_FRM_HDR_BASE",
"EH_FRM_HDR_SIZE",
"TEXT_BASE",
"TEXT_SIZE",
];
let opts = TargetOptions {
dynamic_linking: false,
executables: true,
linker_is_gnu: true,
max_atomic_width: Some(64),
panic_strategy: PanicStrategy::Abort,
panic_strategy: PanicStrategy::Unwind,
cpu: "x86-64".into(),
features: "+rdrnd,+rdseed".into(),
position_independent_executables: true,
pre_link_args: iter::once(
(LinkerFlavor::Gcc, PRE_LINK_ARGS.iter().cloned().map(String::from).collect())
).collect(),
pre_link_args: iter::once((
LinkerFlavor::Gcc,
PRE_LINK_ARGS.iter().cloned().map(String::from).collect(),
))
.collect(),
post_link_objects: vec!["libunwind.a".into()],
override_export_symbols: Some(EXPORT_SYMBOLS.iter().cloned().map(String::from).collect()),
..Default::default()
};
Expand Down
8 changes: 8 additions & 0 deletions src/libstd/sys/sgx/abi/entry.S
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,14 @@ IMAGE_BASE:
globvar CFGDATA_BASE 8
/* Non-zero if debugging is enabled, zero otherwise */
globvar DEBUG 1
/* The base address (relative to enclave start) of the enclave text section */
globvar TEXT_BASE 8
/* The size in bytes of enclacve text section */
globvar TEXT_SIZE 8
/* The base address (relative to enclave start) of the enclave EH_FRM_HDR section */
globvar EH_FRM_HDR_BASE 8
/* The size in bytes of enclacve EH_FRM_HDR section */
globvar EH_FRM_HDR_SIZE 8

.Lreentry_panic_msg:
.asciz "Re-entered panicked enclave!"
Expand Down
137 changes: 131 additions & 6 deletions src/libstd/sys/sgx/rwlock.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,22 +9,33 @@
// except according to those terms.

use num::NonZeroUsize;
use slice;
use str;

use super::waitqueue::{WaitVariable, WaitQueue, SpinMutex, NotifiedTcs, try_lock_or_false};
use super::waitqueue::{
try_lock_or_false, NotifiedTcs, SpinMutex, SpinMutexGuard, WaitQueue, WaitVariable,
};
use mem;

pub struct RWLock {
readers: SpinMutex<WaitVariable<Option<NonZeroUsize>>>,
writer: SpinMutex<WaitVariable<bool>>,
}

// Below is to check at compile time, that RWLock has size of 128 bytes.
#[allow(dead_code)]
unsafe fn rw_lock_size_assert(r: RWLock) {
mem::transmute::<RWLock, [u8; 128]>(r);
}

//unsafe impl Send for RWLock {}
//unsafe impl Sync for RWLock {} // FIXME

impl RWLock {
pub const fn new() -> RWLock {
RWLock {
readers: SpinMutex::new(WaitVariable::new(None)),
writer: SpinMutex::new(WaitVariable::new(false))
writer: SpinMutex::new(WaitVariable::new(false)),
}
}

Expand Down Expand Up @@ -89,9 +100,11 @@ impl RWLock {
}

#[inline]
pub unsafe fn read_unlock(&self) {
let mut rguard = self.readers.lock();
let wguard = self.writer.lock();
unsafe fn __read_unlock(
&self,
mut rguard: SpinMutexGuard<WaitVariable<Option<NonZeroUsize>>>,
wguard: SpinMutexGuard<WaitVariable<bool>>,
) {
*rguard.lock_var_mut() = NonZeroUsize::new(rguard.lock_var().unwrap().get() - 1);
if rguard.lock_var().is_some() {
// There are other active readers
Expand All @@ -107,9 +120,18 @@ impl RWLock {
}

#[inline]
pub unsafe fn write_unlock(&self) {
pub unsafe fn read_unlock(&self) {
let rguard = self.readers.lock();
let wguard = self.writer.lock();
self.__read_unlock(rguard, wguard);
}

#[inline]
unsafe fn __write_unlock(
&self,
rguard: SpinMutexGuard<WaitVariable<Option<NonZeroUsize>>>,
wguard: SpinMutexGuard<WaitVariable<bool>>,
) {
if let Err(mut wguard) = WaitQueue::notify_one(wguard) {
// No writers waiting, release the write lock
*wguard.lock_var_mut() = false;
Expand All @@ -128,6 +150,109 @@ impl RWLock {
}
}

#[inline]
pub unsafe fn write_unlock(&self) {
let rguard = self.readers.lock();
let wguard = self.writer.lock();
self.__write_unlock(rguard, wguard);
}

#[inline]
unsafe fn unlock(&self) {
let rguard = self.readers.lock();
let wguard = self.writer.lock();
if *wguard.lock_var() == true {
self.__write_unlock(rguard, wguard);
} else {
self.__read_unlock(rguard, wguard);
}
}

#[inline]
pub unsafe fn destroy(&self) {}
}

const EINVAL: i32 = 22;

#[no_mangle]
pub unsafe extern "C" fn __rust_rwlock_rdlock(p: *mut RWLock) -> i32 {
if p.is_null() {
return EINVAL;
}
(*p).read();
return 0;
}

#[no_mangle]
pub unsafe extern "C" fn __rust_rwlock_wrlock(p: *mut RWLock) -> i32 {
if p.is_null() {
return EINVAL;
}
(*p).write();
return 0;
}
#[no_mangle]
pub unsafe extern "C" fn __rust_rwlock_unlock(p: *mut RWLock) -> i32 {
if p.is_null() {
return EINVAL;
}
(*p).unlock();
return 0;
}

#[no_mangle]
pub unsafe extern "C" fn __rust_print_err(m: *mut u8, s: i32) {
if s < 0 {
return;
}
let buf = slice::from_raw_parts(m as *const u8, s as _);
if let Ok(s) = str::from_utf8(&buf[..buf.iter().position(|&b| b == 0).unwrap_or(buf.len())]) {
eprint!("{}", s);
}
}

#[no_mangle]
pub unsafe extern "C" fn __rust_abort() {
::sys::abort_internal();
}

#[cfg(test)]
mod tests {

use super::*;
use core::array::FixedSizeArray;
use mem::MaybeUninit;
use {mem, ptr};

// The below test verifies that the bytes of initialized RWLock are the ones
// we use in libunwind.
// If they change we need to update src/UnwindRustSgx.h in libunwind.
#[test]
fn test_c_rwlock_initializer() {
const RWLOCK_INIT: &[u8] = &[
0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
];

let mut init = MaybeUninit::<RWLock>::zeroed();
init.set(RWLock::new());
assert_eq!(
mem::transmute::<_, [u8; 128]>(init.into_inner()).as_slice(),
RWLOCK_INIT
);
}
}
5 changes: 1 addition & 4 deletions src/libunwind/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,7 @@ mod macros;
cfg_if! {
if #[cfg(target_env = "msvc")] {
// no extra unwinder support needed
} else if #[cfg(any(
all(target_arch = "wasm32", not(target_os = "emscripten")),
target_env = "sgx"
))] {
} else if #[cfg(all(target_arch = "wasm32", not(target_os = "emscripten")))] {
// no unwinder on the system!
} else {
extern crate libc;
Expand Down