RuntimeTools / appmetrics

Node Application Metrics provides a foundational infrastructure for collecting resource and performance monitoring data for Node.js-based applications.
https://developer.ibm.com/open/node-application-metrics/
Apache License 2.0
974 stars 125 forks source link

Appmetrics 5.0.3 fails to build with node:12-alpine #610

Closed webTOdev closed 4 years ago

webTOdev commented 4 years ago

Hi, I am using Appmetrics 5.0.3 and node:12-alpine, but when I run yarn production command I get an error. I have tried https://github.com/RuntimeTools/appmetrics/issues/438 already with no luck. My docker file

FROM node:12-alpine

RUN apk update && \
  apk add libc6-compat python make g++

ONBUILD WORKDIR /tmp/node/production

ONBUILD COPY .npmrc .npmrc
ONBUILD COPY package.json package.json
ONBUILD COPY yarn.lock yarn.lock

ONBUILD ENV LD_LIBRARY_PATH /app/node_modules/appmetrics

ONBUILD RUN yarn --production
ONBUILD RUN mkdir -p /opt/service && ln -s /tmp/node/production/node_modules /opt/service/prod_node_modules

ONBUILD RUN rm -f .npmrc

ONBUILD WORKDIR /tmp/node/build

ONBUILD COPY .npmrc .npmrc
ONBUILD COPY package.json package.json
ONBUILD COPY yarn.lock yarn.lock

ONBUILD RUN yarn --production=false
ONBUILD RUN mkdir -p /opt/service && ln -s /tmp/node/build/node_modules /opt/service/node_modules

ONBUILD RUN rm -f .npmrc

ONBUILD WORKDIR /opt/service

ONBUILD COPY . .

ONBUILD ENV NODE_ENV=production

ONBUILD RUN yarn build

The error I am getting is ,

.........
yarn install v1.17.3
[1/4] Resolving packages...
[3/4] Linking dependencies...
warning "appmetrics@5.0.3" is missing a bundled dependency "tar". This should be reported to the package maintainer.
[4/4] Building fresh packages...
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
error /tmp/node/production/node_modules/appmetrics: Command failed.
Exit code: 1
Command: node showBuildInfo.js && node-gyp rebuild
Arguments:
Directory: /tmp/node/production/node_modules/appmetrics
Output:
Sat, 14 Sep 2019 14:36:48 GMT
********************************************************************************
You are installing the Node Application Metrics monitoring and profiling module.
Licensed under the Apache License, Version 2.0 (the "License")
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
********************************************************************************

********************************************************************************
Appmetrics uses node-gyp to compile and build local binary libraries to enhance execution performance. If the following compilation and build logs contain errors, make sure you have the node-gyp pre-requisites installed (https://github.com/nodejs/node-gyp#installation). If you have them and the build still had errors, see if there are any related issues at https://github.com/RuntimeTools/appmetrics/issues). If there aren't, feel free to open a new issue to report the bug.
********************************************************************************

gyp info it worked if it ends with ok
gyp info using node-gyp@5.0.3
gyp info using node@12.10.0 | linux | x64
gyp info find Python using Python version 2.7.16 found at "/usr/bin/python"
gyp http GET https://nodejs.org/download/release/v12.10.0/node-v12.10.0-headers.tar.gz
gyp http 200 https://nodejs.org/download/release/v12.10.0/node-v12.10.0-headers.tar.gz
gyp http GET https://nodejs.org/download/release/v12.10.0/SHASUMS256.txt
gyp http 200 https://nodejs.org/download/release/v12.10.0/SHASUMS256.txt
gyp info spawn /usr/bin/python
gyp info spawn args [
gyp info spawn args   '/usr/local/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py',
gyp info spawn args   'binding.gyp',
gyp info spawn args   '-f',
gyp info spawn args   'make',
gyp info spawn args   '-I',
gyp info spawn args   '/tmp/node/production/node_modules/appmetrics/build/config.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/usr/local/lib/node_modules/npm/node_modules/node-gyp/addon.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/root/.cache/node-gyp/12.10.0/include/node/common.gypi',
gyp info spawn args   '-Dlibrary=shared_library',
gyp info spawn args   '-Dvisibility=default',
gyp info spawn args   '-Dnode_root_dir=/root/.cache/node-gyp/12.10.0',
gyp info spawn args   '-Dnode_gyp_dir=/usr/local/lib/node_modules/npm/node_modules/node-gyp',
gyp info spawn args   '-Dnode_lib_file=/root/.cache/node-gyp/12.10.0/<(target_arch)/node.lib',
gyp info spawn args   '-Dmodule_root_dir=/tmp/node/production/node_modules/appmetrics',
gyp info spawn args   '-Dnode_engine=v8',
gyp info spawn args   '--depth=.',
gyp info spawn args   '--no-parallel',
gyp info spawn args   '--generator-output',
gyp info spawn args   'build',
gyp info spawn args   '-Goutput_dir=.'
gyp info spawn args ]
gyp info spawn make
gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
make: Entering directory '/tmp/node/production/node_modules/appmetrics/build'
  ACTION binding_gyp_appmetrics_target_Set_appmetrics_reported_version_build_level Release/obj.target/appmetrics/geni/appmetrics.cpp
infile: ./src/appmetrics.cpp
outfile: /tmp/node/production/node_modules/appmetrics/build/Release/obj.target/appmetrics/geni/appmetrics.cpp
Replacing '"99\.99\.99\.29991231"' with '"5.0.3.201909141436"'
  CXX(target) Release/obj.target/appmetrics/geni/appmetrics.o
In file included from Release/obj.target/appmetrics/geni/appmetrics.cpp:22:
../../nan/nan.h: In function 'void Nan::AsyncQueueWorker(Nan::AsyncWorker*)':
../../nan/nan.h:2298:62: warning: cast between incompatible function types from 'void (*)(uv_work_t*)' {aka 'void (*)(uv_work_s*)'} to 'uv_after_work_cb' {aka 'void (*)(uv_work_s*, int)'} [-Wcast-function-type]
     , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
                                                              ^
In file included from ../src/plugins/node/prof/watchdog.h:21,
                 from Release/obj.target/appmetrics/geni/appmetrics.cpp:25:
../src/plugins/node/prof/compat-inl.h: In static member function 'static v8::Local<v8::String> compat::String::NewFromUtf8(v8::Isolate*, const char*, compat::String::NewStringType, int)':
../src/plugins/node/prof/compat-inl.h:353:74: warning: 'static v8::Local<v8::String> v8::String::NewFromUtf8(v8::Isolate*, const char*, v8::String::NewStringType, int)' is deprecated: Use maybe version [-Wdeprecated-declarations]
       isolate, data, static_cast<v8::String::NewStringType>(type), length);
                                                                          ^
In file included from /root/.cache/node-gyp/12.10.0/include/node/v8-internal.h:14,
                 from /root/.cache/node-gyp/12.10.0/include/node/v8.h:25,
                 from /root/.cache/node-gyp/12.10.0/include/node/node.h:63,
                 from Release/obj.target/appmetrics/geni/appmetrics.cpp:21:
/root/.cache/node-gyp/12.10.0/include/node/v8.h:2905:21: note: declared here
       Local<String> NewFromUtf8(Isolate* isolate, const char* data,
                     ^~~~~~~~~~~
/root/.cache/node-gyp/12.10.0/include/node/v8config.h:311:3: note: in definition of macro 'V8_DEPRECATED'
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
In file included from ../src/plugins/node/prof/watchdog.h:21,
                 from Release/obj.target/appmetrics/geni/appmetrics.cpp:25:
../src/plugins/node/prof/compat-inl.h:353:74: warning: 'static v8::Local<v8::String> v8::String::NewFromUtf8(v8::Isolate*, const char*, v8::String::NewStringType, int)' is deprecated: Use maybe version [-Wdeprecated-declarations]
       isolate, data, static_cast<v8::String::NewStringType>(type), length);
                                                                          ^
In file included from /root/.cache/node-gyp/12.10.0/include/node/v8-internal.h:14,
                 from /root/.cache/node-gyp/12.10.0/include/node/v8.h:25,
                 from /root/.cache/node-gyp/12.10.0/include/node/node.h:63,
                 from Release/obj.target/appmetrics/geni/appmetrics.cpp:21:
/root/.cache/node-gyp/12.10.0/include/node/v8.h:2905:21: note: declared here
       Local<String> NewFromUtf8(Isolate* isolate, const char* data,
                     ^~~~~~~~~~~
/root/.cache/node-gyp/12.10.0/include/node/v8config.h:311:3: note: in definition of macro 'V8_DEPRECATED'
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
Release/obj.target/appmetrics/geni/appmetrics.cpp: In function 'Nan::NAN_METHOD_RETURN_TYPE getOption(Nan::NAN_METHOD_ARGS_TYPE)':
Release/obj.target/appmetrics/geni/appmetrics.cpp:363:106: warning: 'static v8::Local<v8::String> v8::String::NewFromUtf8(v8::Isolate*, const char*, v8::String::NewStringType, int)' is deprecated: Use maybe version [-Wdeprecated-declarations]
         v8::Local<v8::String> v8str = v8::String::NewFromUtf8(v8::Isolate::GetCurrent(), property.c_str());
                                                                                                          ^
In file included from /root/.cache/node-gyp/12.10.0/include/node/v8-internal.h:14,
                 from /root/.cache/node-gyp/12.10.0/include/node/v8.h:25,
                 from /root/.cache/node-gyp/12.10.0/include/node/node.h:63,
                 from Release/obj.target/appmetrics/geni/appmetrics.cpp:21:
/root/.cache/node-gyp/12.10.0/include/node/v8.h:2905:21: note: declared here
       Local<String> NewFromUtf8(Isolate* isolate, const char* data,
                     ^~~~~~~~~~~
/root/.cache/node-gyp/12.10.0/include/node/v8config.h:311:3: note: in definition of macro 'V8_DEPRECATED'
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
Release/obj.target/appmetrics/geni/appmetrics.cpp:363:106: warning: 'static v8::Local<v8::String> v8::String::NewFromUtf8(v8::Isolate*, const char*, v8::String::NewStringType, int)' is deprecated: Use maybe version [-Wdeprecated-declarations]
         v8::Local<v8::String> v8str = v8::String::NewFromUtf8(v8::Isolate::GetCurrent(), property.c_str());
                                                                                                          ^
In file included from /root/.cache/node-gyp/12.10.0/include/node/v8-internal.h:14,
                 from /root/.cache/node-gyp/12.10.0/include/node/v8.h:25,
                 from /root/.cache/node-gyp/12.10.0/include/node/node.h:63,
                 from Release/obj.target/appmetrics/geni/appmetrics.cpp:21:
/root/.cache/node-gyp/12.10.0/include/node/v8.h:2905:21: note: declared here
       Local<String> NewFromUtf8(Isolate* isolate, const char* data,
                     ^~~~~~~~~~~
/root/.cache/node-gyp/12.10.0/include/node/v8config.h:311:3: note: in definition of macro 'V8_DEPRECATED'
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
Release/obj.target/appmetrics/geni/appmetrics.cpp: In function 'void emitMessage(uv_async_t*, int)':
Release/obj.target/appmetrics/geni/appmetrics.cpp:451:44: warning: 'v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const' is deprecated [-Wdeprecated-declarations]
         listener->callback->Call(argc, argv);
                                            ^
In file included from Release/obj.target/appmetrics/geni/appmetrics.cpp:22:
../../nan/nan.h:1740:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
Release/obj.target/appmetrics/geni/appmetrics.cpp: In function 'void lrtime(const Nan::FunctionCallbackInfo<v8::Value>&)':
Release/obj.target/appmetrics/geni/appmetrics.cpp:620:55: warning: 'bool v8::Object::Set(uint32_t, v8::Local<v8::Value>)' is deprecated: Use maybe version [-Wdeprecated-declarations]
     result->Set(0, v8::Number::New(isolate, ts.tv_sec));
                                                       ^
In file included from /root/.cache/node-gyp/12.10.0/include/node/v8-internal.h:14,
                 from /root/.cache/node-gyp/12.10.0/include/node/v8.h:25,
                 from /root/.cache/node-gyp/12.10.0/include/node/node.h:63,
                 from Release/obj.target/appmetrics/geni/appmetrics.cpp:21:
/root/.cache/node-gyp/12.10.0/include/node/v8.h:3381:22: note: declared here
                 bool Set(uint32_t index, Local<Value> value));
                      ^~~
/root/.cache/node-gyp/12.10.0/include/node/v8config.h:311:3: note: in definition of macro 'V8_DEPRECATED'
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
Release/obj.target/appmetrics/geni/appmetrics.cpp:621:69: warning: 'bool v8::Object::Set(uint32_t, v8::Local<v8::Value>)' is deprecated: Use maybe version [-Wdeprecated-declarations]
     result->Set(1, v8::Integer::NewFromUnsigned(isolate, ts.tv_nsec));
                                                                     ^
In file included from /root/.cache/node-gyp/12.10.0/include/node/v8-internal.h:14,
                 from /root/.cache/node-gyp/12.10.0/include/node/v8.h:25,
                 from /root/.cache/node-gyp/12.10.0/include/node/node.h:63,
                 from Release/obj.target/appmetrics/geni/appmetrics.cpp:21:
/root/.cache/node-gyp/12.10.0/include/node/v8.h:3381:22: note: declared here
                 bool Set(uint32_t index, Local<Value> value));
                      ^~~
/root/.cache/node-gyp/12.10.0/include/node/v8config.h:311:3: note: in definition of macro 'V8_DEPRECATED'
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
Release/obj.target/appmetrics/geni/appmetrics.cpp: In function 'void init(v8::Local<v8::Object>, v8::Local<v8::Object>)':
Release/obj.target/appmetrics/geni/appmetrics.cpp:735:65: warning: cast between incompatible function types from 'void (*)(uv_async_t*, int)' {aka 'void (*)(uv_async_s*, int)'} to 'uv_async_cb' {aka 'void (*)(uv_async_s*)'} [-Wcast-function-type]
     uv_async_init(uv_default_loop(), messageAsync, (uv_async_cb)emitMessage);
                                                                 ^~~~~~~~~~~
In file included from Release/obj.target/appmetrics/geni/appmetrics.cpp:21:
Release/obj.target/appmetrics/geni/appmetrics.cpp: At global scope:
/root/.cache/node-gyp/12.10.0/include/node/node.h:560:43: warning: cast between incompatible function types from 'void (*)(v8::Local<v8::Object>, v8::Local<v8::Object>)' to 'node::addon_register_func' {aka 'void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, void*)'} [-Wcast-function-type]
       (node::addon_register_func) (regfunc),                          \
                                           ^
/root/.cache/node-gyp/12.10.0/include/node/node.h:594:3: note: in expansion of macro 'NODE_MODULE_X'
   NODE_MODULE_X(modname, regfunc, NULL, 0)  // NOLINT (readability/null_usage)
   ^~~~~~~~~~~~~
Release/obj.target/appmetrics/geni/appmetrics.cpp:790:1: note: in expansion of macro 'NODE_MODULE'
 NODE_MODULE(appmetrics, init)
 ^~~~~~~~~~~
In file included from /root/.cache/node-gyp/12.10.0/include/node/node.h:63,
                 from Release/obj.target/appmetrics/geni/appmetrics.cpp:21:
/root/.cache/node-gyp/12.10.0/include/node/v8.h: In instantiation of 'void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]':
/root/.cache/node-gyp/12.10.0/include/node/node_object_wrap.h:84:78:   required from here
/root/.cache/node-gyp/12.10.0/include/node/v8.h:9893:16: warning: cast between incompatible function types from 'v8::WeakCallbackInfo<node::ObjectWrap>::Callback' {aka 'void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)'} to 'Callback' {aka 'void (*)(const v8::WeakCallbackInfo<void>&)'} [-Wcast-function-type]
                reinterpret_cast<Callback>(callback), type);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/root/.cache/node-gyp/12.10.0/include/node/v8.h: In instantiation of 'void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]':
../../nan/nan_object_wrap.h:65:61:   required from here
/root/.cache/node-gyp/12.10.0/include/node/v8.h:9893:16: warning: cast between incompatible function types from 'v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback' {aka 'void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)'} to 'Callback' {aka 'void (*)(const v8::WeakCallbackInfo<void>&)'} [-Wcast-function-type]
  CXX(target) Release/obj.target/appmetrics/src/headlessutils.o
In file included from ../src/headlessutils.h:21,
                 from ../src/headlessutils.cpp:18:
../../nan/nan.h: In function 'void Nan::AsyncQueueWorker(Nan::AsyncWorker*)':
../../nan/nan.h:2298:62: warning: cast between incompatible function types from 'void (*)(uv_work_t*)' {aka 'void (*)(uv_work_s*)'} to 'uv_after_work_cb' {aka 'void (*)(uv_work_s*, int)'} [-Wcast-function-type]
     , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
                                                              ^
../src/headlessutils.cpp: In function 'void headless::asyncfunc(uv_async_t*)':
../src/headlessutils.cpp:45:84: warning: 'static v8::Local<v8::String> v8::String::NewFromUtf8(v8::Isolate*, const char*, v8::String::NewStringType, int)' is deprecated: Use maybe version [-Wdeprecated-declarations]
  v8::Local<v8::Value> argv[] = { v8::String::NewFromUtf8(isolate, outputDir.c_str()) };
                                                                                    ^
In file included from /root/.cache/node-gyp/12.10.0/include/node/v8-internal.h:14,
                 from /root/.cache/node-gyp/12.10.0/include/node/v8.h:25,
                 from /root/.cache/node-gyp/12.10.0/include/node/node.h:63,
                 from ../../nan/nan.h:54,
                 from ../src/headlessutils.h:21,
                 from ../src/headlessutils.cpp:18:
