From 6b26f47e8287b2d1c1d7b74199647dec2e7c2bef Mon Sep 17 00:00:00 2001 From: Robert Newson Date: Mon, 17 Oct 2011 20:23:25 +0100 Subject: Build couchjs with C, not C++. Fixes libm error on CentOS. --- couchjs/c_src/SConscript | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'couchjs/c_src') diff --git a/couchjs/c_src/SConscript b/couchjs/c_src/SConscript index a5f8b66b..4fc9e5a3 100644 --- a/couchjs/c_src/SConscript +++ b/couchjs/c_src/SConscript @@ -22,7 +22,7 @@ def require_lib(name): def runcmd(cmd): return commands.getstatusoutput(cmd) -env = Environment(CC="c++", CCFLAGS='-g -O2 -DXP_UNIX') +env = Environment(CCFLAGS='-g -O2 -DXP_UNIX') if os.uname()[0] == 'SunOS': env['CC'] = '/usr/sfw/bin/gcc' -- cgit v1.2.3 From 5f59de1d4b8a6fbac537ff7419f68aa7015b0121 Mon Sep 17 00:00:00 2001 From: Adam Kocoloski Date: Tue, 18 Oct 2011 20:30:10 -0400 Subject: Revert "Build couchjs with C, not C++. Fixes libm error on CentOS." This reverts commit 6b26f47e8287b2d1c1d7b74199647dec2e7c2bef. Turns out the 'libm' error is a very obscure way of reporting a lack of a C++ compiler. --- couchjs/c_src/SConscript | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'couchjs/c_src') diff --git a/couchjs/c_src/SConscript b/couchjs/c_src/SConscript index 4fc9e5a3..a5f8b66b 100644 --- a/couchjs/c_src/SConscript +++ b/couchjs/c_src/SConscript @@ -22,7 +22,7 @@ def require_lib(name): def runcmd(cmd): return commands.getstatusoutput(cmd) -env = Environment(CCFLAGS='-g -O2 -DXP_UNIX') +env = Environment(CC="c++", CCFLAGS='-g -O2 -DXP_UNIX') if os.uname()[0] == 'SunOS': env['CC'] = '/usr/sfw/bin/gcc' -- cgit v1.2.3 From a5d2cea416567776369881ae5a521bf36f72ef02 Mon Sep 17 00:00:00 2001 From: Robert Newson Date: Thu, 20 Oct 2011 18:03:46 +0100 Subject: Fix object sealing with spidermonkey 1.7.0 --- couchjs/c_src/sm170.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'couchjs/c_src') diff --git a/couchjs/c_src/sm170.c b/couchjs/c_src/sm170.c index 44cb5870..016c91e0 100644 --- a/couchjs/c_src/sm170.c +++ b/couchjs/c_src/sm170.c @@ -217,7 +217,7 @@ seal(JSContext* cx, JSObject* obj, uintN argc, jsval* argv, jsval* rval) return JS_TRUE; } - if(JS_SealObject(cx, obj, deep) != JS_TRUE) + if(JS_SealObject(cx, target, deep) != JS_TRUE) return JS_FALSE; *rval = JSVAL_VOID; -- cgit v1.2.3 From 3462a5692ea0a7d76a024fbe38a8026e44e72876 Mon Sep 17 00:00:00 2001 From: "Paul J. Davis" Date: Wed, 9 Nov 2011 13:41:59 -0600 Subject: Add check for JS script object type --- couchjs/c_src/SConscript | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'couchjs/c_src') diff --git a/couchjs/c_src/SConscript b/couchjs/c_src/SConscript index a5f8b66b..da3752bc 100644 --- a/couchjs/c_src/SConscript +++ b/couchjs/c_src/SConscript @@ -86,6 +86,13 @@ if not env.GetOption('clean'): conf.Define(vsn) break + ## Find the proper type for JS script objects + + if conf.CheckType("JSScript*", '#include "%s"' % jsapi): + conf.Define("JSSCRIPT_TYPE", "JSScript*") + else: + conf.Define("JSSCRIPT_TYPE", "JSObject*") + ## Define properties for -h / -V (_, vsn) = runcmd("git describe --match 1.*") -- cgit v1.2.3 From 83a451f1e8166ec62baa04932281615b92fde946 Mon Sep 17 00:00:00 2001 From: "Paul J. Davis" Date: Thu, 1 Dec 2011 10:00:06 -0600 Subject: Set the stack size for sub contexts I was forgetting to pass the args through to evalcx so that it could use the stack size specified on the command line. --- couchjs/c_src/sm170.c | 5 ++++- couchjs/c_src/sm180.c | 5 ++++- couchjs/c_src/sm185.c | 5 ++++- 3 files changed, 12 insertions(+), 3 deletions(-) (limited to 'couchjs/c_src') diff --git a/couchjs/c_src/sm170.c b/couchjs/c_src/sm170.c index 016c91e0..61f764dd 100644 --- a/couchjs/c_src/sm170.c +++ b/couchjs/c_src/sm170.c @@ -122,12 +122,14 @@ evalcx(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) size_t srclen; JSBool ret = JS_FALSE; + couch_args* args = (couch_args*) JS_GetContextPrivate(cx); + sandbox = NULL; if(!JS_ConvertArguments(cx, argc, argv, "S / o", &str, &sandbox)) { return JS_FALSE; } - subcx = JS_NewContext(JS_GetRuntime(cx), 8L * 1024L); + subcx = JS_NewContext(JS_GetRuntime(cx), args->stack_size); if(!subcx) { JS_ReportOutOfMemory(cx); return JS_FALSE; @@ -306,6 +308,7 @@ main(int argc, const char* argv[]) if(cx == NULL) return 1; + JS_SetContextPrivate(cx, args); JS_SetErrorReporter(cx, couch_error); JS_ToggleOptions(cx, JSOPTION_XML); diff --git a/couchjs/c_src/sm180.c b/couchjs/c_src/sm180.c index 7dc2a974..6c33345f 100644 --- a/couchjs/c_src/sm180.c +++ b/couchjs/c_src/sm180.c @@ -127,12 +127,14 @@ evalcx(JSContext *cx, uintN argc, jsval* vp) jsval rval; JSBool ret = JS_FALSE; + couch_args* args = (couch_args*) JS_GetContextPrivate(cx); + sandbox = NULL; if(!JS_ConvertArguments(cx, argc, argv, "S / o", &str, &sandbox)) { return JS_FALSE; } - subcx = JS_NewContext(JS_GetRuntime(cx), 8L * 1024L); + subcx = JS_NewContext(JS_GetRuntime(cx), args->stack_size); if(!subcx) { JS_ReportOutOfMemory(cx); return JS_FALSE; @@ -315,6 +317,7 @@ main(int argc, const char* argv[]) if(cx == NULL) return 1; + JS_SetContextPrivate(cx, args); JS_SetErrorReporter(cx, couch_error); JS_ToggleOptions(cx, JSOPTION_XML); diff --git a/couchjs/c_src/sm185.c b/couchjs/c_src/sm185.c index a7258460..ecca4c8b 100644 --- a/couchjs/c_src/sm185.c +++ b/couchjs/c_src/sm185.c @@ -147,12 +147,14 @@ evalcx(JSContext *cx, uintN argc, jsval* vp) jsval rval; JSBool ret = JS_FALSE; + couch_args* args = (couch_args*) JS_GetContextPrivate(cx); + sandbox = NULL; if(!JS_ConvertArguments(cx, argc, argv, "S / o", &str, &sandbox)) { return JS_FALSE; } - subcx = JS_NewContext(JS_GetRuntime(cx), 8L * 1024L); + subcx = JS_NewContext(JS_GetRuntime(cx), args->stack_size); if(!subcx) { JS_ReportOutOfMemory(cx); return JS_FALSE; @@ -327,6 +329,7 @@ main(int argc, const char* argv[]) if(cx == NULL) return 1; + JS_SetContextPrivate(cx, args); JS_SetErrorReporter(cx, couch_error); JS_ToggleOptions(cx, JSOPTION_XML); -- cgit v1.2.3 From 0bdc62b8b186de839cf44721b8b61aa1eeae1f14 Mon Sep 17 00:00:00 2001 From: "Paul J. Davis" Date: Tue, 6 Dec 2011 11:49:10 -0500 Subject: Allow CPPPATH to be overriden in the environment --- couchjs/c_src/SConscript | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'couchjs/c_src') diff --git a/couchjs/c_src/SConscript b/couchjs/c_src/SConscript index da3752bc..451c03d3 100644 --- a/couchjs/c_src/SConscript +++ b/couchjs/c_src/SConscript @@ -22,7 +22,8 @@ def require_lib(name): def runcmd(cmd): return commands.getstatusoutput(cmd) -env = Environment(CC="c++", CCFLAGS='-g -O2 -DXP_UNIX') +env = Environment(CC="c++", CCFLAGS='-g -O2 -DXP_UNIX', + CPPPATH=os.getenv("CPPPATH")) if os.uname()[0] == 'SunOS': env['CC'] = '/usr/sfw/bin/gcc' -- cgit v1.2.3 From 6cec3db82d6e17e413e771ad0e3aab156bafbc1b Mon Sep 17 00:00:00 2001 From: "Paul J. Davis" Date: Tue, 22 Nov 2011 11:52:43 -0600 Subject: Make cURL a soft dependency This makes sure that we only optionally require the same version of cURL that CouchDB does. --- couchjs/c_src/SConscript | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'couchjs/c_src') diff --git a/couchjs/c_src/SConscript b/couchjs/c_src/SConscript index 451c03d3..68ad5d3e 100644 --- a/couchjs/c_src/SConscript +++ b/couchjs/c_src/SConscript @@ -52,7 +52,6 @@ if not env.GetOption('clean'): require_lib('m') require_lib('pthread') - require_lib('curl') require_lib('nspr4') ## check for SpiderMonkey development header @@ -94,6 +93,16 @@ if not env.GetOption('clean'): else: conf.Define("JSSCRIPT_TYPE", "JSObject*") + ## Check if curl is available + try: + vsn = runcmd("curl-config --version")[1] + vsn = vsn.split()[-1].strip().split(".") + vsn = tuple(map(int, vsn)) + if vsn > (7, 18, 0): + require_lib('curl') + except: + pass + ## Define properties for -h / -V (_, vsn) = runcmd("git describe --match 1.*") -- cgit v1.2.3