`pgx` is a crate to wirte custom functions to postgres database.
It has `no_std` features to turn off std,(but I think in v2.0.0 we don't have 
to turn off std for most crates.)
I used the `project template` in the samplecode folder.
Here is my `Cargo.toml` file:
```cargo.toml
[package]
name = "sample"
version = "1.0.0"
authors = ["XXX"]
edition = "2021"

[lib]
name = "sample"
crate-type = ["staticlib"]

[features]
default = ["pg15"]
pg11 = ["pgx/pg11"]
pg12 = ["pgx/pg12"]
pg13 = ["pgx/pg13"]
pg14 = ["pgx/pg14"]
pg15 = ["pgx/pg15"]

[dependencies]
pgx = {version = "0.6.1",default-features = false}

[dev-dependencies]

# uncomment these if compiling outside of 'pgx'
[profile.dev]
panic = "unwind"
lto = "thin"

[profile.release]
panic = "unwind"
opt-level = 3
lto = "fat"
codegen-units = 1
```
---
here is the  compile output:
```zsh
--- samplecode/pgx_in_sgx ‹v2.0.0-preview* ?› » CC=gcc-10 CXX=g++-10 make
/home/xin201501/sgx_sdk_2_17_1/sgxsdk/bin/x64/sgx_edger8r  --trusted 
enclave/enclave.edl --search-path 
/home/xin201501/incubator-teaclave-sgx-sdk/common/inc --search-path 
/home/xin201501/incubator-teaclave-sgx-sdk/sgx_edl/edl --trusted-dir enclave
/home/xin201501/sgx_sdk_2_17_1/sgxsdk/bin/x64/sgx_edger8r  --untrusted 
enclave/enclave.edl --search-path 
/home/xin201501/incubator-teaclave-sgx-sdk/common/inc --search-path 
/home/xin201501/incubator-teaclave-sgx-sdk/sgx_edl/edl --untrusted-dir app
GEN => enclave/enclave_t.c enclave/enclave_t.h app/enclave_u.c app/enclave_u.h
   Compiling sgx_types v2.0.0 
(/home/xin201501/incubator-teaclave-sgx-sdk/sgx_types)
   Compiling libc v0.2.139
   Compiling sgx_urts v2.0.0 
(/home/xin201501/incubator-teaclave-sgx-sdk/sgx_urts)
   Compiling app v1.0.0 
(/home/xin201501/incubator-teaclave-sgx-sdk/samplecode/pgx_in_sgx/app)
   Compiling sgx_uprotected_fs v2.0.0 
(/home/xin201501/incubator-teaclave-sgx-sdk/sgx_protected_fs/ufs)
    Finished release [optimized] target(s) in 1.58s
LINK => bin/app
    Updating crates.io index
   Compiling compiler_builtins v0.1.82
   Compiling sgx_build_helper v2.0.0 
(/home/xin201501/incubator-teaclave-sgx-sdk/sgx_build_helper/build_helper)
   Compiling core v0.0.0 
(/home/xin201501/.rustup/toolchains/nightly-2022-10-22-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core)
   Compiling sgx_types v2.0.0 
(/home/xin201501/incubator-teaclave-sgx-sdk/sgx_types)
   Compiling sgx_trts v2.0.0 
(/home/xin201501/incubator-teaclave-sgx-sdk/sgx_trts)
   Compiling sgx_download_prebuilt v2.0.0 
(/home/xin201501/incubator-teaclave-sgx-sdk/sgx_build_helper/download_prebuilt)
   Compiling sgx_unwind v2.0.0 
(/home/xin201501/incubator-teaclave-sgx-sdk/sgx_unwind)
   Compiling sgx_tlibc_sys v2.0.0 
(/home/xin201501/incubator-teaclave-sgx-sdk/sgx_libc/sgx_tlibc_sys)
   Compiling sgx_crypto_sys v2.0.0 
(/home/xin201501/incubator-teaclave-sgx-sdk/sgx_crypto/sgx_crypto_sys)
   Compiling rustc-std-workspace-core v1.99.0 
(/home/xin201501/.rustup/toolchains/nightly-2022-10-22-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/rustc-std-workspace-core)
   Compiling alloc v0.0.0 
(/home/xin201501/.rustup/toolchains/nightly-2022-10-22-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc)
   Compiling sgx_alloc v2.0.0 
(/home/xin201501/incubator-teaclave-sgx-sdk/sgx_alloc)
   Compiling hashbrown_tstd v0.12.0 
(/home/xin201501/incubator-teaclave-sgx-sdk/sgx_tstd/hashbrown)
   Compiling panic_unwind v0.0.0 
(/home/xin201501/incubator-teaclave-sgx-sdk/rustlib/panic_unwind)
   Compiling sgx_ffi v2.0.0 (/home/xin201501/incubator-teaclave-sgx-sdk/sgx_ffi)
   Compiling sgx_sync v2.0.0 
(/home/xin201501/incubator-teaclave-sgx-sdk/sgx_sync)
   Compiling panic_abort v0.0.0 
(/home/xin201501/incubator-teaclave-sgx-sdk/rustlib/panic_abort)
   Compiling sgx_oc v2.0.0 (/home/xin201501/incubator-teaclave-sgx-sdk/sgx_oc)
   Compiling sgx_rsrvmm v2.0.0 
(/home/xin201501/incubator-teaclave-sgx-sdk/sgx_rsrvmm)
   Compiling std v0.0.0 (/home/xin201501/incubator-teaclave-sgx-sdk/rustlib/std)
    Finished release [optimized] target(s) in 24.81s
error: failed to parse manifest at 
`/home/xin201501/incubator-teaclave-sgx-sdk/samplecode/pgx_in_sgx/enclave/Cargo.toml`

Caused by:
  feature `pg11` includes `pgx-tests/pg11`, but `pgx-tests` is not a dependency
make: *** [Makefile:181:enclave] 错误 101
--- samplecode/pgx_in_sgx ‹v2.0.0-preview* ?› » CC=gcc-10 CXX=g++-10 make   2 ↵
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Finished release [optimized] target(s) in 1.22s
LINK => bin/app
    Finished release [optimized] target(s) in 0.09s
   Compiling proc-macro2 v1.0.49
   Compiling quote v1.0.23
   Compiling unicode-ident v1.0.6
   Compiling syn v1.0.107
   Compiling autocfg v1.1.0
   Compiling memchr v2.5.0
   Compiling libc v0.2.139
   Compiling cfg-if v1.0.0
   Compiling log v0.4.17
   Compiling serde v1.0.152
   Compiling serde_derive v1.0.152
   Compiling once_cell v1.17.0
   Compiling eyre v0.6.8
   Compiling serde_json v1.0.91
   Compiling regex-syntax v0.6.28
   Compiling thiserror v1.0.38
   Compiling lazy_static v1.4.0
   Compiling indexmap v1.9.2
   Compiling crossbeam-utils v0.8.14
   Compiling memoffset v0.7.1
   Compiling tracing-core v0.1.30
   Compiling crossbeam-epoch v0.9.13
   Compiling tinyvec_macros v0.1.0
   Compiling pin-project-lite v0.2.9
   Compiling aho-corasick v0.7.20
   Compiling overload v0.1.1
   Compiling glob v0.3.0
   Compiling tinyvec v1.6.0
   Compiling nu-ansi-term v0.46.0
   Compiling tracing-log v0.1.3
   Compiling clang-sys v1.4.0
   Compiling sharded-slab v0.1.4
   Compiling thread_local v1.1.4
   Compiling indenter v0.3.3
   Compiling hashbrown v0.12.3
   Compiling ryu v1.0.12
   Compiling itoa v1.0.5
   Compiling smallvec v1.10.0
   Compiling ucd-trie v0.1.5
   Compiling scopeguard v1.1.0
   Compiling unicode-normalization v0.1.22
   Compiling unicode-bidi v0.3.8
   Compiling minimal-lexical v0.2.1
   Compiling seq-macro v0.3.2
   Compiling rayon-core v1.10.1
   Compiling regex-automata v0.1.10
   Compiling regex v1.7.0
   Compiling percent-encoding v2.2.0
   Compiling semver v1.0.16
   Compiling fixedbitset v0.4.2
   Compiling cty v0.2.2
   Compiling form_urlencoded v1.1.0
   Compiling cstr_core v0.2.6
   Compiling nom v7.1.2
   Compiling petgraph v0.6.2
   Compiling idna v0.3.0
   Compiling crossbeam-deque v0.8.2
   Compiling matchers v0.1.0
   Compiling crossbeam-channel v0.5.6
   Compiling dirs-sys v0.3.7
   Compiling num_cpus v1.15.0
   Compiling atty v0.2.14
   Compiling libloading v0.7.4
   Compiling unescape v0.1.0
   Compiling convert_case v0.5.0
   Compiling bindgen v0.60.1
error[E0463]: can't find crate for `proc_macro`
   --> 
/home/xin201501/.cargo/registry/src/github.com-1ecc6299db9ec823/proc-macro2-1.0.49/src/lib.rs:122:1
    |
122 | extern crate proc_macro;
    | ^^^^^^^^^^^^^^^^^^^^^^^^ can't find crate

error[E0635]: unknown feature `proc_macro_span`
  --> 
/home/xin201501/.cargo/registry/src/github.com-1ecc6299db9ec823/proc-macro2-1.0.49/src/lib.rs:92:13
   |
92 |     feature(proc_macro_span, proc_macro_span_shrink)
   |             ^^^^^^^^^^^^^^^

error[E0635]: unknown feature `proc_macro_span_shrink`
  --> 
/home/xin201501/.cargo/registry/src/github.com-1ecc6299db9ec823/proc-macro2-1.0.49/src/lib.rs:92:30
   |
92 |     feature(proc_macro_span, proc_macro_span_shrink)
   |                              ^^^^^^^^^^^^^^^^^^^^^^

Some errors have detailed explanations: E0463, E0635.
For more information about an error, try `rustc --explain E0463`.
error: could not compile `proc-macro2` due to 3 previous errors
warning: build failed, waiting for other jobs to finish...
make: *** [Makefile:181:enclave] 错误 101
```
I think the real "problematic crate" may be `proc-marco2` crate.

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

Message ID: <apache/incubator-teaclave-sgx-sdk/issues/4...@github.com>

Reply via email to