/root/.cache/node-gyp/12.10.0/include/node/v8.h:2905:21: note: declared here
       Local<String> NewFromUtf8(Isolate* isolate, const char* data,
                     ^~~~~~~~~~~
/root/.cache/node-gyp/12.10.0/include/node/v8config.h:311:3: note: in definition of macro 'V8_DEPRECATED'
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../src/headlessutils.cpp:45:84: warning: 'static v8::Local<v8::String> v8::String::NewFromUtf8(v8::Isolate*, const char*, v8::String::NewStringType, int)' is deprecated: Use maybe version [-Wdeprecated-declarations]
  v8::Local<v8::Value> argv[] = { v8::String::NewFromUtf8(isolate, outputDir.c_str()) };
                                                                                    ^
In file included from /root/.cache/node-gyp/12.10.0/include/node/v8-internal.h:14,
                 from /root/.cache/node-gyp/12.10.0/include/node/v8.h:25,
                 from /root/.cache/node-gyp/12.10.0/include/node/node.h:63,
                 from ../../nan/nan.h:54,
                 from ../src/headlessutils.h:21,
                 from ../src/headlessutils.cpp:18:
/root/.cache/node-gyp/12.10.0/include/node/v8.h:2905:21: note: declared here
       Local<String> NewFromUtf8(Isolate* isolate, const char* data,
                     ^~~~~~~~~~~
/root/.cache/node-gyp/12.10.0/include/node/v8config.h:311:3: note: in definition of macro 'V8_DEPRECATED'
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../src/headlessutils.cpp:49:39: warning: 'v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const' is deprecated [-Wdeprecated-declarations]
    headless::zipFunction->Call(1, argv);
                                       ^
In file included from ../src/headlessutils.h:21,
                 from ../src/headlessutils.cpp:18:
../../nan/nan.h:1740:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
In file included from /root/.cache/node-gyp/12.10.0/include/node/node.h:63,
                 from ../../nan/nan.h:54,
                 from ../src/headlessutils.h:21,
                 from ../src/headlessutils.cpp:18:
/root/.cache/node-gyp/12.10.0/include/node/v8.h: In instantiation of 'void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]':
/root/.cache/node-gyp/12.10.0/include/node/node_object_wrap.h:84:78:   required from here
/root/.cache/node-gyp/12.10.0/include/node/v8.h:9893:16: warning: cast between incompatible function types from 'v8::WeakCallbackInfo<node::ObjectWrap>::Callback' {aka 'void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)'} to 'Callback' {aka 'void (*)(const v8::WeakCallbackInfo<void>&)'} [-Wcast-function-type]
                reinterpret_cast<Callback>(callback), type);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/root/.cache/node-gyp/12.10.0/include/node/v8.h: In instantiation of 'void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]':
../../nan/nan_object_wrap.h:65:61:   required from here
/root/.cache/node-gyp/12.10.0/include/node/v8.h:9893:16: warning: cast between incompatible function types from 'v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback' {aka 'void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)'} to 'Callback' {aka 'void (*)(const v8::WeakCallbackInfo<void>&)'} [-Wcast-function-type]
  CXX(target) Release/obj.target/appmetrics/src/objecttracker.o
In file included from ../src/objecttracker.cpp:23:
../../nan/nan.h: In function 'void Nan::AsyncQueueWorker(Nan::AsyncWorker*)':
../../nan/nan.h:2298:62: warning: cast between incompatible function types from 'void (*)(uv_work_t*)' {aka 'void (*)(uv_work_s*)'} to 'uv_after_work_cb' {aka 'void (*)(uv_work_s*, int)'} [-Wcast-function-type]
     , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
                                                              ^
../src/objecttracker.cpp: In function 'Nan::NAN_METHOD_RETURN_TYPE getObjectHistogram(Nan::NAN_METHOD_ARGS_TYPE)':
../src/objecttracker.cpp:65:64: warning: 'static v8::Local<v8::String> v8::String::NewFromUtf8(v8::Isolate*, const char*, v8::String::NewStringType, int)' is deprecated: Use maybe version [-Wdeprecated-declarations]
  Local<String> countName = String::NewFromUtf8(isolate, "count");
                                                                ^
In file included from /root/.cache/node-gyp/12.10.0/include/node/v8-internal.h:14,
                 from /root/.cache/node-gyp/12.10.0/include/node/v8.h:25,
                 from /root/.cache/node-gyp/12.10.0/include/node/node.h:63,
                 from ../src/objecttracker.cpp:20:
/root/.cache/node-gyp/12.10.0/include/node/v8.h:2905:21: note: declared here
       Local<String> NewFromUtf8(Isolate* isolate, const char* data,
                     ^~~~~~~~~~~
/root/.cache/node-gyp/12.10.0/include/node/v8config.h:311:3: note: in definition of macro 'V8_DEPRECATED'
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../src/objecttracker.cpp:65:64: warning: 'static v8::Local<v8::String> v8::String::NewFromUtf8(v8::Isolate*, const char*, v8::String::NewStringType, int)' is deprecated: Use maybe version [-Wdeprecated-declarations]
  Local<String> countName = String::NewFromUtf8(isolate, "count");
                                                                ^
In file included from /root/.cache/node-gyp/12.10.0/include/node/v8-internal.h:14,
                 from /root/.cache/node-gyp/12.10.0/include/node/v8.h:25,
                 from /root/.cache/node-gyp/12.10.0/include/node/node.h:63,
                 from ../src/objecttracker.cpp:20:
/root/.cache/node-gyp/12.10.0/include/node/v8.h:2905:21: note: declared here
       Local<String> NewFromUtf8(Isolate* isolate, const char* data,
                     ^~~~~~~~~~~
/root/.cache/node-gyp/12.10.0/include/node/v8config.h:311:3: note: in definition of macro 'V8_DEPRECATED'
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../src/objecttracker.cpp:66:62: warning: 'static v8::Local<v8::String> v8::String::NewFromUtf8(v8::Isolate*, const char*, v8::String::NewStringType, int)' is deprecated: Use maybe version [-Wdeprecated-declarations]
  Local<String> sizeName = String::NewFromUtf8(isolate, "size");
                                                              ^
In file included from /root/.cache/node-gyp/12.10.0/include/node/v8-internal.h:14,
                 from /root/.cache/node-gyp/12.10.0/include/node/v8.h:25,
                 from /root/.cache/node-gyp/12.10.0/include/node/node.h:63,
                 from ../src/objecttracker.cpp:20:
/root/.cache/node-gyp/12.10.0/include/node/v8.h:2905:21: note: declared here
       Local<String> NewFromUtf8(Isolate* isolate, const char* data,
                     ^~~~~~~~~~~
/root/.cache/node-gyp/12.10.0/include/node/v8config.h:311:3: note: in definition of macro 'V8_DEPRECATED'
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../src/objecttracker.cpp:66:62: warning: 'static v8::Local<v8::String> v8::String::NewFromUtf8(v8::Isolate*, const char*, v8::String::NewStringType, int)' is deprecated: Use maybe version [-Wdeprecated-declarations]
  Local<String> sizeName = String::NewFromUtf8(isolate, "size");
                                                              ^
In file included from /root/.cache/node-gyp/12.10.0/include/node/v8-internal.h:14,
                 from /root/.cache/node-gyp/12.10.0/include/node/v8.h:25,
                 from /root/.cache/node-gyp/12.10.0/include/node/node.h:63,
                 from ../src/objecttracker.cpp:20:
/root/.cache/node-gyp/12.10.0/include/node/v8.h:2905:21: note: declared here
       Local<String> NewFromUtf8(Isolate* isolate, const char* data,
                     ^~~~~~~~~~~
/root/.cache/node-gyp/12.10.0/include/node/v8config.h:311:3: note: in definition of macro 'V8_DEPRECATED'
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../src/objecttracker.cpp:74:68: warning: 'static v8::Local<v8::String> v8::String::NewFromUtf8(v8::Isolate*, const char*, v8::String::NewStringType, int)' is deprecated: Use maybe version [-Wdeprecated-declarations]
  Local<String> stringName = String::NewFromUtf8(isolate, "(string)");
                                                                    ^
In file included from /root/.cache/node-gyp/12.10.0/include/node/v8-internal.h:14,
                 from /root/.cache/node-gyp/12.10.0/include/node/v8.h:25,
                 from /root/.cache/node-gyp/12.10.0/include/node/node.h:63,
                 from ../src/objecttracker.cpp:20:
/root/.cache/node-gyp/12.10.0/include/node/v8.h:2905:21: note: declared here
       Local<String> NewFromUtf8(Isolate* isolate, const char* data,
                     ^~~~~~~~~~~
/root/.cache/node-gyp/12.10.0/include/node/v8config.h:311:3: note: in definition of macro 'V8_DEPRECATED'
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../src/objecttracker.cpp:74:68: warning: 'static v8::Local<v8::String> v8::String::NewFromUtf8(v8::Isolate*, const char*, v8::String::NewStringType, int)' is deprecated: Use maybe version [-Wdeprecated-declarations]
  Local<String> stringName = String::NewFromUtf8(isolate, "(string)");
                                                                    ^
In file included from /root/.cache/node-gyp/12.10.0/include/node/v8-internal.h:14,
                 from /root/.cache/node-gyp/12.10.0/include/node/v8.h:25,
                 from /root/.cache/node-gyp/12.10.0/include/node/node.h:63,
                 from ../src/objecttracker.cpp:20:
/root/.cache/node-gyp/12.10.0/include/node/v8.h:2905:21: note: declared here
       Local<String> NewFromUtf8(Isolate* isolate, const char* data,
                     ^~~~~~~~~~~
/root/.cache/node-gyp/12.10.0/include/node/v8config.h:311:3: note: in definition of macro 'V8_DEPRECATED'
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../src/objecttracker.cpp:75:66: warning: 'static v8::Local<v8::String> v8::String::NewFromUtf8(v8::Isolate*, const char*, v8::String::NewStringType, int)' is deprecated: Use maybe version [-Wdeprecated-declarations]
  Local<String> arrayName = String::NewFromUtf8(isolate, "(array)");
                                                                  ^
In file included from /root/.cache/node-gyp/12.10.0/include/node/v8-internal.h:14,
                 from /root/.cache/node-gyp/12.10.0/include/node/v8.h:25,
                 from /root/.cache/node-gyp/12.10.0/include/node/node.h:63,
                 from ../src/objecttracker.cpp:20:
/root/.cache/node-gyp/12.10.0/include/node/v8.h:2905:21: note: declared here
       Local<String> NewFromUtf8(Isolate* isolate, const char* data,
                     ^~~~~~~~~~~
/root/.cache/node-gyp/12.10.0/include/node/v8config.h:311:3: note: in definition of macro 'V8_DEPRECATED'
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../src/objecttracker.cpp:75:66: warning: 'static v8::Local<v8::String> v8::String::NewFromUtf8(v8::Isolate*, const char*, v8::String::NewStringType, int)' is deprecated: Use maybe version [-Wdeprecated-declarations]
  Local<String> arrayName = String::NewFromUtf8(isolate, "(array)");
                                                                  ^
In file included from /root/.cache/node-gyp/12.10.0/include/node/v8-internal.h:14,
                 from /root/.cache/node-gyp/12.10.0/include/node/v8.h:25,
                 from /root/.cache/node-gyp/12.10.0/include/node/node.h:63,
                 from ../src/objecttracker.cpp:20:
/root/.cache/node-gyp/12.10.0/include/node/v8.h:2905:21: note: declared here
       Local<String> NewFromUtf8(Isolate* isolate, const char* data,
                     ^~~~~~~~~~~
/root/.cache/node-gyp/12.10.0/include/node/v8config.h:311:3: note: in definition of macro 'V8_DEPRECATED'
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../src/objecttracker.cpp:122:30: warning: 'bool v8::Object::Set(v8::Local<v8::Value>, v8::Local<v8::Value>)' is deprecated: Use maybe version [-Wdeprecated-declarations]
    histogram->Set(name, tuple);
                              ^
In file included from /root/.cache/node-gyp/12.10.0/include/node/v8-internal.h:14,
                 from /root/.cache/node-gyp/12.10.0/include/node/v8.h:25,
                 from /root/.cache/node-gyp/12.10.0/include/node/node.h:63,
                 from ../src/objecttracker.cpp:20:
/root/.cache/node-gyp/12.10.0/include/node/v8.h:3372:22: note: declared here
                 bool Set(Local<Value> key, Local<Value> value));
                      ^~~
/root/.cache/node-gyp/12.10.0/include/node/v8config.h:311:3: note: in definition of macro 'V8_DEPRECATED'
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../src/objecttracker.cpp:127:33: warning: 'bool v8::Object::Set(v8::Local<v8::Value>, v8::Local<v8::Value>)' is deprecated: Use maybe version [-Wdeprecated-declarations]
   tuple->Set(countName, newcount);
                                 ^
In file included from /root/.cache/node-gyp/12.10.0/include/node/v8-internal.h:14,
                 from /root/.cache/node-gyp/12.10.0/include/node/v8.h:25,
                 from /root/.cache/node-gyp/12.10.0/include/node/node.h:63,
                 from ../src/objecttracker.cpp:20:
/root/.cache/node-gyp/12.10.0/include/node/v8.h:3372:22: note: declared here
                 bool Set(Local<Value> key, Local<Value> value));
                      ^~~
/root/.cache/node-gyp/12.10.0/include/node/v8config.h:311:3: note: in definition of macro 'V8_DEPRECATED'
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../src/objecttracker.cpp:129:31: warning: 'bool v8::Object::Set(v8::Local<v8::Value>, v8::Local<v8::Value>)' is deprecated: Use maybe version [-Wdeprecated-declarations]
   tuple->Set(sizeName, newsize);
                               ^
In file included from /root/.cache/node-gyp/12.10.0/include/node/v8-internal.h:14,
                 from /root/.cache/node-gyp/12.10.0/include/node/v8.h:25,
                 from /root/.cache/node-gyp/12.10.0/include/node/node.h:63,
                 from ../src/objecttracker.cpp:20:
/root/.cache/node-gyp/12.10.0/include/node/v8.h:3372:22: note: declared here
                 bool Set(Local<Value> key, Local<Value> value));
                      ^~~
/root/.cache/node-gyp/12.10.0/include/node/v8config.h:311:3: note: in definition of macro 'V8_DEPRECATED'
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
In file included from /root/.cache/node-gyp/12.10.0/include/node/node.h:63,
                 from ../src/objecttracker.cpp:20:
/root/.cache/node-gyp/12.10.0/include/node/v8.h: In instantiation of 'void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]':
/root/.cache/node-gyp/12.10.0/include/node/node_object_wrap.h:84:78:   required from here
/root/.cache/node-gyp/12.10.0/include/node/v8.h:9893:16: warning: cast between incompatible function types from 'v8::WeakCallbackInfo<node::ObjectWrap>::Callback' {aka 'void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)'} to 'Callback' {aka 'void (*)(const v8::WeakCallbackInfo<void>&)'} [-Wcast-function-type]
                reinterpret_cast<Callback>(callback), type);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/root/.cache/node-gyp/12.10.0/include/node/v8.h: In instantiation of 'void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]':
../../nan/nan_object_wrap.h:65:61:   required from here
/root/.cache/node-gyp/12.10.0/include/node/v8.h:9893:16: warning: cast between incompatible function types from 'v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback' {aka 'void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)'} to 'Callback' {aka 'void (*)(const v8::WeakCallbackInfo<void>&)'} [-Wcast-function-type]
  SOLINK_MODULE(target) Release/obj.target/appmetrics.node
  COPY Release/appmetrics.node
  CXX(target) Release/obj.target/heapdump/src/heapdump/heapdump.o
In file included from ../src/heapdump/heapdump.cc:16:
../../nan/nan.h: In function 'void Nan::AsyncQueueWorker(Nan::AsyncWorker*)':
../../nan/nan.h:2298:62: warning: cast between incompatible function types from 'void (*)(uv_work_t*)' {aka 'void (*)(uv_work_s*)'} to 'uv_after_work_cb' {aka 'void (*)(uv_work_s*, int)'} [-Wcast-function-type]
     , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
                                                              ^
In file included from ../src/heapdump/heapdump.cc:17:
../src/heapdump/../plugins/node/prof/compat-inl.h: In static member function 'static v8::Local<v8::String> compat::String::NewFromUtf8(v8::Isolate*, const char*, compat::String::NewStringType, int)':
../src/heapdump/../plugins/node/prof/compat-inl.h:353:74: warning: 'static v8::Local<v8::String> v8::String::NewFromUtf8(v8::Isolate*, const char*, v8::String::NewStringType, int)' is deprecated: Use maybe version [-Wdeprecated-declarations]
       isolate, data, static_cast<v8::String::NewStringType>(type), length);
                                                                          ^
In file included from /root/.cache/node-gyp/12.10.0/include/node/v8-internal.h:14,
                 from /root/.cache/node-gyp/12.10.0/include/node/v8.h:25,
                 from /root/.cache/node-gyp/12.10.0/include/node/node.h:63,
                 from ../src/heapdump/heapdump.cc:15:
/root/.cache/node-gyp/12.10.0/include/node/v8.h:2905:21: note: declared here
       Local<String> NewFromUtf8(Isolate* isolate, const char* data,
                     ^~~~~~~~~~~
/root/.cache/node-gyp/12.10.0/include/node/v8config.h:311:3: note: in definition of macro 'V8_DEPRECATED'
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
In file included from ../src/heapdump/heapdump.cc:17:
../src/heapdump/../plugins/node/prof/compat-inl.h:353:74: warning: 'static v8::Local<v8::String> v8::String::NewFromUtf8(v8::Isolate*, const char*, v8::String::NewStringType, int)' is deprecated: Use maybe version [-Wdeprecated-declarations]
       isolate, data, static_cast<v8::String::NewStringType>(type), length);
                                                                          ^
In file included from /root/.cache/node-gyp/12.10.0/include/node/v8-internal.h:14,
                 from /root/.cache/node-gyp/12.10.0/include/node/v8.h:25,
                 from /root/.cache/node-gyp/12.10.0/include/node/node.h:63,
                 from ../src/heapdump/heapdump.cc:15:
/root/.cache/node-gyp/12.10.0/include/node/v8.h:2905:21: note: declared here
       Local<String> NewFromUtf8(Isolate* isolate, const char* data,
                     ^~~~~~~~~~~
/root/.cache/node-gyp/12.10.0/include/node/v8config.h:311:3: note: in definition of macro 'V8_DEPRECATED'
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../src/heapdump/heapdump.cc: In function 'void {anonymous}::InvokeCallback(const char*)':
../src/heapdump/heapdump.cc:143:32: warning: 'v8::Local<v8::Value> node::MakeCallback(v8::Isolate*, v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*)' is deprecated: Use MakeCallback(..., async_context) [-Wdeprecated-declarations]
                      argc, argv);
                                ^
In file included from ../src/heapdump/heapdump.cc:15:
/root/.cache/node-gyp/12.10.0/include/node/node.h:174:50: note: declared here
                 NODE_EXTERN v8::Local<v8::Value> MakeCallback(
                                                  ^~~~~~~~~~~~
/root/.cache/node-gyp/12.10.0/include/node/node.h:93:42: note: in definition of macro 'NODE_DEPRECATED'
     __attribute__((deprecated(message))) declarator
                                          ^~~~~~~~~~
../src/heapdump/heapdump.cc:143:32: warning: 'v8::Local<v8::Value> node::MakeCallback(v8::Isolate*, v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*)' is deprecated: Use MakeCallback(..., async_context) [-Wdeprecated-declarations]
                      argc, argv);
                                ^
In file included from ../src/heapdump/heapdump.cc:15:
/root/.cache/node-gyp/12.10.0/include/node/node.h:174:50: note: declared here
                 NODE_EXTERN v8::Local<v8::Value> MakeCallback(
                                                  ^~~~~~~~~~~~
/root/.cache/node-gyp/12.10.0/include/node/node.h:93:42: note: in definition of macro 'NODE_DEPRECATED'
     __attribute__((deprecated(message))) declarator
                                          ^~~~~~~~~~
../src/heapdump/heapdump.cc: In function 'void {anonymous}::Initialize(v8::Local<v8::Object>)':
../src/heapdump/heapdump.cc:164:51: warning: 'bool v8::Object::Set(v8::Local<v8::Value>, v8::Local<v8::Value>)' is deprecated: Use maybe version [-Wdeprecated-declarations]
                C::Integer::New(isolate, kForkFlag));
                                                   ^
In file included from /root/.cache/node-gyp/12.10.0/include/node/v8-internal.h:14,
                 from /root/.cache/node-gyp/12.10.0/include/node/v8.h:25,
                 from /root/.cache/node-gyp/12.10.0/include/node/node.h:63,
                 from ../src/heapdump/heapdump.cc:15:
/root/.cache/node-gyp/12.10.0/include/node/v8.h:3372:22: note: declared here
                 bool Set(Local<Value> key, Local<Value> value));
                      ^~~
/root/.cache/node-gyp/12.10.0/include/node/v8config.h:311:3: note: in definition of macro 'V8_DEPRECATED'
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../src/heapdump/heapdump.cc:166:53: warning: 'bool v8::Object::Set(v8::Local<v8::Value>, v8::Local<v8::Value>)' is deprecated: Use maybe version [-Wdeprecated-declarations]
                C::Integer::New(isolate, kSignalFlag));
                                                     ^
In file included from /root/.cache/node-gyp/12.10.0/include/node/v8-internal.h:14,
                 from /root/.cache/node-gyp/12.10.0/include/node/v8.h:25,
                 from /root/.cache/node-gyp/12.10.0/include/node/node.h:63,
                 from ../src/heapdump/heapdump.cc:15:
/root/.cache/node-gyp/12.10.0/include/node/v8.h:3372:22: note: declared here
                 bool Set(Local<Value> key, Local<Value> value));
                      ^~~
/root/.cache/node-gyp/12.10.0/include/node/v8config.h:311:3: note: in definition of macro 'V8_DEPRECATED'
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../src/heapdump/heapdump.cc:169:56: warning: 'bool v8::Object::Set(v8::Local<v8::Value>, v8::Local<v8::Value>)' is deprecated: Use maybe version [-Wdeprecated-declarations]
                 ->GetFunction(context).ToLocalChecked());
                                                        ^
