google/cpu_features

Missing support for M1 features

alexbosworth opened this issue · 1 comments

In this issue mscdex/cpu-features#7 (comment) we can see that there is an error on M1 MacOS, resulting in dyld: missing symbol called

Relevant trace

(lldb) bt
* thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGABRT
  * frame #0: 0x000000010490f4dc dyld`__abort_with_payload + 8
    frame #1: 0x00000001049164dc dyld`abort_with_payload_wrapper_internal + 104
    frame #2: 0x0000000104916510 dyld`abort_with_payload + 16
    frame #3: 0x00000001048ce8e4 dyld`dyld4::halt(char const*) + 328
    frame #4: 0x00000001048ecf7c dyld`dyld4::APIs::_dyld_missing_symbol_abort() + 44
    frame #5: 0x0000000104ad9278 cpufeatures.node`GetCPUInfo(info=0x000000016fdfe6a0) at binding.cc:117:31
    frame #6: 0x0000000104adb244 cpufeatures.node`Nan::imp::FunctionCallbackWrapper(info=0x000000016fdfe6f0) at nan_callbacks_12_inl.h:176:3
    frame #7: 0x0000000100270d78 node`v8::internal::FunctionCallbackArguments::Call(v8::internal::CallHandlerInfo) + 276
    frame #8: 0x0000000100270870 node`v8::internal::MaybeHandle<v8::internal::Object> v8::internal::(anonymous namespace)::HandleApiCallHelper<false>(v8::internal::Isolate*, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::FunctionTemplateInfo>, v8::internal::Handle<v8::internal::Object>, v8::internal::BuiltinArguments) + 468
    frame #9: 0x00000001002700fc node`v8::internal::Builtin_HandleApiCall(int, unsigned long*, v8::internal::Isolate*) + 228
    frame #10: 0x00000001009b0bcc node`Builtins_CEntry_Return1_DontSaveFPRegs_ArgvOnStack_BuiltinExit + 108
    frame #11: 0x0000000100944718 node`Builtins_InterpreterEntryTrampoline + 248
    frame #12: 0x0000000100944718 node`Builtins_InterpreterEntryTrampoline + 248
    frame #13: 0x0000000100944718 node`Builtins_InterpreterEntryTrampoline + 248
    frame #14: 0x0000000100944718 node`Builtins_InterpreterEntryTrampoline + 248
    frame #15: 0x0000000100944718 node`Builtins_InterpreterEntryTrampoline + 248
    frame #16: 0x0000000100944718 node`Builtins_InterpreterEntryTrampoline + 248
    frame #17: 0x0000000100944718 node`Builtins_InterpreterEntryTrampoline + 248
    frame #18: 0x000000010094250c node`Builtins_JSEntryTrampoline + 172
    frame #19: 0x00000001009421a4 node`Builtins_JSEntry + 164
    frame #20: 0x0000000100313d64 node`v8::internal::(anonymous namespace)::Invoke(v8::internal::Isolate*, v8::internal::(anonymous namespace)::InvokeParams const&) + 2388
    frame #21: 0x00000001003133f8 node`v8::internal::Execution::Call(v8::internal::Isolate*, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, int, v8::internal::Handle<v8::internal::Object>*) + 200
    frame #22: 0x0000000100220888 node`v8::Function::Call(v8::Local<v8::Context>, v8::Local<v8::Value>, int, v8::Local<v8::Value>*) + 520
    frame #23: 0x0000000100083f5c node`node::ExecuteBootstrapper(node::Environment*, char const*, std::__1::vector<v8::Local<v8::String>, std::__1::allocator<v8::Local<v8::String> > >*, std::__1::vector<v8::Local<v8::Value>, std::__1::allocator<v8::Local<v8::Value> > >*) + 104
    frame #24: 0x0000000100084fc0 node`node::StartExecution(node::Environment*, char const*) + 312
    frame #25: 0x0000000100084e6c node`node::StartExecution(node::Environment*, std::__1::function<v8::MaybeLocal<v8::Value> (node::StartExecutionCallbackInfo const&)>) + 1044
    frame #26: 0x0000000100005a1c node`node::LoadEnvironment(node::Environment*, std::__1::function<v8::MaybeLocal<v8::Value> (node::StartExecutionCallbackInfo const&)>) + 136
    frame #27: 0x00000001000ee580 node`node::NodeMainInstance::Run(int*, node::Environment*) + 72
    frame #28: 0x00000001000ee27c node`node::NodeMainInstance::Run(node::EnvSerializeInfo const*) + 120
    frame #29: 0x0000000100087080 node`node::Start(int, char**) + 184
    frame #30: 0x00000001048c90f4 dyld`start + 520

Not sure, but updating MacOS seems to have resolved this for me