node-secureworker
node-secureworker copied to clipboard
Enclaves won't build in new versions of Node.js
The package installs but enclaves won't build in new versions of Node.js. This happens when you run npm run test in v12.9.1.
root@anaconda:~/node-secureworker# npm run test
> [email protected] test /root/node-secureworker
> tests/run.js
cd duk_enclave && /opt/intel/sgxsdk/bin/x64/sgx_edger8r --untrusted duk_enclave.edl --search-path /opt/intel/sgxsdk/include
cc -m64 -O0 -g -fPIC -Wno-attributes -I/opt/intel/sgxsdk/include -DDEBUG -UNDEBUG -UEDEBUG -c -o duk_enclave/duk_enclave_u.o duk_enclave/duk_enclave_u.c
node-gyp rebuild
make[1]: Entering directory '/root/node-secureworker/build'
CXX(target) Release/obj.target/secureworker_internal/node-secureworker-internal/secureworker-internal.o
../node-secureworker-internal/secureworker-internal.cc: In destructor ‘virtual SecureWorkerInternal::~SecureWorkerInternal()’:
../node-secureworker-internal/secureworker-internal.cc:106:77: warning: throw will always call terminate() [-Wterminate]
if (status != SGX_SUCCESS) throw sgx_error(status, "sgx_destroy_enclave");
^
../node-secureworker-internal/secureworker-internal.cc:106:77: note: in C++11 destructors default to noexcept
../node-secureworker-internal/secureworker-internal.cc: In static member function ‘static void SecureWorkerInternal::getQuoteSize(const uint8_t*, uint32_t*)’:
../node-secureworker-internal/secureworker-internal.cc:154:70: warning: ‘sgx_status_t sgx_get_quote_size(const uint8_t*, uint32_t*)’ is deprecated [-Wdeprecated-declarations]
const sgx_status_t status = sgx_get_quote_size(sig_rl, quote_size);
^
In file included from ../node-secureworker-internal/secureworker-internal.cc:11:0:
/opt/intel/sgxsdk/include/sgx_uae_service.h:100:21: note: declared here
sgx_status_t SGXAPI sgx_get_quote_size(
^~~~~~~~~~~~~~~~~~
../node-secureworker-internal/secureworker-internal.cc: In function ‘void duk_enclave_post_message(const char*)’:
../node-secureworker-internal/secureworker-internal.cc:412:83: error: no matching function for call to ‘v8::Function::Call(v8::Local<v8::Object>&, int, v8::Local<v8::Value> [1])’
handle_post_message.As<v8::Function>()->Call(thread_entry->entrant, 1, arguments);
^
In file included from /root/.cache/node-gyp/12.9.1/include/node/node.h:63:0,
from ../node_modules/nan/nan.h:54,
from ../node-secureworker-internal/secureworker-internal.cc:1:
/root/.cache/node-gyp/12.9.1/include/node/v8.h:4161:43: note: candidate: v8::MaybeLocal<v8::Value> v8::Function::Call(v8::Local<v8::Context>, v8::Local<v8::Value>, int, v8::Local<v8::Value>*)
V8_WARN_UNUSED_RESULT MaybeLocal<Value> Call(Local<Context> context,
^~~~
/root/.cache/node-gyp/12.9.1/include/node/v8.h:4161:43: note: candidate expects 4 arguments, 3 provided
secureworker_internal.target.mk:115: recipe for target 'Release/obj.target/secureworker_internal/node-secureworker-internal/secureworker-internal.o' failed
make[1]: *** [Release/obj.target/secureworker_internal/node-secureworker-internal/secureworker-internal.o] Error 1
make[1]: Leaving directory '/root/node-secureworker/build'
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack at ChildProcess.onExit (/root/.nvm/versions/node/v12.9.1/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:196:23)
gyp ERR! stack at ChildProcess.emit (events.js:209:13)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:272:12)
gyp ERR! System Linux 4.15.0-58-generic
gyp ERR! command "/root/.nvm/versions/node/v12.9.1/bin/node" "/root/.nvm/versions/node/v12.9.1/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /root/node-secureworker
gyp ERR! node -v v12.9.1
gyp ERR! node-gyp -v v5.0.3
gyp ERR! not ok
Makefile:140: recipe for target 'build/Release/secureworker_internal.node' failed
make: *** [build/Release/secureworker_internal.node] Error 1
child_process.js:642
throw err;