Opened 3 years ago

Last modified 20 months ago

#61592 assigned defect

nodejs8 nodejs10 nodejs12 nodejs13 nodejs14 nodejs15: Add arm64 support

Reported by: shibukawa (Yoshiki Shibukawa) Owned by: ci42
Priority: Normal Milestone:
Component: ports Version: 2.6.4
Keywords: arm64 Cc:
Port: nodejs8 nodejs10 nodejs12 nodejs13 nodejs14 nodejs15

Description

I tried to install nodejs12 and nodejs14 ports, but installing icu fails by the following error:

:error:destroot Failed to destroot icu: icu-config differs in /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_icu/icu/work/destroot-arm64//opt/local/bin and /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_icu/icu/work/destroot-ppc-intel//opt/local/bin and cannot be merged
  • This command fails because this command assumes inputs are binary, but icu-config is text file
  • Why is +universal required for nodejs?

Attachments (3)

main.log (1.6 MB) - added by shibukawa (Yoshiki Shibukawa) 3 years ago.
main.2.log (1.5 MB) - added by raw-bin (Robin Randhawa) 3 years ago.
main.3.log (1.3 MB) - added by hexagonal-sun (Matthew Leach) 3 years ago.
nodejs14 arm64 build

Change History (16)

Changed 3 years ago by shibukawa (Yoshiki Shibukawa)

Attachment: main.log added

comment:1 Changed 3 years ago by shibukawa (Yoshiki Shibukawa)

Version: 2.6.4

comment:2 in reply to:  description Changed 3 years ago by jmroot (Joshua Root)

Cc: ci42 added
Keywords: arm64 added; M1 removed

Replying to shibukawa:

  • Why is +universal required for nodejs?

From nodejs14:

# V8 only supports ARM and IA-32 processors
supported_archs         i386 x86_64

With this setting, the only choice is to build for x86_64 on your arm64 hardware, which means all the dependencies have to be universal. Going by the comment, arm64 can be added to the supported archs.

comment:3 in reply to:  description Changed 3 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: ci42 removed
Owner: set to ci42
Port: nodejs8 nodejs10 nodejs12 nodejs13 nodejs14 nodejs15 added; icu removed
Status: newassigned
Summary: icu 67.1_2 [+universal]: build failed to try create universal binary of icu-config on Apple M1nodejs8 nodejs10 nodejs12 nodejs13 nodejs14 nodejs15: Add arm64 support

Replying to shibukawa:

I tried to install nodejs12 and nodejs14 ports, but installing icu fails by the following error:

:error:destroot Failed to destroot icu: icu-config differs in /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_icu/icu/work/destroot-arm64//opt/local/bin and /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_icu/icu/work/destroot-ppc-intel//opt/local/bin and cannot be merged
  • This command fails because this command assumes inputs are binary, but icu-config is text file

No, it assumes that text files will be identical or at least mergeable (e.g. header files), and icu-config varies based on arch and shell scripts are not mergeable. This is #45268.

comment:4 Changed 3 years ago by hexagonal-sun (Matthew Leach)

I've added a PR that allows nodejs15 to be built on arm64: https://github.com/macports/macports-ports/pull/9381 . Built and tested on my machine.

Changed 3 years ago by raw-bin (Robin Randhawa)

Attachment: main.2.log added

comment:5 Changed 3 years ago by raw-bin (Robin Randhawa)

Hi. I'm hitting a build failure for nodejs15 on my Macbook Pro 13 with M1 silicon, Big Sur.

