diff options
Diffstat (limited to 'net-libs/nodejs')
-rw-r--r-- | net-libs/nodejs/Manifest | 3 | ||||
-rw-r--r-- | net-libs/nodejs/files/nodejs-20.11.0-riscv.patch | 155 | ||||
-rw-r--r-- | net-libs/nodejs/nodejs-20.11.0.ebuild | 3 |
3 files changed, 160 insertions, 1 deletions
diff --git a/net-libs/nodejs/Manifest b/net-libs/nodejs/Manifest index 224d57c7da14..dc007b09bd73 100644 --- a/net-libs/nodejs/Manifest +++ b/net-libs/nodejs/Manifest @@ -1,4 +1,5 @@ AUX nodejs-18.16.0-paxmarking.patch 3470 BLAKE2B 4de01a4b3267d24c7c899a9caf8dae3975a8ed4a82cfe4df2ffc6858a3e1153bd6801ec5f5dc17ab5984ffa2d3b5ec9651c80e6993bd20c14865b0d873f58547 SHA512 5f49c1ca953421b3aa07e0b93375e99c9e5f543b48df3cff833f5e55f7e1b511971c56ed250e36c8a7465229db135a8d2bd1319f2d09368788f6152f06ced4f9 +AUX nodejs-20.11.0-riscv.patch 7660 BLAKE2B 8af657b4c87f892a7e8ab4e0b0f6c8927841585cf71971cb3a0e9b508c182222ace7178fd76f12000432df8a1b51c1a553616a3797a16b35f9499edce1e84638 SHA512 29b42307e017de0ef54c2e80e5e56d771a04f282ca858bcd3300c68ef4d72bb2fb5f2841a85a9845ee17f1909a33a64c798da9ed624feb34fcb11661dbe9fe69 AUX nodejs-20.3.0-gcc14.patch 1119 BLAKE2B 6be4d981ce94f618aa4a07766e8fa1c99e3825cee7374cae5c76264c961083604ce408a7847de54ae6c72d36c6b0cbe34921e69a800ebebc5553cdaead2cbaa5 SHA512 8137b7ac6b5920c7f16b6409923092f3eb3c4f81887035e1840ae61deb61090d88d6184c36db4bcf7249fa6d7a21687788616b2aee51cb6bdc08cb78ed656e5d AUX nodejs-20.6.0-paxmarking.patch 3143 BLAKE2B 34b93f63481177f1b70d26bdbdb27674533016dd5cefe4161cfa49c3defc6316cbbf22df024d28e9d42687be78fb0a6ce6e95334cad386d6371ff1f7fd9063ee SHA512 6604a1c8041e28bea0ea8c4dd168d44fb4ae7d25b15db4e20c220bcf3697d08de5205dde502dda4d061ace36e3f8f3511f646b00acc0382c2c8dff64cf1bf8b8 AUX nodejs-20.8.1-gcc14.patch 797 BLAKE2B a9b6bc3eddf5473d5263f4f87e76f43ed236a995b3a9c486871be2bbf9b487973faa8764ec3283af279e23b06619dae9fd7d1284be6724cf7c2015ca111ad49f SHA512 6f1b6219c65c343907d691603ed762986c0302d30c9fb9f285bc03016c0c65885a9a4ffcc253f683fb566b33b3d5160b9400af16852550069fb6d59961688089 @@ -15,7 +16,7 @@ EBUILD nodejs-18.17.1.ebuild 7482 BLAKE2B 9ac4dc8d50e1f26df146f4159e34a1cc636eef EBUILD nodejs-18.18.0.ebuild 7487 BLAKE2B dbdecd3edc11f7910623c7eab586391d353ab2dc766ce676b0f5f334f1feea7161c2aca56835f446c118e401e65a739e126b451da9cdb4cf1115cb0226fc855d SHA512 b645b298659f381a2a1d9a72c340016a645f6bac5024e9433eef77471f1194cedcf33d2ce9ce15caa4eb2dcae852ec6f764dfcb5a9f08b4b9eef36d2e7cf2880 EBUILD nodejs-18.18.2.ebuild 7467 BLAKE2B 0b8161b3f648e319d60f498d48401ca92d3d6d31fbe2154e21bf01eb5b8cdd606df97fc8e57e5e9c3902c451522e9818f4b4f392b11b9590374c32eb607f23f2 SHA512 2cada98a3d3c507ed2a63f7d7d597e8a13c13c8767986c79472001179f2df149e3fccd25aa0e5f1104bc288c0bdb82366520ff42e0f6620d31c44b71d34cc207 EBUILD nodejs-18.19.0.ebuild 7555 BLAKE2B 5ed5167442f3ba68281f5e2634604f4108bab34931e2967ca37da66dac9917b125f4069bd85ce7426a50d7d6d9ae57f43409c412eeee52890e753d0a44591a70 SHA512 cb2aa8ad51c7fb4d01d747681df3a39435127aa227504c4d6570e9bb1b35438743b87afa3ef96dc0a1d13f06884149fd0ff151f746ebd19bd185764c0007d49a -EBUILD nodejs-20.11.0.ebuild 7472 BLAKE2B 415829825af9ff4e162b167feea0e7e0f45a6ce43106b6d088052126a7558c61f9b276c61223cbb4b333fb26f65a77ac49fec10eedd397a0189f6f164c7d9385 SHA512 06004af9b1758509999b1cc4f2bf9a0f51121fbc6618ed4027af77de5091f346df4a00368931cc4a9cb97a768fc6565454060bec758caaa2446beb36bd602013 +EBUILD nodejs-20.11.0.ebuild 7545 BLAKE2B c8279df6be74f1d4b57870b2385932ad9a4d738845f84276bb152d8ecfcc96df2a330b645a2ca40c6803ddb97b65512739c4468e17b57956b8695b9c7e6bd9fb SHA512 a680797d1d59eef6ab1a285877bb5e52739ffdc43f5e43f1c78b124343aaf60cb2c5d5ff78f91f50e10db04e068f4e73937947e8f44b7db70f7444a984699b5b EBUILD nodejs-20.6.1.ebuild 7495 BLAKE2B 83f47c14b57b63d72cd940388adbda2c3c4e70e63b2123d2bc4651585cbe2ed8f07851805a78edaae0bb6959e2bf15eb378f9a95aecdbc4956a3377e07255130 SHA512 6d83a4e45aa952dcae536493fd7f13d4ea2c5f101355f574490a112663437bf6a95152dc6297b1359ba7f3a2a4583ccbcefe29d4abff41cccb9cb3069f07008b EBUILD nodejs-20.7.0.ebuild 7500 BLAKE2B 28e8e849c4b42b850d49896ce0f08d2350bf03bb76ce184b7148c4f62b3055fd370ba052ea94eddbbc9ee1142b0887fa7a1be3be4e36a5a1d60278cf7e595647 SHA512 0b560ef73b84a35c90da24469a0a80b83a7a52cef5c86ecd806529094fafbfa186685c55aa499f73689c0281d568df1c5f43252c86e68824b7836edbc1a86e58 EBUILD nodejs-20.8.1-r1.ebuild 7522 BLAKE2B e17abf191f070bdbbeca6e71055b700808d7c3588af641c695a39d31fd352d029d1ebf28c3093364043f743a24b4bdaeb4cd01605d77ecd171e2230724fe7b37 SHA512 5a4092631bd64ed85b9bfce7e3f8180112d458771b41532e7e6f58df0b80677008a7acc2da1c22e92547b96dde740a56c54d617eae72fa23a3e46bf9882c4016 diff --git a/net-libs/nodejs/files/nodejs-20.11.0-riscv.patch b/net-libs/nodejs/files/nodejs-20.11.0-riscv.patch new file mode 100644 index 000000000000..3bf7a80ea078 --- /dev/null +++ b/net-libs/nodejs/files/nodejs-20.11.0-riscv.patch @@ -0,0 +1,155 @@ +From dda5cdb15cfe5c7437f471054f5bd79a82b6eda2 Mon Sep 17 00:00:00 2001 +From: kxxt <rsworktech@outlook.com> +Date: Wed, 17 Jan 2024 09:16:34 +0800 +Subject: [PATCH] Revert "deps: V8: cherry-pick 13192d6e10fa" + +This reverts commit bc2ebb972b34f54e042de9636e7451d2526436a9, which +shouldn't be applied to v20.x. + +Fix https://github.com/nodejs/unofficial-builds/issues/106 +--- + common.gypi | 2 +- + deps/v8/src/builtins/riscv/builtins-riscv.cc | 2 +- + deps/v8/src/codegen/riscv/assembler-riscv-inl.h | 16 ++++++++-------- + deps/v8/src/codegen/riscv/assembler-riscv.h | 2 +- + deps/v8/src/execution/riscv/simulator-riscv.cc | 8 ++++---- + .../regexp/riscv/regexp-macro-assembler-riscv.cc | 2 +- + 6 files changed, 16 insertions(+), 16 deletions(-) + +diff --git a/common.gypi b/common.gypi +index db09a8a33df06..fa0729ffe45e8 100644 +--- a/common.gypi ++++ b/common.gypi +@@ -36,7 +36,7 @@ + + # Reset this number to 0 on major V8 upgrades. + # Increment by one for each non-official patch applied to deps/v8. +- 'v8_embedder_string': '-node.17', ++ 'v8_embedder_string': '-node.18', + + ##### V8 defaults for Node.js ##### + +diff --git a/deps/v8/src/builtins/riscv/builtins-riscv.cc b/deps/v8/src/builtins/riscv/builtins-riscv.cc +index d6091434b9b0a..3404562785991 100644 +--- a/deps/v8/src/builtins/riscv/builtins-riscv.cc ++++ b/deps/v8/src/builtins/riscv/builtins-riscv.cc +@@ -1512,7 +1512,7 @@ static void Generate_InterpreterEnterBytecode(MacroAssembler* masm) { + // Set the return address to the correct point in the interpreter entry + // trampoline. + Label builtin_trampoline, trampoline_loaded; +- Tagged<Smi> interpreter_entry_return_pc_offset( ++ Smi interpreter_entry_return_pc_offset( + masm->isolate()->heap()->interpreter_entry_return_pc_offset()); + DCHECK_NE(interpreter_entry_return_pc_offset, Smi::zero()); + +diff --git a/deps/v8/src/codegen/riscv/assembler-riscv-inl.h b/deps/v8/src/codegen/riscv/assembler-riscv-inl.h +index ca6d641e2c94e..55f191e6afe76 100644 +--- a/deps/v8/src/codegen/riscv/assembler-riscv-inl.h ++++ b/deps/v8/src/codegen/riscv/assembler-riscv-inl.h +@@ -128,9 +128,9 @@ Handle<HeapObject> Assembler::compressed_embedded_object_handle_at( + } + + void Assembler::deserialization_set_special_target_at( +- Address instruction_payload, Tagged<Code> code, Address target) { ++ Address instruction_payload, Code code, Address target) { + set_target_address_at(instruction_payload, +- !code.is_null() ? code->constant_pool() : kNullAddress, ++ !code.is_null() ? code.constant_pool() : kNullAddress, + target); + } + +@@ -159,13 +159,12 @@ void Assembler::deserialization_set_target_internal_reference_at( + } + } + +-Tagged<HeapObject> RelocInfo::target_object(PtrComprCageBase cage_base) { ++HeapObject RelocInfo::target_object(PtrComprCageBase cage_base) { + DCHECK(IsCodeTarget(rmode_) || IsEmbeddedObjectMode(rmode_)); + if (IsCompressedEmbeddedObject(rmode_)) { +- return HeapObject::cast( +- Tagged<Object>(V8HeapCompressionScheme::DecompressTagged( +- cage_base, +- Assembler::target_compressed_address_at(pc_, constant_pool_)))); ++ return HeapObject::cast(Object(V8HeapCompressionScheme::DecompressTagged( ++ cage_base, ++ Assembler::target_compressed_address_at(pc_, constant_pool_)))); + } else { + return HeapObject::cast( + Object(Assembler::target_address_at(pc_, constant_pool_))); +@@ -187,7 +186,8 @@ Handle<HeapObject> RelocInfo::target_object_handle(Assembler* origin) { + } + } + +-void RelocInfo::set_target_object(Tagged<HeapObject> target, ++void RelocInfo::set_target_object(Heap* heap, HeapObject target, ++ WriteBarrierMode write_barrier_mode, + ICacheFlushMode icache_flush_mode) { + DCHECK(IsCodeTarget(rmode_) || IsEmbeddedObjectMode(rmode_)); + if (IsCompressedEmbeddedObject(rmode_)) { +diff --git a/deps/v8/src/codegen/riscv/assembler-riscv.h b/deps/v8/src/codegen/riscv/assembler-riscv.h +index bcd5a62d324ee..ed222b52d6927 100644 +--- a/deps/v8/src/codegen/riscv/assembler-riscv.h ++++ b/deps/v8/src/codegen/riscv/assembler-riscv.h +@@ -286,7 +286,7 @@ class V8_EXPORT_PRIVATE Assembler : public AssemblerBase, + // This is for calls and branches within generated code. The serializer + // has already deserialized the lui/ori instructions etc. + inline static void deserialization_set_special_target_at(Address location, +- Tagged<Code> code, ++ Code code, + Address target); + + // Get the size of the special target encoded at 'instruction_payload'. +diff --git a/deps/v8/src/execution/riscv/simulator-riscv.cc b/deps/v8/src/execution/riscv/simulator-riscv.cc +index 052a2d67dd7e4..9582db489638a 100644 +--- a/deps/v8/src/execution/riscv/simulator-riscv.cc ++++ b/deps/v8/src/execution/riscv/simulator-riscv.cc +@@ -1781,7 +1781,7 @@ void RiscvDebugger::Debug() { + sreg_t value; + StdoutStream os; + if (GetValue(arg1, &value)) { +- Tagged<Object> obj(value); ++ Object obj(value); + os << arg1 << ": \n"; + #ifdef DEBUG + obj.Print(os); +@@ -1830,7 +1830,7 @@ void RiscvDebugger::Debug() { + PrintF(" 0x%012" PRIxPTR " : 0x%016" REGIx_FORMAT + " %14" REGId_FORMAT " ", + reinterpret_cast<intptr_t>(cur), *cur, *cur); +- Tagged<Object> obj(*cur); ++ Object obj(*cur); + Heap* current_heap = sim_->isolate_->heap(); + if (obj.IsSmi() || + IsValidHeapObject(current_heap, HeapObject::cast(obj))) { +@@ -4692,7 +4692,7 @@ bool Simulator::DecodeRvvVS() { + Builtin Simulator::LookUp(Address pc) { + for (Builtin builtin = Builtins::kFirst; builtin <= Builtins::kLast; + ++builtin) { +- if (builtins_.code(builtin)->contains(isolate_, pc)) return builtin; ++ if (builtins_.code(builtin).contains(isolate_, pc)) return builtin; + } + return Builtin::kNoBuiltinId; + } +@@ -4709,7 +4709,7 @@ void Simulator::DecodeRVIType() { + if (builtin != Builtin::kNoBuiltinId) { + auto code = builtins_.code(builtin); + if ((rs1_reg() != ra || imm12() != 0)) { +- if ((Address)get_pc() == code->instruction_start()) { ++ if ((Address)get_pc() == code.InstructionStart()) { + sreg_t arg0 = get_register(a0); + sreg_t arg1 = get_register(a1); + sreg_t arg2 = get_register(a2); +diff --git a/deps/v8/src/regexp/riscv/regexp-macro-assembler-riscv.cc b/deps/v8/src/regexp/riscv/regexp-macro-assembler-riscv.cc +index 72f89767eb348..4063b4b3d2194 100644 +--- a/deps/v8/src/regexp/riscv/regexp-macro-assembler-riscv.cc ++++ b/deps/v8/src/regexp/riscv/regexp-macro-assembler-riscv.cc +@@ -1211,7 +1211,7 @@ static T* frame_entry_address(Address re_frame, int frame_offset) { + int64_t RegExpMacroAssemblerRISCV::CheckStackGuardState(Address* return_address, + Address raw_code, + Address re_frame) { +- Tagged<InstructionStream> re_code = InstructionStream::cast(Object(raw_code)); ++ InstructionStream re_code = InstructionStream::cast(Object(raw_code)); + return NativeRegExpMacroAssembler::CheckStackGuardState( + frame_entry<Isolate*>(re_frame, kIsolateOffset), + static_cast<int>(frame_entry<int64_t>(re_frame, kStartIndexOffset)), + diff --git a/net-libs/nodejs/nodejs-20.11.0.ebuild b/net-libs/nodejs/nodejs-20.11.0.ebuild index 0ba7e68dae37..a1f833f49275 100644 --- a/net-libs/nodejs/nodejs-20.11.0.ebuild +++ b/net-libs/nodejs/nodejs-20.11.0.ebuild @@ -105,6 +105,9 @@ src_prepare() { # We need to disable mprotect on two files when it builds Bug 694100. use pax-kernel && PATCHES+=( "${FILESDIR}"/${PN}-20.6.0-paxmarking.patch ) + # bug 922725 + use riscv && PATCHES+=( "${FILESDIR}"/${P}-riscv.patch ) + default } |