mirror of
https://github.com/clearlinux/graphene.git
synced 2026-06-29 01:15:54 +00:00
8eee4a4742
The manifest syntax stays exactly the same, including 0 and 1 integers to denote boolean values (this is done for ease of porting and can be fixed in future commits). The only visible change is surrounding strings in the manifest with quotes (requirement of TOML). All manifests and Makefiles of our tests and example apps are ported to the new TOML syntax. Documentation is updated.
59 lines
2.4 KiB
Plaintext
59 lines
2.4 KiB
Plaintext
# Nodejs manifest file example
|
|
#
|
|
# This manifest was prepared and tested on Ubuntu 18.04.
|
|
|
|
loader.argv0_override = "nodejs"
|
|
|
|
# LibOS layer library of Graphene. There is currently only one implementation,
|
|
# so it is always set to libsysdb.so.
|
|
loader.preload = "file:$(GRAPHENEDIR)/Runtime/libsysdb.so"
|
|
|
|
# Show/hide debug log of Graphene ('inline' or 'none' respectively).
|
|
loader.debug_type = "$(GRAPHENEDEBUG)"
|
|
|
|
# Read application arguments directly from the command line. Don't use this on production!
|
|
loader.insecure__use_cmdline_argv = 1
|
|
|
|
# Specify paths to search for libraries. The usual LD_LIBRARY_PATH syntax
|
|
# applies. Paths must be in-Graphene visible paths, not host-OS paths (i.e.,
|
|
# paths must be taken from fs.mount.xxx.path, not fs.mount.xxx.uri).
|
|
loader.env.LD_LIBRARY_PATH = "/lib:$(ARCH_LIBDIR):/usr/$(ARCH_LIBDIR)"
|
|
|
|
# Mount host-OS directory to required libraries (in 'uri') into in-Graphene
|
|
# visible directory /lib (in 'path').
|
|
fs.mount.lib.type = "chroot"
|
|
fs.mount.lib.path = "/lib"
|
|
fs.mount.lib.uri = "file:$(GRAPHENEDIR)/Runtime"
|
|
|
|
fs.mount.lib2.type = "chroot"
|
|
fs.mount.lib2.path = "$(ARCH_LIBDIR)"
|
|
fs.mount.lib2.uri = "file:$(ARCH_LIBDIR)"
|
|
|
|
fs.mount.lib3.type = "chroot"
|
|
fs.mount.lib3.path = "/usr/$(ARCH_LIBDIR)"
|
|
fs.mount.lib3.uri = "file:/usr/$(ARCH_LIBDIR)"
|
|
|
|
# Set enclave size to 2GB; NodeJS expects around 1.7GB of heap on startup,
|
|
# see e.g. https://github.com/nodejs/node/issues/13018.
|
|
# Recall that SGX v1 requires to specify enclave size at enclave creation time.
|
|
sgx.enclave_size = "2G"
|
|
|
|
# Set maximum number of in-enclave threads (somewhat arbitrarily) to 8. Recall
|
|
# that SGX v1 requires to specify the maximum number of simultaneous threads at
|
|
# enclave creation time.
|
|
sgx.thread_num = 8
|
|
|
|
# Specify all libraries used by Node.js and its dependencies (including all libs
|
|
# which can be loaded at runtime via dlopen).
|
|
sgx.trusted_files.ld = "file:$(GRAPHENEDIR)/Runtime/ld-linux-x86-64.so.2"
|
|
sgx.trusted_files.libc = "file:$(GRAPHENEDIR)/Runtime/libc.so.6"
|
|
sgx.trusted_files.libm = "file:$(GRAPHENEDIR)/Runtime/libm.so.6"
|
|
sgx.trusted_files.libdl = "file:$(GRAPHENEDIR)/Runtime/libdl.so.2"
|
|
sgx.trusted_files.librt = "file:$(GRAPHENEDIR)/Runtime/librt.so.1"
|
|
sgx.trusted_files.libutil = "file:$(GRAPHENEDIR)/Runtime/libutil.so.1"
|
|
sgx.trusted_files.libpthread = "file:$(GRAPHENEDIR)/Runtime/libpthread.so.0"
|
|
$(NODEJS_TRUSTED_LIBS)
|
|
|
|
# JavaScript (trusted)
|
|
sgx.trusted_files.javascript = "file:helloworld.js"
|