I had extended the Portfile almost exactly similarly to the PR above (ie: https://github.com/macports/macports-ports/pull/9381) to try and get nodejs15 to build:

> git diff
diff --git a/devel/nodejs15/Portfile b/devel/nodejs15/Portfile
index 63557e2d2c3..660a2afe2cd 100644
--- a/devel/nodejs15/Portfile
+++ b/devel/nodejs15/Portfile
@@ -82,7 +82,7 @@ configure.args-append   --shared-openssl-includes=${prefix}/include/openssl
 configure.args-append   --shared-openssl-libpath=${prefix}/lib

 # V8 only supports ARM and IA-32 processors
-supported_archs         i386 x86_64
+supported_archs         arm64 i386 x86_64

 universal_variant       no

@@ -93,6 +93,9 @@ test.run                yes
 test.cmd                ${build.cmd} -j${build.jobs}

 switch $build_arch {
+    arm64 {
+        configure.args-append   --dest-cpu=arm64
+    }
     i386 {
         configure.args-append   --dest-cpu=ia32
     }

I don't understand the failure:

:info:build   /usr/bin/clang++ -o /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj.host/bytecode_builtins_list_generator/deps/v8/src/builtins/generate-bytecodes-builtins-list.o ../deps/v8/src/builtins/generate-bytecodes-builtins-list.cc '-DV8_GYP_BUILD' '-DV8_TYPED_ARRAY_MAX_SIZE_IN_HEAP=64' '-D_DARWIN_USE_64_BIT_INODE=1' '-DV8_TARGET_ARCH_ARM64' '-DV8_EMBEDDER_STRING="-node.22"' '-DENABLE_DISASSEMBLER' '-DV8_PROMISE_INTERNAL_FIELD_COUNT=1' '-DENABLE_MINOR_MC' '-DOBJECT_PRINT' '-DV8_INTL_SUPPORT' '-DV8_CONCURRENT_MARKING' '-DV8_ENABLE_LAZY_SOURCE_POSITIONS' '-DV8_USE_SIPHASH' '-DDISABLE_UNTRUSTED_CODE_MITIGATIONS' '-DV8_WIN64_UNWINDING_INFO' '-DV8_ENABLE_REGEXP_INTERPRETER_THREADED_DISPATCH' '-DV8_SNAPSHOT_COMPRESSION' -I/opt/local/include/openssl -I../deps/v8 -I../deps/v8/include  -O3 -gdwarf-2 -fstrict-aliasing -arch arm64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu++1y -stdlib=libc++ -fno-rtti -fno-exceptions -fno-strict-aliasing -MMD -MF /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/.deps//opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj.host/bytecode_builtins_list_generator/deps/v8/src/builtins/generate-bytecodes-builtins-list.o.d.raw   -c
:info:build   /usr/bin/clang++ -o /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj.host/bytecode_builtins_list_generator/deps/v8/src/interpreter/bytecode-operands.o ../deps/v8/src/interpreter/bytecode-operands.cc '-DV8_GYP_BUILD' '-DV8_TYPED_ARRAY_MAX_SIZE_IN_HEAP=64' '-D_DARWIN_USE_64_BIT_INODE=1' '-DV8_TARGET_ARCH_ARM64' '-DV8_EMBEDDER_STRING="-node.22"' '-DENABLE_DISASSEMBLER' '-DV8_PROMISE_INTERNAL_FIELD_COUNT=1' '-DENABLE_MINOR_MC' '-DOBJECT_PRINT' '-DV8_INTL_SUPPORT' '-DV8_CONCURRENT_MARKING' '-DV8_ENABLE_LAZY_SOURCE_POSITIONS' '-DV8_USE_SIPHASH' '-DDISABLE_UNTRUSTED_CODE_MITIGATIONS' '-DV8_WIN64_UNWINDING_INFO' '-DV8_ENABLE_REGEXP_INTERPRETER_THREADED_DISPATCH' '-DV8_SNAPSHOT_COMPRESSION' -I/opt/local/include/openssl -I../deps/v8 -I../deps/v8/include  -O3 -gdwarf-2 -fstrict-aliasing -arch arm64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu++1y -stdlib=libc++ -fno-rtti -fno-exceptions -fno-strict-aliasing -MMD -MF /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/.deps//opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj.host/bytecode_builtins_list_generator/deps/v8/src/interpreter/bytecode-operands.o.d.raw   -c
:info:build   /usr/bin/clang++ -o /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj.host/bytecode_builtins_list_generator/deps/v8/src/interpreter/bytecodes.o ../deps/v8/src/interpreter/bytecodes.cc '-DV8_GYP_BUILD' '-DV8_TYPED_ARRAY_MAX_SIZE_IN_HEAP=64' '-D_DARWIN_USE_64_BIT_INODE=1' '-DV8_TARGET_ARCH_ARM64' '-DV8_EMBEDDER_STRING="-node.22"' '-DENABLE_DISASSEMBLER' '-DV8_PROMISE_INTERNAL_FIELD_COUNT=1' '-DENABLE_MINOR_MC' '-DOBJECT_PRINT' '-DV8_INTL_SUPPORT' '-DV8_CONCURRENT_MARKING' '-DV8_ENABLE_LAZY_SOURCE_POSITIONS' '-DV8_USE_SIPHASH' '-DDISABLE_UNTRUSTED_CODE_MITIGATIONS' '-DV8_WIN64_UNWINDING_INFO' '-DV8_ENABLE_REGEXP_INTERPRETER_THREADED_DISPATCH' '-DV8_SNAPSHOT_COMPRESSION' -I/opt/local/include/openssl -I../deps/v8 -I../deps/v8/include  -O3 -gdwarf-2 -fstrict-aliasing -arch arm64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu++1y -stdlib=libc++ -fno-rtti -fno-exceptions -fno-strict-aliasing -MMD -MF /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/.deps//opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj.host/bytecode_builtins_list_generator/deps/v8/src/interpreter/bytecodes.o.d.raw   -c
:info:build   rm -f /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj.host/tools/v8_gypfiles/libtorque_base.a && ./gyp-mac-tool filter-libtool libtool  -static -o /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj.host/tools/v8_gypfiles/libtorque_base.a /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj.host/torque_base/deps/v8/src/torque/cfg.o /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj.host/torque_base/deps/v8/src/torque/class-debug-reader-generator.o /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj.host/torque_base/deps/v8/src/torque/csa-generator.o /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj.host/torque_base/deps/v8/src/torque/declarable.o /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj.host/torque_base/deps/v8/src/torque/declaration-visitor.o /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj.host/torque_base/deps/v8/src/torque/declarations.o /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj.host/torque_base/deps/v8/src/torque/earley-parser.o /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj.host/torque_base/deps/v8/src/torque/global-context.o /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj.host/torque_base/deps/v8/src/torque/implementation-visitor.o /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj.host/torque_base/deps/v8/src/torque/instance-type-generator.o /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj.host/torque_base/deps/v8/src/torque/instructions.o /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj.host/torque_base/deps/v8/src/torque/server-data.o /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj.host/torque_base/deps/v8/src/torque/source-positions.o /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj.host/torque_base/deps/v8/src/torque/torque-compiler.o /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj.host/torque_base/deps/v8/src/torque/torque-parser.o /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj.host/torque_base/deps/v8/src/torque/type-inference.o /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj.host/torque_base/deps/v8/src/torque/type-oracle.o /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj.host/torque_base/deps/v8/src/torque/type-visitor.o /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj.host/torque_base/deps/v8/src/torque/types.o /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj.host/torque_base/deps/v8/src/torque/utils.o
:info:build   /usr/bin/clang++ -o /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj.host/gen-regexp-special-case/deps/v8/src/regexp/gen-regexp-special-case.o ../deps/v8/src/regexp/gen-regexp-special-case.cc '-DV8_GYP_BUILD' '-DV8_TYPED_ARRAY_MAX_SIZE_IN_HEAP=64' '-D_DARWIN_USE_64_BIT_INODE=1' '-DV8_TARGET_ARCH_ARM64' '-DV8_EMBEDDER_STRING="-node.22"' '-DENABLE_DISASSEMBLER' '-DV8_PROMISE_INTERNAL_FIELD_COUNT=1' '-DENABLE_MINOR_MC' '-DOBJECT_PRINT' '-DV8_INTL_SUPPORT' '-DV8_CONCURRENT_MARKING' '-DV8_ENABLE_LAZY_SOURCE_POSITIONS' '-DV8_USE_SIPHASH' '-DDISABLE_UNTRUSTED_CODE_MITIGATIONS' '-DV8_WIN64_UNWINDING_INFO' '-DV8_ENABLE_REGEXP_INTERPRETER_THREADED_DISPATCH' '-DV8_SNAPSHOT_COMPRESSION' -I/opt/local/include/openssl -I../deps/v8 -I../deps/v8/include  -O3 -gdwarf-2 -fstrict-aliasing -arch arm64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu++1y -stdlib=libc++ -fno-rtti -fno-exceptions -fno-strict-aliasing -MMD -MF /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/.deps//opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj.host/gen-regexp-special-case/deps/v8/src/regexp/gen-regexp-special-case.o.d.raw   -c
:info:build   rm -f /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/libtorque_base.a && ./gyp-mac-tool filter-libtool libtool  -static -o /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/libtorque_base.a /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj.target/torque_base/deps/v8/src/torque/cfg.o /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj.target/torque_base/deps/v8/src/torque/class-debug-reader-generator.o /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj.target/torque_base/deps/v8/src/torque/csa-generator.o /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj.target/torque_base/deps/v8/src/torque/declarable.o /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj.target/torque_base/deps/v8/src/torque/declaration-visitor.o /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj.target/torque_base/deps/v8/src/torque/declarations.o /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj.target/torque_base/deps/v8/src/torque/earley-parser.o /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj.target/torque_base/deps/v8/src/torque/global-context.o /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj.target/torque_base/deps/v8/src/torque/implementation-visitor.o /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj.target/torque_base/deps/v8/src/torque/instance-type-generator.o /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj.target/torque_base/deps/v8/src/torque/instructions.o /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj.target/torque_base/deps/v8/src/torque/server-data.o /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj.target/torque_base/deps/v8/src/torque/source-positions.o /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj.target/torque_base/deps/v8/src/torque/torque-compiler.o /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj.target/torque_base/deps/v8/src/torque/torque-parser.o /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj.target/torque_base/deps/v8/src/torque/type-inference.o /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj.target/torque_base/deps/v8/src/torque/type-oracle.o /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj.target/torque_base/deps/v8/src/torque/type-visitor.o /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj.target/torque_base/deps/v8/src/torque/types.o /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj.target/torque_base/deps/v8/src/torque/utils.o
:info:build   /usr/bin/clang++ -o /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj.host/torque/deps/v8/src/torque/torque.o ../deps/v8/src/torque/torque.cc '-DV8_GYP_BUILD' '-DV8_TYPED_ARRAY_MAX_SIZE_IN_HEAP=64' '-D_DARWIN_USE_64_BIT_INODE=1' '-DV8_TARGET_ARCH_ARM64' '-DV8_EMBEDDER_STRING="-node.22"' '-DENABLE_DISASSEMBLER' '-DV8_PROMISE_INTERNAL_FIELD_COUNT=1' '-DENABLE_MINOR_MC' '-DOBJECT_PRINT' '-DV8_INTL_SUPPORT' '-DV8_CONCURRENT_MARKING' '-DV8_ENABLE_LAZY_SOURCE_POSITIONS' '-DV8_USE_SIPHASH' '-DDISABLE_UNTRUSTED_CODE_MITIGATIONS' '-DV8_WIN64_UNWINDING_INFO' '-DV8_ENABLE_REGEXP_INTERPRETER_THREADED_DISPATCH' '-DV8_SNAPSHOT_COMPRESSION' -I/opt/local/include/openssl -I../deps/v8 -I../deps/v8/include  -O3 -gdwarf-2 -fstrict-aliasing -arch arm64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu++1y -stdlib=libc++ -fno-rtti -fno-strict-aliasing -MMD -MF /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/.deps//opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj.host/torque/deps/v8/src/torque/torque.o.d.raw   -c
:info:build   /usr/bin/clang++ -Wl,-search_paths_first -arch arm64 -L/opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release -stdlib=libc++  -o "/opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/bytecode_builtins_list_generator" /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj.host/bytecode_builtins_list_generator/deps/v8/src/builtins/generate-bytecodes-builtins-list.o /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj.host/bytecode_builtins_list_generator/deps/v8/src/interpreter/bytecode-operands.o /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj.host/bytecode_builtins_list_generator/deps/v8/src/interpreter/bytecodes.o /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj.host/tools/v8_gypfiles/libv8_libbase.a -L/opt/local/lib -lcrypto -lssl -licui18n -licuuc -licudata
:info:build   LD_LIBRARY_PATH=/opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/lib.host:/opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/lib.target:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; cd ../tools/v8_gypfiles; mkdir -p /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj/gen/generate-bytecode-output-root/builtins-generated; /opt/local/bin/python3.8 ../../deps/v8/tools/run.py "/opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/bytecode_builtins_list_generator" "/opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj/gen/generate-bytecode-output-root/builtins-generated/bytecodes-builtins-list.h"
:info:build   /usr/bin/clang++ -Wl,-search_paths_first -arch arm64 -L/opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release -stdlib=libc++  -o "/opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/gen-regexp-special-case" /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj.host/gen-regexp-special-case/deps/v8/src/regexp/gen-regexp-special-case.o /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj.host/tools/v8_gypfiles/libv8_libbase.a -L/opt/local/lib -lcrypto -lssl -licui18n -licuuc -licudata
:info:build   LD_LIBRARY_PATH=/opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/lib.host:/opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/lib.target:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; cd ../tools/v8_gypfiles; mkdir -p /opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj/gen/src/regexp; /opt/local/bin/python3.8 ../../deps/v8/tools/run.py "/opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/gen-regexp-special-case" "/opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj/gen/src/regexp/special-case.cc"
:info:build Return code is -9
:info:build make[1]: *** [/opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj/gen/generate-bytecode-output-root/builtins-generated/bytecodes-builtins-list.h] Error 247
:info:build make[1]: *** Waiting for unfinished jobs....
:info:build Return code is -9
:info:build make[1]: *** [/opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj/gen/src/regexp/special-case.cc] Error 247
:info:build rm ebd40711b90a74d996c472003413358fb4245e94.intermediate efe84b39131780cd72eeb24bed25720a1f899971.intermediate 5f1942a7d88f5f16fe20a61db3abe3a8841dc8e7.intermediate
:info:build make[1]: Leaving directory `/opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out'
:info:build make: *** [node] Error 2
:info:build make: Leaving directory `/opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0'
:info:build Command failed:  cd "/opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0" && /usr/bin/make -j8 -w all CC=/usr/bin/clang CXX=/usr/bin/clang++ CXX.host=/usr/bin/clang++ CPP=/usr/bin/cpp CFLAGS="-Os" CXXFLAGS="-Os -stdlib=libc++" LDFLAGS="-L/opt/local/lib -Wl,-headerpad_max_install_names" PYTHON=/opt/local/bin/python3.8 V=1 
:info:build Exit code: 2
:error:build Failed to build nodejs15: command execution failed
:debug:build Error code: CHILDSTATUS 56622 2
:debug:build Backtrace: command execution failed
:debug:build     while executing
:debug:build "system {*}$notty {*}$callback {*}$nice $fullcmdstring"
:debug:build     invoked from within
:debug:build "command_exec -callback portprogress::target_progress_callback build"
:debug:build     (procedure "portbuild::build_main" line 8)
:debug:build     invoked from within
:debug:build "$procedure $targetname"
:error:build See /opt/local/var/macports/logs/_opt_mports_macports-ports_devel_nodejs15/nodejs15/main.log for details.

I'll attach the complete log file.

Note that 'port -v installed' reveals that there are only arm64 and noarch ports installed, so no univeral ports. Also, in case it matters (should it ?): I use alacritty as the terminal.

Any pointers appreciated!

comment:6 Changed 3 years ago by Matthew Leach <matthew@…>

In 419f9bef55fa8afc6f892393790fd7b844a336e7/macports-ports (master):

nodejs15: add arm64 support

Add support for building nodejs15 on arm64 platforms.

Trac: #61592

comment:7 in reply to:  6 ; Changed 3 years ago by ryandesign (Ryan Carsten Schmidt)

Replying to Matthew Leach <matthew@…>:

Add support for building nodejs15 on arm64 platforms.

What about the other nodejs ports that we have in MacPorts? Can they be modified same way, or does that not work, or did you not try?

comment:8 in reply to:  5 Changed 3 years ago by ryandesign (Ryan Carsten Schmidt)

Replying to raw-bin:

Hi. I'm hitting a build failure for nodejs15 on my Macbook Pro 13 with M1 silicon, Big Sur.

It built fine on our arm64 buildbot worker:

https://build.macports.org/builders/ports-11_arm64-builder/builds/5223/steps/install-port/logs/stdio

so the problem appears to be unique to your system.

:info:build Return code is -9
:info:build make[1]: *** [/opt/local/var/macports/build/_opt_mports_macports-ports_devel_nodejs15/nodejs15/work/node-v15.4.0/out/Release/obj/gen/generate-bytecode-output-root/builtins-generated/bytecodes-builtins-list.h] Error 247

The log says you have Xcode 12.2 but we don't report what version of the command line tools you have. Is it possible you have an earlier version of the CLT? If so, install the Xcode 12.2 version of the CLT.

comment:9 in reply to:  7 Changed 3 years ago by hexagonal-sun (Matthew Leach)

Replying to ryandesign:

Replying to Matthew Leach <matthew@…>:

Add support for building nodejs15 on arm64 platforms.

What about the other nodejs ports that we have in MacPorts? Can they be modified same way, or does that not work, or did you not try?

I just tried nodejs14 with a similar fix but it didn't build. See attached log.

Unless patches are back ported to nodejs14, we may have nodejs15 support only.

Changed 3 years ago by hexagonal-sun (Matthew Leach)

Attachment: main.3.log added

nodejs14 arm64 build

comment:10 Changed 3 years ago by hexagonal-sun (Matthew Leach)

Currently there is no npm port that has nodejs15 as a dependency. I've created https://github.com/macports/macports-ports/pull/9413 that allows npm6 to be used along with nodejs15. On my machine this seems to work fine.

As stated in the PR, there may be a good reason that npm6 uses nodejs14 as a dependency. If we wish to keep that the case, perhaps we could find an alternative that allows a fully working node system on arm64.

comment:11 Changed 3 years ago by urkle (Edward Rudd)

I created https://github.com/macports/macports-ports/pull/9633 which adds arm64 support to the nodejs12 port.

comment:12 in reply to:  11 ; Changed 20 months ago by barracuda156

Replying to urkle:

I created https://github.com/macports/macports-ports/pull/9633 which adds arm64 support to the nodejs12 port.

Does anyone know what is needed to implement PPC support? :)

(Node.js is needed to build Signal messenger.)

comment:13 in reply to:  12 Changed 20 months ago by ryandesign (Ryan Carsten Schmidt)

Replying to barracuda156:

Does anyone know what is needed to implement PPC support? :)

Off-topic for this ticket. I see you've already found an upstream issue about this: https://github.com/nodejs/node/issues/30323 If you can get nodejs working on PowerPC Mac OS X, please submit a pull request or file a separate ticket.

Back on-topic: nodejs12 and nodejs14 and later currently support arm64:

nodejs8/Portfile:supported_archs         i386 x86_64
nodejs10/Portfile:supported_archs         i386 x86_64
nodejs12/Portfile:supported_archs         i386 x86_64 arm64
nodejs13/Portfile:supported_archs         i386 x86_64
nodejs14/Portfile:supported_archs         i386 x86_64 arm64
nodejs15/Portfile:supported_archs         i386 x86_64 arm64
nodejs16/Portfile:supported_archs         i386 x86_64 arm64
nodejs17/Portfile:supported_archs         i386 x86_64 arm64
nodejs18/Portfile:supported_archs         i386 x86_64 arm64

Why not nodejs13, nodejs10, or nodejs8? If they can be fixed, let's fix it; if not, let's close this ticket.

Note: See TracTickets for help on using tickets.