Opened 2 months ago

Last modified 2 weeks 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) 2 months ago.
main.2.log (1.5 MB) - added by raw-bin (Robin Randhawa) 6 weeks ago.
main.3.log (1.3 MB) - added by hexagonal-sun (Matthew Leach) 6 weeks ago.
nodejs14 arm64 build

Change History (14)

Changed 2 months ago by shibukawa (Yoshiki Shibukawa)

Attachment: main.log added

comment:1 Changed 2 months ago by shibukawa (Yoshiki Shibukawa)

Version: 2.6.4

comment:2 in reply to:  description Changed 2 months 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 2 months ago by ryandesign (Ryan 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 6 weeks 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 6 weeks ago by raw-bin (Robin Randhawa)

Attachment: main.2.log added

comment:5 Changed 6 weeks 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 6 weeks 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 6 weeks ago by ryandesign (Ryan 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 6 weeks ago by ryandesign (Ryan 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 6 weeks 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 6 weeks ago by hexagonal-sun (Matthew Leach)

Attachment: main.3.log added

nodejs14 arm64 build

comment:10 Changed 6 weeks 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 2 weeks ago by urkle (Edward Rudd)

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

Note: See TracTickets for help on using tickets.