In file included from /root/.cache/node-gyp/12.10.0/include/node/v8-internal.h:14,
                 from /root/.cache/node-gyp/12.10.0/include/node/v8.h:25,
                 from /root/.cache/node-gyp/12.10.0/include/node/node.h:63,
                 from ../src/heapdump/heapdump.cc:15:
/root/.cache/node-gyp/12.10.0/include/node/v8.h:3372:22: note: declared here
                 bool Set(Local<Value> key, Local<Value> value));
                      ^~~
/root/.cache/node-gyp/12.10.0/include/node/v8config.h:311:3: note: in definition of macro 'V8_DEPRECATED'
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../src/heapdump/heapdump.cc:172:56: warning: 'bool v8::Object::Set(v8::Local<v8::Value>, v8::Local<v8::Value>)' is deprecated: Use maybe version [-Wdeprecated-declarations]
                 ->GetFunction(context).ToLocalChecked());
                                                        ^
In file included from /root/.cache/node-gyp/12.10.0/include/node/v8-internal.h:14,
                 from /root/.cache/node-gyp/12.10.0/include/node/v8.h:25,
                 from /root/.cache/node-gyp/12.10.0/include/node/node.h:63,
                 from ../src/heapdump/heapdump.cc:15:
/root/.cache/node-gyp/12.10.0/include/node/v8.h:3372:22: note: declared here
                 bool Set(Local<Value> key, Local<Value> value));
                      ^~~
