I have a question about the feature flags use in the crates. I just can't 
understand them.

I thought the below means that we use these dependencies, when we are not in 
sgx environment. But is this not exactly contrary to what the intuition is?

```
[target.'cfg(not(target_env = "sgx"))'.dependencies]
```

Further, we have this:

```
#![cfg_attr(not(target_env = "sgx"), no_std)]
#![cfg_attr(target_env = "sgx", feature(rustc_private))]
```

If we are not in environment sgx, we are no std. But I thought sgx is exactly 
the no_std environment. And I don't understand why the line below is the exact 
opposite.

Last one:

```
#[cfg(not(target_env = "sgx"))]
extern crate sgx_tstd as std;
```
which to me is also: `import extern crate sgx_tstd as std` if we are not in sgx.

I have been using sgx for over a year now and never understood this. I thought 
it will be clear one day, but the more time passes, the more that the flags are 
used wrongly here.

So I would finally like to know, do I lack a fundamental understanding here, or 
are we somewhat working against the cargo system?


-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/apache/incubator-teaclave-sgx-sdk/issues/345

Reply via email to