From 54673dda768dfb19022eca06db62a171758fb74d Mon Sep 17 00:00:00 2001 From: Ben Noordhuis Date: Tue, 17 Sep 2024 20:26:23 +0200 Subject: [PATCH] Disable strict aliasing Harmonize C++ compiler flags with Node.js (-fno-rtti, -fno-exceptions) and, critically, disable strict aliasing, because V8 is not the least bit strict-aliasing safe. Upstream turned it off in https://github.com/nodejs/node/pull/54339, like it always should have been, and I suspect the mismatch may be the cause of segfaults that show up in production. --- ext/mini_racer_extension/extconf.rb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ext/mini_racer_extension/extconf.rb b/ext/mini_racer_extension/extconf.rb index 87be090b..0b7b5ea0 100644 --- a/ext/mini_racer_extension/extconf.rb +++ b/ext/mini_racer_extension/extconf.rb @@ -19,6 +19,9 @@ $CXXFLAGS += " -fPIC" unless $CXXFLAGS.split.include? "-rdynamic" or IS_DARWIN $CXXFLAGS += " -std=c++17" $CXXFLAGS += " -fpermissive" +$CXXFLAGS += " -fno-rtti" +$CXXFLAGS += " -fno-exceptions" +$CXXFLAGS += " -fno-strict-aliasing" #$CXXFLAGS += " -DV8_COMPRESS_POINTERS" $CXXFLAGS += " -fvisibility=hidden "