freeswitch-stable: disable mod_v8 heap snapshot by default
mod_v8 sporadically failed to build due to a segmentation fault when generating the heap snapshot. This patch adds a switch to FreeSWITCH to disable the snapshot and a symbol to toggle it. Default is to not use a heap snapshot. Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
This commit is contained in:
parent
98232d46cb
commit
becb9d05e2
3 changed files with 43 additions and 5 deletions
|
@ -66,6 +66,17 @@ config FS_STABLE_WITH_V8
|
||||||
|
|
||||||
If you want mod_v8 to become available, select 'y'.
|
If you want mod_v8 to become available, select 'y'.
|
||||||
|
|
||||||
|
config FS_STABLE_WITH_V8_SNAPSHOT
|
||||||
|
bool "Include heap snapshot"
|
||||||
|
depends on FS_STABLE_WITH_V8
|
||||||
|
default n
|
||||||
|
help
|
||||||
|
V8 can be built with a heap snapshot for faster initialization. Default
|
||||||
|
is 'n' because of seemingly random segmentation faults observed when
|
||||||
|
generating the snapshot.
|
||||||
|
|
||||||
|
Only select 'y' if you know what you are doing.
|
||||||
|
|
||||||
config FS_STABLE_WITH_VPX
|
config FS_STABLE_WITH_VPX
|
||||||
bool "Compile with VPx support"
|
bool "Compile with VPx support"
|
||||||
depends on FS_STABLE_WITH_LIBYUV
|
depends on FS_STABLE_WITH_LIBYUV
|
||||||
|
|
|
@ -253,6 +253,8 @@ PKG_CONFIG_DEPENDS:= \
|
||||||
CONFIG_FS_STABLE_WITH_PGSQL \
|
CONFIG_FS_STABLE_WITH_PGSQL \
|
||||||
CONFIG_FS_STABLE_WITH_PNG \
|
CONFIG_FS_STABLE_WITH_PNG \
|
||||||
CONFIG_FS_STABLE_WITH_SRTP \
|
CONFIG_FS_STABLE_WITH_SRTP \
|
||||||
|
CONFIG_FS_STABLE_WITH_V8 \
|
||||||
|
CONFIG_FS_STABLE_WITH_V8_SNAPSHOT \
|
||||||
CONFIG_FS_STABLE_WITH_VPX \
|
CONFIG_FS_STABLE_WITH_VPX \
|
||||||
CONFIG_FS_STABLE_WITH_ZRTP \
|
CONFIG_FS_STABLE_WITH_ZRTP \
|
||||||
CONFIG_LIBC \
|
CONFIG_LIBC \
|
||||||
|
@ -684,7 +686,8 @@ endif
|
||||||
|
|
||||||
ifneq ($(CONFIG_PACKAGE_$(PKG_NAME)-mod-v8),)
|
ifneq ($(CONFIG_PACKAGE_$(PKG_NAME)-mod-v8),)
|
||||||
CONFIGURE_ARGS+= \
|
CONFIGURE_ARGS+= \
|
||||||
--enable-static-v8
|
--enable-static-v8 \
|
||||||
|
$(if $(CONFIG_FS_STABLE_WITH_V8_SNAPSHOT),,--disable-snapshot-v8)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Make mod_spandsp use fixed point math when soft float support is
|
# Make mod_spandsp use fixed point math when soft float support is
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
--- a/src/mod/languages/mod_v8/Makefile.am
|
--- a/src/mod/languages/mod_v8/Makefile.am
|
||||||
+++ b/src/mod/languages/mod_v8/Makefile.am
|
+++ b/src/mod/languages/mod_v8/Makefile.am
|
||||||
@@ -15,7 +15,7 @@ V8_LIBEXT=dylib
|
@@ -15,12 +15,17 @@ V8_LIBEXT=dylib
|
||||||
V8_BUILDPARAMS=snapshot=off i18nsupport=off
|
V8_BUILDPARAMS=snapshot=off i18nsupport=off
|
||||||
V8_SNAPSHOT=nosnapshot
|
V8_SNAPSHOT=nosnapshot
|
||||||
else
|
else
|
||||||
|
@ -9,7 +9,17 @@
|
||||||
V8_LIBEXT=so
|
V8_LIBEXT=so
|
||||||
# Some gcc versions report warnings incorrectly
|
# Some gcc versions report warnings incorrectly
|
||||||
V8_BUILDPARAMS=strictaliasing=off werror=no i18nsupport=off
|
V8_BUILDPARAMS=strictaliasing=off werror=no i18nsupport=off
|
||||||
@@ -29,8 +29,8 @@ V8_STATIC_DIR=$(V8_BUILDDIR)/out/native
|
+if DISABLE_SNAPSHOT_V8
|
||||||
|
+V8_BUILDPARAMS+=snapshot=off
|
||||||
|
+V8_SNAPSHOT=nosnapshot
|
||||||
|
+else
|
||||||
|
V8_SNAPSHOT=snapshot
|
||||||
|
endif
|
||||||
|
+endif
|
||||||
|
|
||||||
|
if ENABLE_STATIC_V8
|
||||||
|
# Build the static lib version of V8
|
||||||
|
@@ -29,8 +34,8 @@ V8_STATIC_DIR=$(V8_BUILDDIR)/out/native
|
||||||
V8_ICU_STATIC_DIR=$(V8_BUILDDIR)/out/native
|
V8_ICU_STATIC_DIR=$(V8_BUILDDIR)/out/native
|
||||||
V8_CXXFLAGS =
|
V8_CXXFLAGS =
|
||||||
else
|
else
|
||||||
|
@ -20,7 +30,7 @@
|
||||||
V8_CXXFLAGS = -fPIC
|
V8_CXXFLAGS = -fPIC
|
||||||
endif
|
endif
|
||||||
V8LIB=$(V8_STATIC_DIR)/libv8_base*.a
|
V8LIB=$(V8_STATIC_DIR)/libv8_base*.a
|
||||||
@@ -46,11 +46,6 @@ else
|
@@ -46,11 +51,6 @@ else
|
||||||
V8_EXTRA_BUILD_PARAMS=--no-parallel
|
V8_EXTRA_BUILD_PARAMS=--no-parallel
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@ -32,7 +42,7 @@
|
||||||
MODNAME=mod_v8
|
MODNAME=mod_v8
|
||||||
|
|
||||||
AM_CFLAGS += -I. -I./include -I$(switch_srcdir)/src/mod/languages/mod_v8/include -I$(V8_DIR)/include
|
AM_CFLAGS += -I. -I./include -I$(switch_srcdir)/src/mod/languages/mod_v8/include -I$(V8_DIR)/include
|
||||||
@@ -121,21 +116,13 @@ $(V8_DIR)/.stamp-patch: $(V8_DIR)
|
@@ -121,21 +121,13 @@ $(V8_DIR)/.stamp-patch: $(V8_DIR)
|
||||||
|
|
||||||
$(V8LIB): $(V8_DIR) $(V8_DIR)/.stamp-patch
|
$(V8LIB): $(V8_DIR) $(V8_DIR)/.stamp-patch
|
||||||
mkdir -p $(V8_BUILDDIR)
|
mkdir -p $(V8_BUILDDIR)
|
||||||
|
@ -61,3 +71,17 @@
|
||||||
|
|
||||||
if ENABLE_STATIC_V8
|
if ENABLE_STATIC_V8
|
||||||
install-exec-local: $(V8LIB)
|
install-exec-local: $(V8LIB)
|
||||||
|
--- a/configure.ac
|
||||||
|
+++ b/configure.ac
|
||||||
|
@@ -1519,6 +1519,11 @@ AC_ARG_ENABLE(parallel-build-v8,
|
||||||
|
[AS_HELP_STRING([--disable-parallel-build-v8], [Disable parallel build of V8])], [enable_parallel_build_v8="$enableval"], [enable_parallel_build_v8="yes"])
|
||||||
|
AM_CONDITIONAL([ENABLE_PARALLEL_BUILD_V8],[test "x$enable_parallel_build_v8" != "xno"])
|
||||||
|
|
||||||
|
+# Option to force heap snapshot generation of Google's V8 to off
|
||||||
|
+AC_ARG_ENABLE(snapshot-v8,
|
||||||
|
+[AS_HELP_STRING([--disable-snapshot-v8], [Disable heap snapshot generation of V8])], [enable_snapshot_v8="$enableval"], [enable_snapshot_v8="yes"])
|
||||||
|
+AM_CONDITIONAL([DISABLE_SNAPSHOT_V8],[test "x$enable_snapshot_v8" != "xyes"])
|
||||||
|
+
|
||||||
|
AM_CONDITIONAL([HAVE_ODBC],[test "x$enable_core_odbc_support" != "xno"])
|
||||||
|
AM_CONDITIONAL([HAVE_MYSQL],[test "$found_mysql" = "yes"])
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue