FreeBSDD amd64 13.2-RELEASE-p8 Building www/node in a clean jail failed for me: gmake[2]: *** [tools/v8_gypfiles/v8_snapshot.target.mk:17: 58270f8b0505af4affa2e23fbc35c3da4e229a39.intermediate] Trace/BPT trap (core dumped) Reference: https://github.com/nodejs/node/issues/40467 Workaround: Disable Protection with kern.elf64.allow_wx: Allow pages to be mapped simultaneously writable sysctl kern.elf64.allow_wx=1 Suggested Solution: Please add an Option to pass "--nowrite_code_using_rwx" gto the build.
Does it work for you by adding the following 2 lines to www/node{18,20,21}/Makefile? USES+= elfctl ELF_FEATURES= +wxneeded:out/Release/node
I put this in Makefile # make -C /usr/ports/www/node20 -V ELF_FEATURES +wxneeded:out/Release/node # make -C /usr/ports/www/node20 -V USES compiler:c++11-lib gmake localbase pkgconfig python:build shebangfix tar:xz elfctl ssl # make -C /usr/ports/www/node20 clean all This still fails to build with the same error. touch ebb097dcd336e909c6cfb5eddaae20c88fbe777f.intermediate LD_LIBRARY_PATH=/usr/obj/ports/usr/ports/www/node20/work/node-v20.10.0/out/Release/lib.host:/usr/obj/ports/usr/ports/www/node20/work/node-v20.10.0/out/Release/lib.target:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; cd ../tools/v8_gypfiles; mkdir -p /usr/obj/ports/usr/ports/www/node20/work/node-v20.10.0/out/Release/obj.target/v8_snapshot/geni; "/usr/obj/ports/usr/ports/www/node20/work/node-v20.10.0/out/Release/mksnapshot" --turbo_instruction_scheduling "--target_os=freebsd" "--target_arch=x64" --startup_src "/usr/obj/ports/usr/ports/www/node20/work/node-v20.10.0/out/Release/obj.target/v8_snapshot/geni/snapshot.cc" --embedded_variant Default --embedded_src "/usr/obj/ports/usr/ports/www/node20/work/node-v20.10.0/out/Release/obj.target/v8_snapshot/geni/embedded.S" --no-native-code-counters # # Fatal error in , line 0 # Check failed: 12 == (* __error()). # # # #FailureMessage Object: 0x824a4b150 ==== C stack trace =============================== 0x35b38a3 <v8::base::debug::StackTrace::StackTrace()+0x13> at /usr/obj/ports/usr/ports/www/node20/work/node-v20.10.0/out/Release/mksnapshot 0x35b2d76 <v8::platform::(anonymous namespace)::PrintStackTrace()+0x26> at /usr/obj/ports/usr/ports/www/node20/work/node-v20.10.0/out/Release/mksnapshot 0x35a6739 <V8_Fatal(char const*, ...)+0x139> at /usr/obj/ports/usr/ports/www/node20/work/node-v20.10.0/out/Release/mksnapshot 0x35b0571 <v8::base::OS::SetPermissions(void*, unsigned long, v8::base::OS::MemoryPermission)+0x71> at /usr/obj/ports/usr/ports/www/node20/work/node-v20.10.0/out/Release/mksnapshot 0x3016789 <v8::internal::MemoryAllocator::SetPermissionsOnExecutableMemoryChunk(v8::internal::VirtualMemory*, unsigned long, unsigned long, unsigned long)+0xf9> at /usr/obj/ports/usr/ports/www/node20/work/node-v20.10.0/out/Release/mksnapshot 0x30164f8 <v8::internal::MemoryAllocator::AllocateAlignedMemory(unsigned long, unsigned long, unsigned long, v8::internal::AllocationSpace, v8::internal::Executability, void*, v8::internal::VirtualMemory*)+0xf8> at /usr/obj/ports/usr/ports/www/node20/work/node-v20.10.0/out/Release/mksnapshot 0x30169a4 <v8::internal::MemoryAllocator::AllocateUninitializedChunkAt(v8::internal::BaseSpace*, unsigned long, v8::internal::Executability, unsigned long, v8::internal::PageSize)+0xe4> at /usr/obj/ports/usr/ports/www/node20/work/node-v20.10.0/out/Release/mksnapshot 0x30171dd <v8::internal::MemoryAllocator::AllocatePage(v8::internal::MemoryAllocator::AllocationMode, v8::internal::Space*, v8::internal::Executability)+0xfd> at /usr/obj/ports/usr/ports/www/node20/work/node-v20.10.0/out/Release/mksnapshot 0x302c2a9 <v8::internal::PagedSpaceBase::TryExpandImpl()+0x29> at /usr/obj/ports/usr/ports/www/node20/work/node-v20.10.0/out/Release/mksnapshot 0x302d86c <v8::internal::PagedSpaceBase::TryExpand(int, v8::internal::AllocationOrigin)+0x1c> at /usr/obj/ports/usr/ports/www/node20/work/node-v20.10.0/out/Release/mksnapshot 0x302d625 <v8::internal::PagedSpaceBase::RawRefillLabMain(int, v8::internal::AllocationOrigin)+0x555> at /usr/obj/ports/usr/ports/www/node20/work/node-v20.10.0/out/Release/mksnapshot 0x302d0c1 <v8::internal::PagedSpaceBase::RefillLabMain(int, v8::internal::AllocationOrigin)+0x21> at /usr/obj/ports/usr/ports/www/node20/work/node-v20.10.0/out/Release/mksnapshot 0x2f700fb <v8::internal::HeapAllocator::AllocateRawWithLightRetrySlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment)+0x1eb> at /usr/obj/ports/usr/ports/www/node20/work/node-v20.10.0/out/Release/mksnapshot 0x2f71030 <v8::internal::HeapAllocator::AllocateRawWithRetryOrFailSlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment)+0x30> at /usr/obj/ports/usr/ports/www/node20/work/node-v20.10.0/out/Release/mksnapshot 0x2f5ac50 <v8::internal::Factory::CodeBuilder::AllocateInstructionStream(bool)+0x40> at /usr/obj/ports/usr/ports/www/node20/work/node-v20.10.0/out/Release/mksnapshot 0x2f5a6f7 <v8::internal::Factory::CodeBuilder::BuildInternal(bool)+0x297> at /usr/obj/ports/usr/ports/www/node20/work/node-v20.10.0/out/Release/mksnapshot 0x2f5af1e <v8::internal::Factory::CodeBuilder::Build()+0xe> at /usr/obj/ports/usr/ports/www/node20/work/node-v20.10.0/out/Release/mksnapshot 0x3c211cd <v8::internal::SetupIsolateDelegate::PopulateWithPlaceholders(v8::internal::Isolate*)+0x1cd> at /usr/obj/ports/usr/ports/www/node20/work/node-v20.10.0/out/Release/mksnapshot 0x3c2182a <v8::internal::SetupIsolateDelegate::SetupBuiltinsInternal(v8::internal::Isolate*)+0x1a> at /usr/obj/ports/usr/ports/www/node20/work/node-v20.10.0/out/Release/mksnapshot 0x2f1b9bd <v8::internal::Isolate::Init(v8::internal::SnapshotData*, v8::internal::SnapshotData*, v8::internal::SnapshotData*, bool)+0xe4d> at /usr/obj/ports/usr/ports/www/node20/work/node-v20.10.0/out/Release/mksnapshot 0x2f1ab62 <v8::internal::Isolate::InitWithoutSnapshot()+0x12> at /usr/obj/ports/usr/ports/www/node20/work/node-v20.10.0/out/Release/mksnapshot 0x2dcc24a <v8::SnapshotCreator::SnapshotCreator(v8::Isolate*, long const*, v8::StartupData const*)+0x9a> at /usr/obj/ports/usr/ports/www/node20/work/node-v20.10.0/out/Release/mksnapshot 0x33d8540 <v8::internal::CreateSnapshotDataBlobInternal(v8::SnapshotCreator::FunctionCodeHandling, char const*, v8::Isolate*)+0x40> at /usr/obj/ports/usr/ports/www/node20/work/node-v20.10.0/out/Release/mksnapshot gmake[1]: *** [tools/v8_gypfiles/v8_snapshot.target.mk:17: ebb097dcd336e909c6cfb5eddaae20c88fbe777f.intermediate] Trace/BPT trap (core dumped) gmake[1]: *** Deleting file 'ebb097dcd336e909c6cfb5eddaae20c88fbe777f.intermediate' rm f31d87e1ac03551ea3d70f2b2c26cd1caf173070.intermediate 9d163ed03eaaf0782136e7ad06703554983a18a4.intermediate 03e2b96efc92aaafb71d075c6b4e1a6f901a111a.intermediate gmake: *** [Makefile:134: node] Error 2 ===> Compilation failed unexpectedly.
(In reply to Dirk Meyer from comment #2) I got the same result by setting kern.elf64.allow_wx=0. And I read elfctl.mk again. IIUC, elfctl.mk can do nothing here since it runs after the build phase.