From 7ce9e103e50678a38c78607f2441340cd6d688da Mon Sep 17 00:00:00 2001 From: Paul Joseph Davis Date: Tue, 18 Oct 2011 16:18:01 -0500 Subject: Prevent linking against too new of a SpiderMonkey Versions of SpiderMonkey newer than js185-1.0.0 have removed the JSOPTION_ANONFUNFIX which basically invalidates all CouchDB JavaScript functions ever written. This configure patch prevents the accidental linking to a library that has this new behavior while allowing people to forcefully override the check. --- configure.ac | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/configure.ac b/configure.ac index 5124b8b1..6f9327d0 100644 --- a/configure.ac +++ b/configure.ac @@ -81,6 +81,12 @@ AC_ARG_WITH([js-lib], [AC_HELP_STRING([--with-js-lib=PATH], ]) AC_SUBST(JS_LIB_DIR) +use_js_trunk=no +AC_ARG_ENABLE([js-trunk], [AC_HELP_STRING([--enable-js-trunk], + [allow use of SpiderMonkey versions newer than js185-1.0.0])], [ + use_js_trunk=$enableval +], []) + AC_ARG_VAR([ERLC_FLAGS], [general flags to prepend to ERLC_FLAGS]) AC_ARG_VAR([FLAGS], [general flags to prepend to LDFLAGS and CPPFLAGS]) @@ -177,6 +183,21 @@ AC_CHECK_HEADER([jsapi.h], [], [ Are the Mozilla SpiderMonkey headers installed?]) ])]) +# Prevent people from accidentally using SpiderMonkey's that are too new + +if test "$use_js_trunk" = "no"; then +AC_CHECK_DECL([JSOPTION_ANONFUNFIX], [], [ + AC_MSG_ERROR([Your SpiderMonkey library is too new. + +Versions of SpiderMonkey after the js185-1.0.0 release remove the optional +enforcement of preventing anonymous functions in a statement context. This +will most likely break your existing JavaScript code as well as render all +example code invalid. + +If you wish to ignore this error pass --enable-js-trunk to ./configure.])], + [[#include ]]) +fi + AC_SUBST(JSLIB) AC_LANG_PUSH(C) -- cgit v1.2.3