/root/.cache/node-gyp/12.10.0/include/node/v8config.h:311:3: note: in definition of macro 'V8_DEPRECATED'
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
In file included from ../src/heapdump/heapdump.cc:15:
../src/heapdump/heapdump.cc: At global scope:
/root/.cache/node-gyp/12.10.0/include/node/node.h:560:43: warning: cast between incompatible function types from 'void (*)(v8::Local<v8::Object>)' to 'node::addon_register_func' {aka 'void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, void*)'} [-Wcast-function-type]
       (node::addon_register_func) (regfunc),                          \
                                           ^
/root/.cache/node-gyp/12.10.0/include/node/node.h:594:3: note: in expansion of macro 'NODE_MODULE_X'
   NODE_MODULE_X(modname, regfunc, NULL, 0)  // NOLINT (readability/null_usage)
   ^~~~~~~~~~~~~
../src/heapdump/heapdump.cc:175:1: note: in expansion of macro 'NODE_MODULE'
 NODE_MODULE(addon, Initialize)
 ^~~~~~~~~~~
In file included from /root/.cache/node-gyp/12.10.0/include/node/node.h:63,
                 from ../src/heapdump/heapdump.cc:15:
/root/.cache/node-gyp/12.10.0/include/node/v8.h: In instantiation of 'void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]':
/root/.cache/node-gyp/12.10.0/include/node/node_object_wrap.h:84:78:   required from here
/root/.cache/node-gyp/12.10.0/include/node/v8.h:9893:16: warning: cast between incompatible function types from 'v8::WeakCallbackInfo<node::ObjectWrap>::Callback' {aka 'void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)'} to 'Callback' {aka 'void (*)(const v8::WeakCallbackInfo<void>&)'} [-Wcast-function-type]
                reinterpret_cast<Callback>(callback), type);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/root/.cache/node-gyp/12.10.0/include/node/v8.h: In instantiation of 'void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]':
