`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/[email protected]>