mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-06-02 13:59:59 +00:00
nodejs: Fix build on mips
2G is too much for qemu-mips and perhaps also for real mips devices as we use qemu-usermode during build to run host pieces like mksnapshot they fail, reducing the allocation range helps Fixes | LD_LIBRARY_PATH=/mnt/b/yoe/master/build/tmp/work/mips32r2-yoe-linux/nodejs/14.16.1-r0/node-v14.16.1/out/Release/lib.host:/mnt/b/yoe/master/build/tmp/work/mips32r2-yoe-linux/nodejs/14.16.1-r0/node-v14.16.1 /out/Release/lib.target:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; cd ../tools/v8_gypfiles; mkdir -p /mnt/b/yoe/master/build/tmp/work/mips32r2-yoe-linux/nodejs/14.16.1-r0/node-v14.16.1/out/Release/obj.target/v 8_snapshot/geni; "/mnt/b/yoe/master/build/tmp/work/mips32r2-yoe-linux/nodejs/14.16.1-r0/node-v14.16.1/out/Release/v8-qemu-wrapper.sh" "/mnt/b/yoe/master/build/tmp/work/mips32r2-yoe-linux/nodejs/14.16.1-r0/nod e-v14.16.1/out/Release/mksnapshot" --turbo_instruction_scheduling "--target_os=linux" "--target_arch=mips" --startup_src "/mnt/b/yoe/master/build/tmp/work/mips32r2-yoe-linux/nodejs/14.16.1-r0/node-v14.16.1/ou t/Release/obj.target/v8_snapshot/geni/snapshot.cc" --embedded_variant Default --embedded_src "/mnt/b/yoe/master/build/tmp/work/mips32r2-yoe-linux/nodejs/14.16.1-r0/node-v14.16.1/out/Release/obj.target/v8_snap shot/geni/embedded.S" --no-native-code-counters | | # | # Fatal process OOM in CodeRange setup: allocate virtual memory | # | | /mnt/b/yoe/master/build/tmp/work/mips32r2-yoe-linux/nodejs/14.16.1-r0/node-v14.16.1/out/Release/v8-qemu-wrapper.sh: line 7: 2292880 Trace/breakpoint trap (core dumped) PSEUDO_UNLOAD=1 qemu-mips -r 3.2.0 - Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
Description: mksnapshot uses too much memory on 32-bit mipsel
|
||||
Author: Jérémy Lal <kapouer@melix.org>
|
||||
Last-Update: 2020-06-03
|
||||
Forwarded: https://bugs.chromium.org/p/v8/issues/detail?id=10586
|
||||
|
||||
This ensures that we reserve 500M instead of 2G range for codegen
|
||||
ensures that qemu-mips can allocate such large ranges
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
|
||||
--- a/deps/v8/src/common/globals.h
|
||||
+++ b/deps/v8/src/common/globals.h
|
||||
@@ -224,7 +224,7 @@ constexpr size_t kMinimumCodeRangeSize =
|
||||
constexpr size_t kMinExpectedOSPageSize = 64 * KB; // OS page on PPC Linux
|
||||
#elif V8_TARGET_ARCH_MIPS
|
||||
constexpr bool kPlatformRequiresCodeRange = false;
|
||||
-constexpr size_t kMaximalCodeRangeSize = 2048LL * MB;
|
||||
+constexpr size_t kMaximalCodeRangeSize = 512 * MB;
|
||||
constexpr size_t kMinimumCodeRangeSize = 0 * MB;
|
||||
constexpr size_t kMinExpectedOSPageSize = 4 * KB; // OS page.
|
||||
#else
|
||||
--- a/deps/v8/src/codegen/mips/constants-mips.h
|
||||
+++ b/deps/v8/src/codegen/mips/constants-mips.h
|
||||
@@ -140,7 +140,7 @@ const uint32_t kLeastSignificantByteInIn
|
||||
namespace v8 {
|
||||
namespace internal {
|
||||
|
||||
-constexpr size_t kMaxPCRelativeCodeRangeInMB = 4096;
|
||||
+constexpr size_t kMaxPCRelativeCodeRangeInMB = 1024;
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Registers and FPURegisters.
|
||||
@@ -22,6 +22,7 @@ SRC_URI = "http://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz \
|
||||
file://big-endian.patch \
|
||||
file://mips-warnings.patch \
|
||||
file://v8-call-new-ListFormatter-createInstance.patch \
|
||||
file://mips-less-memory.patch \
|
||||
"
|
||||
SRC_URI_append_class-target = " \
|
||||
file://0002-Using-native-binaries.patch \
|
||||
|
||||
Reference in New Issue
Block a user