../../nan/nan_object_wrap.h:65:61:   required from here
/root/.cache/node-gyp/12.10.0/include/node/v8.h:9893:16: warning: cast between incompatible function types from 'v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback' {aka 'void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)'} to 'Callback' {aka 'void (*)(const v8::WeakCallbackInfo<void>&)'} [-Wcast-function-type]
  SOLINK_MODULE(target) Release/obj.target/heapdump.node
  COPY Release/heapdump.node
  ACTION omr_agentcore_binding_gyp_agentcore_target_Set_core_reported_version_build_level Release/obj.target/agentcore/geni/monitoring/agent/Agent.cpp
infile: ./src/ibmras/monitoring/agent/Agent.cpp
outfile: /tmp/node/production/node_modules/appmetrics/build/Release/obj.target/agentcore/geni/monitoring/agent/Agent.cpp
Replacing '"99\.99\.99\.29991231"' with '"4.0.3.201909141436"'
  CXX(target) Release/obj.target/agentcore/omr-agentcore/src/ibmras/common/Logger.o
  CXX(target) Release/obj.target/agentcore/omr-agentcore/src/ibmras/common/LogManager.o
  CXX(target) Release/obj.target/agentcore/omr-agentcore/src/ibmras/common/MemoryManager.o
  CXX(target) Release/obj.target/agentcore/omr-agentcore/src/ibmras/common/util/FileUtils.o
  CXX(target) Release/obj.target/agentcore/omr-agentcore/src/ibmras/common/util/LibraryUtils.o
  CXX(target) Release/obj.target/agentcore/omr-agentcore/src/ibmras/common/port/linux/Thread.o
