summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWill Young <lost.networking@gmail.com>2022-01-12 17:16:01 +0000
committerGitHub <noreply@github.com>2022-01-12 12:16:01 -0500
commit0d6e131099849b1bdbbcd7f250f657a9ddd91ba4 (patch)
tree89c0707ea2e48510459b58e1734a6aa2477e0f64
parent7f63d938d001321cd047a2c7ac1f2822eddf1e1f (diff)
downloadcouchdb-0d6e131099849b1bdbbcd7f250f657a9ddd91ba4.tar.gz
Feat/support sm91 4.x from lostnet (#3884)
* Win32-SM91 support and fixes * spidermonkey_68 identified as spidermonkey_60 and erroneously(?) blocked by configure on aarch64 #3149 * remove unnecessary shell when setting ERL_AFLAGS * fix foundationdb urls in github workflow * quote AFLAGS like win echo and fix references to pwd Co-authored-by: Will <w.young@schaetz-cro.ch>
-rw-r--r--.github/workflows/ubuntu.yml6
-rw-r--r--Makefile.win12
-rwxr-xr-xconfigure4
-rw-r--r--src/couch/priv/couch_js/86/main.cpp10
-rw-r--r--src/couch/rebar.config.script11
5 files changed, 20 insertions, 23 deletions
diff --git a/.github/workflows/ubuntu.yml b/.github/workflows/ubuntu.yml
index a65c8b797..4de1bc868 100644
--- a/.github/workflows/ubuntu.yml
+++ b/.github/workflows/ubuntu.yml
@@ -23,7 +23,7 @@ jobs:
uses: actions/cache@v2
id: wgetcache
with:
- key: wgetcache-${{env.FIREFOX_VERSION}}-${{env.FDB_VERSION}}
+ key: wgetcache-${{env.FIREFOX_VERSION}}-${{env.FDB_VERSION}}-${{ runner.os }}
path: |
firefox-${{env.FIREFOX_VERSION}}esr.source.tar.xz
foundationdb-clients_${{env.FDB_VERSION}}-1_amd64.deb
@@ -32,8 +32,8 @@ jobs:
- name: wget moz
if: steps.wgetcache.outputs.cache-hit != 'true'
run: |
- wget -nv -S https://www.foundationdb.org/downloads/${{env.FDB_VERSION}}/ubuntu/installers/foundationdb-clients_${{env.FDB_VERSION}}-1_amd64.deb
- wget -nv -S https://www.foundationdb.org/downloads/${{env.FDB_VERSION}}/ubuntu/installers/foundationdb-server_${{env.FDB_VERSION}}-1_amd64.deb
+ wget -nv -S https://github.com/apple/foundationdb/releases/download/${{env.FDB_VERSION}}/foundationdb-clients_${{env.FDB_VERSION}}-1_amd64.deb
+ wget -nv -S https://github.com/apple/foundationdb/releases/download/${{env.FDB_VERSION}}/foundationdb-server_${{env.FDB_VERSION}}-1_amd64.deb
wget -nv https://download.cdn.mozilla.net/pub/firefox/releases/${{env.FIREFOX_VERSION}}esr/source/firefox-${{env.FIREFOX_VERSION}}esr.source.tar.xz
- name: couch checkout
diff --git a/Makefile.win b/Makefile.win
index d049c613f..9f9689897 100644
--- a/Makefile.win
+++ b/Makefile.win
@@ -147,7 +147,7 @@ endif
.PHONY: eunit
# target: eunit - Run EUnit tests, use EUNIT_OPTS to provide custom options
eunit: export BUILDDIR = $(shell echo %cd%)
-eunit: export ERL_AFLAGS = $(shell echo "-config rel/files/eunit.config")
+eunit: export ERL_AFLAGS = "-config rel/files/eunit.config"
eunit: export COUCHDB_QUERY_SERVER_JAVASCRIPT = $(shell echo %cd%)/bin/couchjs $(shell echo %cd%)/share/server/main.js
eunit: export COUCHDB_TEST_ADMIN_PARTY_OVERRIDE=1
eunit: couch
@@ -159,19 +159,19 @@ eunit: couch
exunit: export BUILDDIR = $(shell echo %cd%)
exunit: export MIX_ENV=test
exunit: export ERL_LIBS = $(shell echo %cd%)\src
-exunit: export ERL_AFLAGS = -config $(shell echo %cd%)/rel/files/eunit.config
+exunit: export ERL_AFLAGS = "-config rel/files/eunit.config"
exunit: export COUCHDB_QUERY_SERVER_JAVASCRIPT = $(shell echo %cd%)/bin/couchjs $(shell echo %cd%)/share/server/main.js
exunit: export COUCHDB_TEST_ADMIN_PARTY_OVERRIDE=1
exunit: couch elixir-init setup-eunit elixir-check-formatted elixir-credo
@mix test --cover --trace $(EXUNIT_OPTS)
-setup-eunit: export BUILDDIR = $(shell pwd)
-setup-eunit: export ERL_AFLAGS = "-config $(shell echo %cd%)/rel/files/eunit.config")
+setup-eunit: export BUILDDIR = $(shell echo %cd%)
+setup-eunit: export ERL_AFLAGS = "-config rel/files/eunit.config"
setup-eunit:
@$(REBAR) setup_eunit 2> nul
-just-eunit: export BUILDDIR = $(shell pwd)
-just-eunit: export ERL_AFLAGS = "-config $(shell echo %cd%)/rel/files/eunit.config")
+just-eunit: export BUILDDIR = $(shell echo %cd%)
+just-eunit: export ERL_AFLAGS = "-config rel/files/eunit.config"
just-eunit:
@$(REBAR) -r eunit $(EUNIT_OPTS)
diff --git a/configure b/configure
index d5e9c2077..c016c31ef 100755
--- a/configure
+++ b/configure
@@ -211,9 +211,9 @@ parse_opts() {
parse_opts $@
-if [ "${ARCH}" = "aarch64" ] && [ "${SM_VSN}" != "1.8.5" ]
+if [ "${ARCH}" = "aarch64" ] && [ "${SM_VSN}" = "60" ]
then
- echo "ERROR: SpiderMonkey 60 is known broken on ARM 64 (aarch64). Use 1.8.5 instead."
+ echo "ERROR: SpiderMonkey 60 is known broken on ARM 64 (aarch64). Use another version instead."
exit 1
fi
diff --git a/src/couch/priv/couch_js/86/main.cpp b/src/couch/priv/couch_js/86/main.cpp
index d75f119b2..06ff22428 100644
--- a/src/couch/priv/couch_js/86/main.cpp
+++ b/src/couch/priv/couch_js/86/main.cpp
@@ -287,17 +287,9 @@ int runWithContext(JSContext* cx, couch_args* args) {
// Compile and run
JS::CompileOptions options(cx);
- options.setFileAndLine(filename, 1);
JS::RootedScript script(cx);
- FILE* fp;
- fp = fopen(args->scripts[i], "r");
- if(fp == NULL) {
- fprintf(stderr, "Failed to read file: %s\n", filename);
- return 3;
- }
- script = JS::CompileUtf8File(cx, options, fp);
- fclose(fp);
+ script = JS::CompileUtf8Path(cx, options, filename);
if (!script) {
JS::RootedValue exc(cx);
if(!JS_GetPendingException(cx, &exc)) {
diff --git a/src/couch/rebar.config.script b/src/couch/rebar.config.script
index 8a9b03829..efbffeddb 100644
--- a/src/couch/rebar.config.script
+++ b/src/couch/rebar.config.script
@@ -155,8 +155,13 @@ end.
};
{unix, _} when SMVsn == "91" ->
{
- "-DXP_UNIX -I/usr/include/mozjs-91 -I/usr/local/include/mozjs-91 -I/opt/homebrew/include/mozjs-91/ -std=c++17 -Wno-invalid-offsetof",
- "-L/usr/local/lib -L /opt/homebrew/lib/ -std=c++17 -lmozjs-91 -lm"
+ "$CFLAGS -DXP_UNIX -I/usr/include/mozjs-91 -I/usr/local/include/mozjs-91 -I/opt/homebrew/include/mozjs-91/ -std=c++17 -Wno-invalid-offsetof",
+ "$LDFLAGS -L/usr/local/lib -L /opt/homebrew/lib/ -std=c++17 -lmozjs-91 -lm"
+ };
+ {win32, _} when SMVsn == "91" ->
+ {
+ "/std:c++17 /DXP_WIN",
+ "$LDFLAGS mozjs-91.lib"
}
end.
@@ -191,7 +196,7 @@ IcuDarwinEnv = [{"CFLAGS", "-DXP_UNIX -I/usr/local/opt/icu4c/include -I/opt/home
IcuBsdEnv = [{"CFLAGS", "-DXP_UNIX -I/usr/local/include"},
{"LDFLAGS", "-L/usr/local/lib"}].
IcuWinEnv = [{"CFLAGS", "$DRV_CFLAGS /DXP_WIN"},
- {"LDFLAGS", "icuin.lib icudt.lib icuuc.lib"}].
+ {"LDFLAGS", "$LDFLAGS icuin.lib icudt.lib icuuc.lib"}].
ComparePath = "priv/couch_ejson_compare.so".
CompareSrc = ["priv/couch_ejson_compare/*.c"].