aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lang/Makefile1
-rw-r--r--lang/spidermonkey52/Makefile91
-rw-r--r--lang/spidermonkey52/distinfo3
-rw-r--r--lang/spidermonkey52/files/patch-142686523
-rw-r--r--lang/spidermonkey52/files/patch-disable-mozglue62
-rw-r--r--lang/spidermonkey52/pkg-descr3
-rw-r--r--lang/spidermonkey52/pkg-plist161
7 files changed, 344 insertions, 0 deletions
diff --git a/lang/Makefile b/lang/Makefile
index 2a8eca36cb31..81144022febf 100644
--- a/lang/Makefile
+++ b/lang/Makefile
@@ -344,6 +344,7 @@
SUBDIR += spidermonkey185
SUBDIR += spidermonkey24
SUBDIR += spidermonkey38
+ SUBDIR += spidermonkey52
SUBDIR += spl
SUBDIR += squeak
SUBDIR += squirrel
diff --git a/lang/spidermonkey52/Makefile b/lang/spidermonkey52/Makefile
new file mode 100644
index 000000000000..3c54d780e2ce
--- /dev/null
+++ b/lang/spidermonkey52/Makefile
@@ -0,0 +1,91 @@
+# Created by: Kubilay Kocak <koobs@FreeBSD.org>
+# $FreeBSD$
+
+PORTNAME= spidermonkey
+PORTVERSION= 52.8.0
+PORTREVISION= 0
+CATEGORIES= lang
+MASTER_SITES= MOZILLA/firefox/releases/${PORTVERSION}esr/source
+DISTNAME= firefox-${PORTVERSION}esr.source
+PKGNAMESUFFIX= ${SP_VER}
+
+MAINTAINER= kwm@FreeBSD.org
+COMMENT= Standalone JavaScript based from Mozilla 52-esr
+
+BUILD_DEPENDS= autoconf-2.13:devel/autoconf213
+LIB_DEPENDS= libnspr4.so:devel/nspr \
+ libffi.so:devel/libffi \
+ libicudata.so:devel/icu
+
+HAS_CONFIGURE= yes
+USES= compiler:c++14-lang gmake localbase pathfix pkgconfig \
+ python:2.7,build tar:xz
+# python:2.7,build readline tar:xz
+USE_LDCONFIG= yes
+SP_VER= 52
+
+WRKSRC= ${WRKDIR}/firefox-${PORTVERSION}esr/js/src
+PATCH_WRKSRC= ${WRKDIR}/firefox-${PORTVERSION}esr/
+
+CONFIGURE_ARGS= --with-pthreads \
+ --target=${CONFIGURE_TARGET} \
+ --with-intl-api \
+ --with-system-zlib \
+ --disable-gold \
+ --with-system-icu \
+ --with-system-nspr
+
+OPTIONS_DEFINE= DEBUG GCZEAL JEMALLOC OPTIMIZE READLINE UTF8 DTRACE
+OPTIONS_DEFAULT=METHODJIT OPTIMIZE READLINE
+OPTIONS_SUB= yes
+
+DEBUG_CONFIGURE_ENABLE= debug debug-symbols
+DEBUG_CONFIGURE_DISABLE=debug
+
+DTRACE_CONFIGURE_ENABLE=dtrace profiling
+DTRACE_LIBS= -lelf
+
+GCZEAL_DESC= Enable Zealous garbage collecting
+GCZEAL_CONFIGURE_ENABLE=gczeal
+
+JEMALLOC_DESC= Use jemalloc as memory allocator
+JEMALLOC_CONFIGURE_ENABLE= jemalloc
+
+OPTIMIZE_DESC= Enable compiler optimizations
+OPTIMIZE_CONFIGURE_ENABLE= optimize
+
+READLINE_DESC= Link js shell to the readline library
+READLINE_USES= readline
+READLINE_CONFIGURE_ENABLE= readline
+
+UTF8_DESC= Treat strings as UTF8 instead of ISO-8859-1
+UTF8_CFLAGS= -DJS_C_STRINGS_ARE_UTF8
+
+.include <bsd.port.pre.mk>
+
+.if ${ARCH} == amd64
+CONFIGURE_TARGET=x86_64-portbld-freebsd${OSREL}
+.endif
+
+post-patch:
+# Skip some tests because bundled icu differs from system
+ @${RM} ${WRKSRC}/tests/test262/intl402/ch10/10.2/10.2.3_b.js \
+ ${WRKSRC}/tests/Intl/DateTimeFormat/format.js \
+ ${WRKSRC}/tests/ecma_6/String/normalize-generateddata-part1-not-listed.js
+pre-configure:
+ cd ${WRKSRC} && ${LOCALBASE}/bin/autoconf-2.13
+
+regression-test: build
+ @${ECHO_MSG} -n "===> Running jstests.py: "
+ @cd ${WRKSRC} && ${SETENV} TZ=PST8PDT ${PYTHON_CMD} tests/jstests.py \
+ -d -s --no-progress ./js/src/shell/js
+
+post-install:
+ ${RM} ${STAGEDIR}${PREFIX}/lib/libjs_static.ajs
+ ${LN} -fs libmozjs-${SP_VER}.so ${STAGEDIR}${PREFIX}/lib/libmozjs-${SP_VER}.so.1
+.if ! ${PORT_OPTIONS:MDTRACE}
+ @${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/js${SP_VER}
+ @${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libmozjs-${SP_VER}.*
+.endif
+
+.include <bsd.port.post.mk>
diff --git a/lang/spidermonkey52/distinfo b/lang/spidermonkey52/distinfo
new file mode 100644
index 000000000000..f142a960ed93
--- /dev/null
+++ b/lang/spidermonkey52/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1525963979
+SHA256 (firefox-52.8.0esr.source.tar.xz) = babed4fe0ae95783e39358aedf7111b20fd9442f73b3b41b025fa4951fe76287
+SIZE (firefox-52.8.0esr.source.tar.xz) = 214054520
diff --git a/lang/spidermonkey52/files/patch-1426865 b/lang/spidermonkey52/files/patch-1426865
new file mode 100644
index 000000000000..7b922ff70fca
--- /dev/null
+++ b/lang/spidermonkey52/files/patch-1426865
@@ -0,0 +1,23 @@
+Proposed workaround/fix for:
+https://bugzilla.mozilla.org/show_bug.cgi?id=1426865
+
+diff --git a/js/public/TypeDecls.h b/js/public/TypeDecls.h
+index acb93f9..cbd4b04 100644
+--- js/public/TypeDecls.h
++++ js/public/TypeDecls.h
+@@ -22,6 +22,8 @@
+
+ #include "js-config.h"
+
++#pragma GCC visibility push(default)
++
+ struct JSContext;
+ class JSFunction;
+ class JSObject;
+@@ -76,4 +78,6 @@ typedef PersistentRooted<Value> PersistentRootedValue;
+
+ } // namespace JS
+
++#pragma GCC visibility pop
++
+ #endif /* js_TypeDecls_h */
diff --git a/lang/spidermonkey52/files/patch-disable-mozglue b/lang/spidermonkey52/files/patch-disable-mozglue
new file mode 100644
index 000000000000..66a1d3fd8df6
--- /dev/null
+++ b/lang/spidermonkey52/files/patch-disable-mozglue
@@ -0,0 +1,62 @@
+From 1dd00ba521afd812ba42d94be8772603d3590b43 Mon Sep 17 00:00:00 2001
+From: Till Schneidereit <till@tillschneidereit.net>
+Date: Thu, 1 Oct 2015 12:59:09 +0200
+Subject: [PATCH] Disable MOZ_GLUE_IN_PROGRAM in stand-alone builds on all
+ platforms
+
+Otherwise, build fails not being able to find HashBytes.
+
+Patch ported forward to mozjs52 by Philip Chimento
+<philip.chimento@gmail.com>.
+
+https://bugzilla.mozilla.org/show_bug.cgi?id=1176787
+---
+
+diff --git a/js/src/old-configure.in b/js/src/old-configure.in
+index 1c5c9e214..ff0617e31 100644
+--- js/src/old-configure.in
++++ js/src/old-configure.in
+@@ -1623,16 +1623,21 @@ dnl ========================================================
+ dnl = Enable jemalloc
+ dnl ========================================================
+
+-case "${OS_TARGET}" in
+-Android|WINNT|Darwin)
++dnl In stand-alone builds we always only want to link executables against mozglue.
++if test "$JS_STANDALONE"; then
+ MOZ_GLUE_IN_PROGRAM=
+- ;;
+-*)
+- dnl On !Android !Windows !OSX, we only want to link executables against mozglue
+- MOZ_GLUE_IN_PROGRAM=1
+- AC_DEFINE(MOZ_GLUE_IN_PROGRAM)
+- ;;
+-esac
++else
++ case "${OS_TARGET}" in
++ Android|WINNT|Darwin)
++ MOZ_GLUE_IN_PROGRAM=
++ ;;
++ *)
++ dnl On !Android !Windows !OSX, we only want to link executables against mozglue
++ MOZ_GLUE_IN_PROGRAM=1
++ AC_DEFINE(MOZ_GLUE_IN_PROGRAM)
++ ;;
++ esac
++fi
+
+ if test "$MOZ_MEMORY"; then
+ if test "x$MOZ_DEBUG" = "x1"; then
+diff --git a/mozglue/build/moz.build b/mozglue/build/moz.build
+index d28974778..e3be5a2b9 100644
+--- mozglue/build/moz.build
++++ mozglue/build/moz.build
+@@ -6,7 +6,7 @@
+
+ # Build mozglue as a shared lib on Windows, OSX and Android.
+ # If this is ever changed, update MOZ_SHARED_MOZGLUE in browser/installer/Makefile.in
+-if CONFIG['OS_TARGET'] in ('WINNT', 'Darwin', 'Android'):
++if CONFIG['OS_TARGET'] in ('WINNT', 'Darwin', 'Android') and not CONFIG['JS_STANDALONE']:
+ SharedLibrary('mozglue')
+ else:
+ Library('mozglue')
diff --git a/lang/spidermonkey52/pkg-descr b/lang/spidermonkey52/pkg-descr
new file mode 100644
index 000000000000..2db0b2ca559f
--- /dev/null
+++ b/lang/spidermonkey52/pkg-descr
@@ -0,0 +1,3 @@
+Spidermonkey is the JavaScript interpreter from the Mozilla project.
+
+WWW: https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey
diff --git a/lang/spidermonkey52/pkg-plist b/lang/spidermonkey52/pkg-plist
new file mode 100644
index 000000000000..322a6215686f
--- /dev/null
+++ b/lang/spidermonkey52/pkg-plist
@@ -0,0 +1,161 @@
+bin/js52
+bin/js52-config
+include/mozjs-52/fdlibm.h
+%%JEMALLOC%%include/mozjs-52/jemalloc_types.h
+include/mozjs-52/js-config.h
+include/mozjs-52/js.msg
+include/mozjs-52/js/CallArgs.h
+include/mozjs-52/js/CallNonGenericMethod.h
+include/mozjs-52/js/CharacterEncoding.h
+include/mozjs-52/js/Class.h
+include/mozjs-52/js/Conversions.h
+include/mozjs-52/js/Date.h
+include/mozjs-52/js/Debug.h
+include/mozjs-52/js/GCAPI.h
+include/mozjs-52/js/GCAnnotations.h
+include/mozjs-52/js/GCHashTable.h
+include/mozjs-52/js/GCPolicyAPI.h
+include/mozjs-52/js/GCVariant.h
+include/mozjs-52/js/GCVector.h
+include/mozjs-52/js/HashTable.h
+include/mozjs-52/js/HeapAPI.h
+include/mozjs-52/js/Id.h
+include/mozjs-52/js/Initialization.h
+include/mozjs-52/js/LegacyIntTypes.h
+include/mozjs-52/js/MemoryMetrics.h
+include/mozjs-52/js/Principals.h
+include/mozjs-52/js/ProfilingFrameIterator.h
+include/mozjs-52/js/ProfilingStack.h
+include/mozjs-52/js/Proxy.h
+include/mozjs-52/js/Realm.h
+include/mozjs-52/js/RequiredDefines.h
+include/mozjs-52/js/RootingAPI.h
+include/mozjs-52/js/SliceBudget.h
+include/mozjs-52/js/StructuredClone.h
+include/mozjs-52/js/SweepingAPI.h
+include/mozjs-52/js/TraceKind.h
+include/mozjs-52/js/TracingAPI.h
+include/mozjs-52/js/TrackedOptimizationInfo.h
+include/mozjs-52/js/TypeDecls.h
+include/mozjs-52/js/UbiNode.h
+include/mozjs-52/js/UbiNodeBreadthFirst.h
+include/mozjs-52/js/UbiNodeCensus.h
+include/mozjs-52/js/UbiNodeDominatorTree.h
+include/mozjs-52/js/UbiNodePostOrder.h
+include/mozjs-52/js/UbiNodeShortestPaths.h
+include/mozjs-52/js/UniquePtr.h
+include/mozjs-52/js/Utility.h
+include/mozjs-52/js/Value.h
+include/mozjs-52/js/Vector.h
+include/mozjs-52/js/WeakMapPtr.h
+include/mozjs-52/jsalloc.h
+include/mozjs-52/jsapi.h
+include/mozjs-52/jsbytecode.h
+include/mozjs-52/jsclist.h
+include/mozjs-52/jscpucfg.h
+include/mozjs-52/jsfriendapi.h
+include/mozjs-52/jsperf.h
+include/mozjs-52/jsprf.h
+include/mozjs-52/jsprototypes.h
+include/mozjs-52/jspubtd.h
+include/mozjs-52/jstypes.h
+include/mozjs-52/jsversion.h
+include/mozjs-52/jswrapper.h
+include/mozjs-52/mozilla/Alignment.h
+include/mozjs-52/mozilla/AllocPolicy.h
+include/mozjs-52/mozilla/AlreadyAddRefed.h
+include/mozjs-52/mozilla/Array.h
+include/mozjs-52/mozilla/ArrayUtils.h
+include/mozjs-52/mozilla/Assertions.h
+include/mozjs-52/mozilla/Atomics.h
+include/mozjs-52/mozilla/Attributes.h
+include/mozjs-52/mozilla/BinarySearch.h
+include/mozjs-52/mozilla/BloomFilter.h
+include/mozjs-52/mozilla/BufferList.h
+include/mozjs-52/mozilla/Casting.h
+include/mozjs-52/mozilla/ChaosMode.h
+include/mozjs-52/mozilla/Char16.h
+include/mozjs-52/mozilla/CheckedInt.h
+include/mozjs-52/mozilla/Compiler.h
+include/mozjs-52/mozilla/Compression.h
+include/mozjs-52/mozilla/DebugOnly.h
+include/mozjs-52/mozilla/Decimal.h
+include/mozjs-52/mozilla/EndianUtils.h
+include/mozjs-52/mozilla/EnumSet.h
+include/mozjs-52/mozilla/EnumTypeTraits.h
+include/mozjs-52/mozilla/EnumeratedArray.h
+include/mozjs-52/mozilla/EnumeratedRange.h
+include/mozjs-52/mozilla/FastBernoulliTrial.h
+include/mozjs-52/mozilla/FloatingPoint.h
+include/mozjs-52/mozilla/Function.h
+include/mozjs-52/mozilla/GuardObjects.h
+include/mozjs-52/mozilla/HashFunctions.h
+include/mozjs-52/mozilla/IndexSequence.h
+include/mozjs-52/mozilla/IntegerPrintfMacros.h
+include/mozjs-52/mozilla/IntegerRange.h
+include/mozjs-52/mozilla/IntegerTypeTraits.h
+include/mozjs-52/mozilla/JSONWriter.h
+include/mozjs-52/mozilla/Likely.h
+include/mozjs-52/mozilla/LinkedList.h
+include/mozjs-52/mozilla/MacroArgs.h
+include/mozjs-52/mozilla/MacroForEach.h
+include/mozjs-52/mozilla/MathAlgorithms.h
+include/mozjs-52/mozilla/Maybe.h
+include/mozjs-52/mozilla/MaybeOneOf.h
+include/mozjs-52/mozilla/MemoryChecking.h
+include/mozjs-52/mozilla/MemoryReporting.h
+include/mozjs-52/mozilla/Move.h
+include/mozjs-52/mozilla/NotNull.h
+include/mozjs-52/mozilla/NullPtr.h
+include/mozjs-52/mozilla/Opaque.h
+include/mozjs-52/mozilla/OperatorNewExtensions.h
+include/mozjs-52/mozilla/Pair.h
+include/mozjs-52/mozilla/PodOperations.h
+include/mozjs-52/mozilla/Poison.h
+include/mozjs-52/mozilla/Range.h
+include/mozjs-52/mozilla/RangedArray.h
+include/mozjs-52/mozilla/RangedPtr.h
+include/mozjs-52/mozilla/ReentrancyGuard.h
+include/mozjs-52/mozilla/RefCountType.h
+include/mozjs-52/mozilla/RefCounted.h
+include/mozjs-52/mozilla/RefPtr.h
+include/mozjs-52/mozilla/ReverseIterator.h
+include/mozjs-52/mozilla/RollingMean.h
+include/mozjs-52/mozilla/SHA1.h
+include/mozjs-52/mozilla/Saturate.h
+include/mozjs-52/mozilla/ScopeExit.h
+include/mozjs-52/mozilla/Scoped.h
+include/mozjs-52/mozilla/SegmentedVector.h
+include/mozjs-52/mozilla/SizePrintfMacros.h
+include/mozjs-52/mozilla/SplayTree.h
+include/mozjs-52/mozilla/Sprintf.h
+include/mozjs-52/mozilla/StackWalk.h
+include/mozjs-52/mozilla/StaticAnalysisFunctions.h
+include/mozjs-52/mozilla/TaggedAnonymousMemory.h
+include/mozjs-52/mozilla/TemplateLib.h
+include/mozjs-52/mozilla/TextUtils.h
+include/mozjs-52/mozilla/ThreadLocal.h
+include/mozjs-52/mozilla/TimeStamp.h
+include/mozjs-52/mozilla/ToString.h
+include/mozjs-52/mozilla/Tuple.h
+include/mozjs-52/mozilla/TypeTraits.h
+include/mozjs-52/mozilla/TypedEnumBits.h
+include/mozjs-52/mozilla/Types.h
+include/mozjs-52/mozilla/UniquePtr.h
+include/mozjs-52/mozilla/UniquePtrExtensions.h
+include/mozjs-52/mozilla/Unused.h
+include/mozjs-52/mozilla/Variant.h
+include/mozjs-52/mozilla/Vector.h
+include/mozjs-52/mozilla/WeakPtr.h
+include/mozjs-52/mozilla/XorShift128PlusRNG.h
+include/mozjs-52/mozilla/double-conversion.h
+include/mozjs-52/mozilla/fallible.h
+include/mozjs-52/mozilla/mozalloc.h
+include/mozjs-52/mozilla/mozalloc_abort.h
+include/mozjs-52/mozilla/mozalloc_oom.h
+include/mozjs-52/mozilla/utils.h
+%%JEMALLOC%%include/mozjs-52/mozmemory.h
+%%JEMALLOC%%include/mozjs-52/mozmemory_wrap.h
+lib/libmozjs-52.so
+lib/libmozjs-52.so.1
+libdata/pkgconfig/mozjs-52.pc