In file included from ../omr-agentcore/src/ibmras/common/port/linux/Thread.cpp:23:
../omr-agentcore/src/ibmras/common/port/linux/Thread.cpp: In function 'void* ibmras::common::port::wrapper(void*)':
../omr-agentcore/src/ibmras/common/port/linux/Thread.cpp:56:79: warning: cast between incompatible function types from 'ibmras::common::port::THREAD_CALLBACK' {aka 'void* (*)(ibmras::common::port::ThreadData*)'} to 'void (*)(void*)' [-Wcast-function-type]
   pthread_cleanup_push(reinterpret_cast<void (*)(void*)>(data->getStopMethod()), data);
                                                                               ^
../omr-agentcore/src/ibmras/common/port/linux/Thread.cpp: In function 'void ibmras::common::port::stopAllThreads()':
../omr-agentcore/src/ibmras/common/port/linux/Thread.cpp:144:8: error: 'pthread_getname_np' was not declared in this scope
   rc = pthread_getname_np(top, theName, 16);
        ^~~~~~~~~~~~~~~~~~
../omr-agentcore/src/ibmras/common/port/linux/Thread.cpp:144:8: note: suggested alternative: 'pthread_setname_np'
   rc = pthread_getname_np(top, theName, 16);
        ^~~~~~~~~~~~~~~~~~
        pthread_setname_np
make: *** [omr-agentcore/agentcore.target.mk:153: Release/obj.target/agentcore/omr-agentcore/src/ibmras/common/port/linux/Thread.o] Error 1
make: Leaving directory '/tmp/node/production/node_modules/appmetrics/build'
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/local/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.9.184-linuxkit
gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /tmp/node/production/node_modules/appmetrics
gyp ERR! node -v v12.10.0
gyp ERR! node-gyp -v v5.0.3
gyp ERR! not ok
The command '/bin/sh -c yarn --production' returned a non-zero code: 1
mattcolegate commented 4 years ago

This has been raised at https://github.com/RuntimeTools/omr-agentcore/issues/90 which is where the a fix will go in, if there is one - I'm hoping for support for pthread_getname_np :-) Please re-open this issue if you don't agree that it's the same problem.