summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornia <nia@pkgsrc.org>2020-11-10 11:27:10 +0000
committernia <nia@pkgsrc.org>2020-11-10 11:27:10 +0000
commit85921585077f21d658dfe5fabbe458ea21631399 (patch)
tree7117e35ff0b32c5d49933bb99e8919866aaf9b6d
parent91f8d780d6d3dc8e9c2f07e1b030d17ceb7e2e2a (diff)
downloadpkgsrc-85921585077f21d658dfe5fabbe458ea21631399.tar.gz
lang: Add mozjs78. Needed by newer gjs (needed by gnome-shell).
Based on work by Dan Cîrnaț and myself in wip. This directory contains SpiderMonkey 78, the JavaScript engine by Mozilla.
-rw-r--r--lang/Makefile3
-rw-r--r--lang/mozjs78/DESCR2
-rw-r--r--lang/mozjs78/Makefile74
-rw-r--r--lang/mozjs78/PLIST248
-rw-r--r--lang/mozjs78/buildlink3.mk16
-rw-r--r--lang/mozjs78/distinfo14
-rw-r--r--lang/mozjs78/patches/patch-.._.._build_moz.configure_rust.configure17
-rw-r--r--lang/mozjs78/patches/patch-.._.._build_moz.configure_toolchain.configure15
-rw-r--r--lang/mozjs78/patches/patch-configure.in12
-rw-r--r--lang/mozjs78/patches/patch-jit_ProcessExecutableMemory.cpp38
-rw-r--r--lang/mozjs78/patches/patch-jsfriendapi.h14
-rw-r--r--lang/mozjs78/patches/patch-vm_ArrayBufferObject.cpp24
-rw-r--r--lang/mozjs78/patches/patch-vm_JSONPrinter.cpp17
-rw-r--r--lang/mozjs78/patches/patch-vm_JSONPrinter.h17
14 files changed, 510 insertions, 1 deletions
diff --git a/lang/Makefile b/lang/Makefile
index f368c32606a..06758ecee9d 100644
--- a/lang/Makefile
+++ b/lang/Makefile
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.579 2020/10/10 20:19:47 adam Exp $
+# $NetBSD: Makefile,v 1.580 2020/11/10 11:27:10 nia Exp $
#
COMMENT= Programming languages
@@ -162,6 +162,7 @@ SUBDIR+= mono6
SUBDIR+= moscow_ml
SUBDIR+= mozjs60
SUBDIR+= mozjs68
+SUBDIR+= mozjs78
SUBDIR+= mpd
SUBDIR+= nawk
SUBDIR+= neko
diff --git a/lang/mozjs78/DESCR b/lang/mozjs78/DESCR
new file mode 100644
index 00000000000..d6fce188a98
--- /dev/null
+++ b/lang/mozjs78/DESCR
@@ -0,0 +1,2 @@
+This directory contains SpiderMonkey 78, the JavaScript engine by
+Mozilla.
diff --git a/lang/mozjs78/Makefile b/lang/mozjs78/Makefile
new file mode 100644
index 00000000000..0b5fb2798ae
--- /dev/null
+++ b/lang/mozjs78/Makefile
@@ -0,0 +1,74 @@
+# $NetBSD: Makefile,v 1.1 2020/11/10 11:27:10 nia Exp $
+
+DISTNAME= mozjs78_78.4.0.orig
+PKGNAME= ${DISTNAME:S/_/-/:S/.orig//}
+CATEGORIES= lang
+MASTER_SITES= http://deb.debian.org/debian/pool/main/m/mozjs78/
+EXTRACT_SUFX= .tar.xz
+
+MAINTAINER= pkgsrc-users@NetBSD.org
+HOMEPAGE= https://packages.debian.org/bullseye/libmozjs-78-0
+COMMENT= SpiderMonkey JavaScript library (78.x branch)
+LICENSE= mpl-1.1
+
+WRKSRC= ${WRKDIR}/firefox-${PKGVERSION_NOREV}/js/src
+USE_TOOLS+= autoconf213 gmake perl pkg-config
+USE_LANGUAGES= c c++
+
+# "ERROR: Only GCC 6.1 or newer is supported"
+GCC_REQD+= 6
+
+HAS_CONFIGURE= yes
+CONFIGURE_DIRS= build
+CONFIGURE_SCRIPT= ../configure
+CONFIGURE_ARGS+= --prefix=${PREFIX}
+CONFIGURE_ARGS+= --disable-debug
+CONFIGURE_ARGS+= --with-system-icu
+CONFIGURE_ARGS+= --with-system-zlib
+CONFIGURE_ARGS+= --enable-readline
+CONFIGURE_ARGS+= --disable-jemalloc
+CONFIGURE_ARGS+= --disable-debug-symbols
+CONFIGURE_ARGS+= --enable-strip
+CONFIGURE_ARGS+= --with-intl-api
+# --disable-optimize
+# For rustc/cargo detection
+CONFIGURE_ARGS+= --target=${MACHINE_GNU_PLATFORM}
+CONFIGURE_ARGS+= --host=${MACHINE_GNU_PLATFORM}
+
+PKGCONFIG_OVERRIDE+= build/js.pc.in
+PKGCONFIG_OVERRIDE+= ctypes/libffi/libffi.pc.in
+
+# Python 2.7 and Python 3.6 or later are required simultaneously.
+PYTHON_VERSIONS_ACCEPTED= 27
+PYTHON_FOR_BUILD_ONLY= tool
+.if !empty(PYTHON_VERSION_DEFAULT:M3[6789])
+TOOL_DEPENDS+= python${PYTHON_VERSION_DEFAULT}-[0-9]*:../../lang/python${PYTHON_VERSION_DEFAULT}
+ALL_ENV+= PYTHON3=${PREFIX}/bin/python${PYTHON_VERSION_DEFAULT:S/3/3./}
+.else
+TOOL_DEPENDS+= python37-[0-9]*:../../lang/python37
+ALL_ENV+= PYTHON3=${PREFIX}/bin/python3.7
+.endif
+
+pre-configure:
+ cd ${WRKSRC} && autoconf-2.13 old-configure.in > old-configure \
+ && autoconf-2.13
+ mkdir ${WRKSRC}/build && touch ${WRKSRC}/build/old-configure.vars
+
+post-install:
+ cd ${DESTDIR}${PREFIX}/lib && \
+ ${MV} libmozjs-78.so libmozjs-78.so.0.0.0 && \
+ ${LN} -s libmozjs-78.so.0.0.0 libmozjs-78.so.0 && \
+ ${LN} -s libmozjs-78.so.0 libmozjs-78.so
+ ${RM} -f ${DESTDIR}${PREFIX}/lib/libjs_static.ajs
+ ${CHMOD} -x ${DESTDIR}${PREFIX}/include/mozjs-78/js-config.h
+ ${CHMOD} -x ${DESTDIR}${PREFIX}/lib/pkgconfig/mozjs-78.pc
+
+BUILDLINK_DEPMETHOD.clang= build
+.include "../../lang/clang/buildlink3.mk"
+RUST_REQ= 1.34.0
+.include "../../lang/rust/rust.mk"
+.include "../../devel/zlib/buildlink3.mk"
+.include "../../lang/python/tool.mk"
+.include "../../textproc/icu/buildlink3.mk"
+.include "../../mk/readline.buildlink3.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/lang/mozjs78/PLIST b/lang/mozjs78/PLIST
new file mode 100644
index 00000000000..949e7d1fe47
--- /dev/null
+++ b/lang/mozjs78/PLIST
@@ -0,0 +1,248 @@
+@comment $NetBSD: PLIST,v 1.1 2020/11/10 11:27:10 nia Exp $
+bin/js78
+bin/js78-config
+include/mozjs-78/BaseProfiler.h
+include/mozjs-78/double-conversion/double-conversion.h
+include/mozjs-78/double-conversion/double-to-string.h
+include/mozjs-78/double-conversion/string-to-double.h
+include/mozjs-78/double-conversion/utils.h
+include/mozjs-78/encoding_rs_mem.h
+include/mozjs-78/fdlibm.h
+include/mozjs-78/js-config.h
+include/mozjs-78/js.msg
+include/mozjs-78/js/AllocPolicy.h
+include/mozjs-78/js/AllocationRecording.h
+include/mozjs-78/js/Array.h
+include/mozjs-78/js/ArrayBuffer.h
+include/mozjs-78/js/ArrayBufferMaybeShared.h
+include/mozjs-78/js/BigInt.h
+include/mozjs-78/js/BinASTFormat.h
+include/mozjs-78/js/BuildId.h
+include/mozjs-78/js/CallArgs.h
+include/mozjs-78/js/CallNonGenericMethod.h
+include/mozjs-78/js/CharacterEncoding.h
+include/mozjs-78/js/Class.h
+include/mozjs-78/js/ComparisonOperators.h
+include/mozjs-78/js/CompilationAndEvaluation.h
+include/mozjs-78/js/CompileOptions.h
+include/mozjs-78/js/ContextOptions.h
+include/mozjs-78/js/Conversions.h
+include/mozjs-78/js/Date.h
+include/mozjs-78/js/Debug.h
+include/mozjs-78/js/Equality.h
+include/mozjs-78/js/ErrorReport.h
+include/mozjs-78/js/Exception.h
+include/mozjs-78/js/ForOfIterator.h
+include/mozjs-78/js/GCAPI.h
+include/mozjs-78/js/GCAnnotations.h
+include/mozjs-78/js/GCHashTable.h
+include/mozjs-78/js/GCPolicyAPI.h
+include/mozjs-78/js/GCTypeMacros.h
+include/mozjs-78/js/GCVariant.h
+include/mozjs-78/js/GCVector.h
+include/mozjs-78/js/HashTable.h
+include/mozjs-78/js/HeapAPI.h
+include/mozjs-78/js/Id.h
+include/mozjs-78/js/Initialization.h
+include/mozjs-78/js/JSON.h
+include/mozjs-78/js/LocaleSensitive.h
+include/mozjs-78/js/MemoryFunctions.h
+include/mozjs-78/js/MemoryMetrics.h
+include/mozjs-78/js/Modules.h
+include/mozjs-78/js/OffThreadScriptCompilation.h
+include/mozjs-78/js/Principals.h
+include/mozjs-78/js/Printf.h
+include/mozjs-78/js/ProfilingCategory.h
+include/mozjs-78/js/ProfilingFrameIterator.h
+include/mozjs-78/js/ProfilingStack.h
+include/mozjs-78/js/Promise.h
+include/mozjs-78/js/PropertyDescriptor.h
+include/mozjs-78/js/PropertySpec.h
+include/mozjs-78/js/ProtoKey.h
+include/mozjs-78/js/Proxy.h
+include/mozjs-78/js/Realm.h
+include/mozjs-78/js/RealmOptions.h
+include/mozjs-78/js/RefCounted.h
+include/mozjs-78/js/RegExp.h
+include/mozjs-78/js/RegExpFlags.h
+include/mozjs-78/js/RequiredDefines.h
+include/mozjs-78/js/Result.h
+include/mozjs-78/js/RootingAPI.h
+include/mozjs-78/js/SavedFrameAPI.h
+include/mozjs-78/js/SharedArrayBuffer.h
+include/mozjs-78/js/SliceBudget.h
+include/mozjs-78/js/SourceText.h
+include/mozjs-78/js/StableStringChars.h
+include/mozjs-78/js/Stream.h
+include/mozjs-78/js/StructuredClone.h
+include/mozjs-78/js/SweepingAPI.h
+include/mozjs-78/js/Symbol.h
+include/mozjs-78/js/TraceKind.h
+include/mozjs-78/js/TraceLoggerAPI.h
+include/mozjs-78/js/TracingAPI.h
+include/mozjs-78/js/Transcoding.h
+include/mozjs-78/js/TypeDecls.h
+include/mozjs-78/js/UbiNode.h
+include/mozjs-78/js/UbiNodeBreadthFirst.h
+include/mozjs-78/js/UbiNodeCensus.h
+include/mozjs-78/js/UbiNodeDominatorTree.h
+include/mozjs-78/js/UbiNodePostOrder.h
+include/mozjs-78/js/UbiNodeShortestPaths.h
+include/mozjs-78/js/UbiNodeUtils.h
+include/mozjs-78/js/UniquePtr.h
+include/mozjs-78/js/Utility.h
+include/mozjs-78/js/Value.h
+include/mozjs-78/js/ValueArray.h
+include/mozjs-78/js/Vector.h
+include/mozjs-78/js/Warnings.h
+include/mozjs-78/js/WeakMapPtr.h
+include/mozjs-78/js/Wrapper.h
+include/mozjs-78/js/experimental/CodeCoverage.h
+include/mozjs-78/js/experimental/SourceHook.h
+include/mozjs-78/jsapi.h
+include/mozjs-78/jsfriendapi.h
+include/mozjs-78/jspubtd.h
+include/mozjs-78/jstypes.h
+include/mozjs-78/malloc_decls.h
+include/mozjs-78/mozilla/Algorithm.h
+include/mozjs-78/mozilla/Alignment.h
+include/mozjs-78/mozilla/AllocPolicy.h
+include/mozjs-78/mozilla/AlreadyAddRefed.h
+include/mozjs-78/mozilla/Array.h
+include/mozjs-78/mozilla/ArrayUtils.h
+include/mozjs-78/mozilla/Assertions.h
+include/mozjs-78/mozilla/Atomics.h
+include/mozjs-78/mozilla/Attributes.h
+include/mozjs-78/mozilla/AutoProfilerLabel.h
+include/mozjs-78/mozilla/BaseProfilerCounts.h
+include/mozjs-78/mozilla/BaseProfilerDetail.h
+include/mozjs-78/mozilla/BinarySearch.h
+include/mozjs-78/mozilla/BlocksRingBuffer.h
+include/mozjs-78/mozilla/BloomFilter.h
+include/mozjs-78/mozilla/Buffer.h
+include/mozjs-78/mozilla/BufferList.h
+include/mozjs-78/mozilla/Casting.h
+include/mozjs-78/mozilla/ChaosMode.h
+include/mozjs-78/mozilla/Char16.h
+include/mozjs-78/mozilla/CheckedInt.h
+include/mozjs-78/mozilla/CompactPair.h
+include/mozjs-78/mozilla/Compiler.h
+include/mozjs-78/mozilla/Compression.h
+include/mozjs-78/mozilla/DbgMacro.h
+include/mozjs-78/mozilla/DebugOnly.h
+include/mozjs-78/mozilla/Decimal.h
+include/mozjs-78/mozilla/DefineEnum.h
+include/mozjs-78/mozilla/DoubleConversion.h
+include/mozjs-78/mozilla/DoublyLinkedList.h
+include/mozjs-78/mozilla/EndianUtils.h
+include/mozjs-78/mozilla/EnumSet.h
+include/mozjs-78/mozilla/EnumTypeTraits.h
+include/mozjs-78/mozilla/EnumeratedArray.h
+include/mozjs-78/mozilla/EnumeratedRange.h
+include/mozjs-78/mozilla/FStream.h
+include/mozjs-78/mozilla/FastBernoulliTrial.h
+include/mozjs-78/mozilla/FloatingPoint.h
+include/mozjs-78/mozilla/FunctionRef.h
+include/mozjs-78/mozilla/FunctionTypeTraits.h
+include/mozjs-78/mozilla/GuardObjects.h
+include/mozjs-78/mozilla/HashFunctions.h
+include/mozjs-78/mozilla/HashTable.h
+include/mozjs-78/mozilla/HelperMacros.h
+include/mozjs-78/mozilla/InitializedOnce.h
+include/mozjs-78/mozilla/IntegerPrintfMacros.h
+include/mozjs-78/mozilla/IntegerRange.h
+include/mozjs-78/mozilla/IntegerTypeTraits.h
+include/mozjs-78/mozilla/JSONWriter.h
+include/mozjs-78/mozilla/JsRust.h
+include/mozjs-78/mozilla/Latin1.h
+include/mozjs-78/mozilla/Likely.h
+include/mozjs-78/mozilla/LinkedList.h
+include/mozjs-78/mozilla/MacroArgs.h
+include/mozjs-78/mozilla/MacroForEach.h
+include/mozjs-78/mozilla/MathAlgorithms.h
+include/mozjs-78/mozilla/Maybe.h
+include/mozjs-78/mozilla/MaybeOneOf.h
+include/mozjs-78/mozilla/MemoryChecking.h
+include/mozjs-78/mozilla/MemoryReporting.h
+include/mozjs-78/mozilla/MmapFaultHandler.h
+include/mozjs-78/mozilla/ModuloBuffer.h
+include/mozjs-78/mozilla/NonDereferenceable.h
+include/mozjs-78/mozilla/NotNull.h
+include/mozjs-78/mozilla/Opaque.h
+include/mozjs-78/mozilla/OperatorNewExtensions.h
+include/mozjs-78/mozilla/Path.h
+include/mozjs-78/mozilla/PlatformConditionVariable.h
+include/mozjs-78/mozilla/PlatformMutex.h
+include/mozjs-78/mozilla/PodOperations.h
+include/mozjs-78/mozilla/Poison.h
+include/mozjs-78/mozilla/PowerOfTwo.h
+include/mozjs-78/mozilla/Printf.h
+include/mozjs-78/mozilla/ProfileBufferChunk.h
+include/mozjs-78/mozilla/ProfileBufferChunkManager.h
+include/mozjs-78/mozilla/ProfileBufferChunkManagerSingle.h
+include/mozjs-78/mozilla/ProfileBufferChunkManagerWithLocalLimit.h
+include/mozjs-78/mozilla/ProfileBufferControlledChunkManager.h
+include/mozjs-78/mozilla/ProfileBufferEntrySerialization.h
+include/mozjs-78/mozilla/ProfileBufferIndex.h
+include/mozjs-78/mozilla/ProfileChunkedBuffer.h
+include/mozjs-78/mozilla/RandomNum.h
+include/mozjs-78/mozilla/Range.h
+include/mozjs-78/mozilla/RangedArray.h
+include/mozjs-78/mozilla/RangedPtr.h
+include/mozjs-78/mozilla/ReentrancyGuard.h
+include/mozjs-78/mozilla/RefCountType.h
+include/mozjs-78/mozilla/RefCounted.h
+include/mozjs-78/mozilla/RefPtr.h
+include/mozjs-78/mozilla/Result.h
+include/mozjs-78/mozilla/ResultExtensions.h
+include/mozjs-78/mozilla/ReverseIterator.h
+include/mozjs-78/mozilla/RollingMean.h
+include/mozjs-78/mozilla/SHA1.h
+include/mozjs-78/mozilla/SPSCQueue.h
+include/mozjs-78/mozilla/Saturate.h
+include/mozjs-78/mozilla/ScopeExit.h
+include/mozjs-78/mozilla/Scoped.h
+include/mozjs-78/mozilla/SegmentedVector.h
+include/mozjs-78/mozilla/SharedLibrary.h
+include/mozjs-78/mozilla/SmallPointerArray.h
+include/mozjs-78/mozilla/Span.h
+include/mozjs-78/mozilla/SplayTree.h
+include/mozjs-78/mozilla/Sprintf.h
+include/mozjs-78/mozilla/StackWalk.h
+include/mozjs-78/mozilla/StaticAnalysisFunctions.h
+include/mozjs-78/mozilla/TaggedAnonymousMemory.h
+include/mozjs-78/mozilla/Tainting.h
+include/mozjs-78/mozilla/TemplateLib.h
+include/mozjs-78/mozilla/TextUtils.h
+include/mozjs-78/mozilla/ThreadLocal.h
+include/mozjs-78/mozilla/ThreadSafeWeakPtr.h
+include/mozjs-78/mozilla/TimeStamp.h
+include/mozjs-78/mozilla/ToString.h
+include/mozjs-78/mozilla/Tuple.h
+include/mozjs-78/mozilla/TypeTraits.h
+include/mozjs-78/mozilla/TypedEnumBits.h
+include/mozjs-78/mozilla/Types.h
+include/mozjs-78/mozilla/UniquePtr.h
+include/mozjs-78/mozilla/UniquePtrExtensions.h
+include/mozjs-78/mozilla/Unused.h
+include/mozjs-78/mozilla/Utf8.h
+include/mozjs-78/mozilla/Variant.h
+include/mozjs-78/mozilla/Vector.h
+include/mozjs-78/mozilla/WeakPtr.h
+include/mozjs-78/mozilla/WrappingOperations.h
+include/mozjs-78/mozilla/XorShift128PlusRNG.h
+include/mozjs-78/mozilla/cxxalloc.h
+include/mozjs-78/mozilla/fallible.h
+include/mozjs-78/mozilla/glue/Debug.h
+include/mozjs-78/mozilla/glue/WinUtils.h
+include/mozjs-78/mozilla/leb128iterator.h
+include/mozjs-78/mozilla/mozalloc.h
+include/mozjs-78/mozilla/mozalloc_abort.h
+include/mozjs-78/mozilla/mozalloc_oom.h
+include/mozjs-78/mozjemalloc_types.h
+include/mozjs-78/mozmemory.h
+include/mozjs-78/mozmemory_wrap.h
+lib/libmozjs-78.so
+lib/libmozjs-78.so.0
+lib/libmozjs-78.so.0.0.0
+lib/pkgconfig/mozjs-78.pc
diff --git a/lang/mozjs78/buildlink3.mk b/lang/mozjs78/buildlink3.mk
new file mode 100644
index 00000000000..72b2cfde5d2
--- /dev/null
+++ b/lang/mozjs78/buildlink3.mk
@@ -0,0 +1,16 @@
+# $NetBSD: buildlink3.mk,v 1.1 2020/11/10 11:27:10 nia Exp $
+
+BUILDLINK_TREE+= mozjs78
+
+.if !defined(MOZJS78_BUILDLINK3_MK)
+MOZJS78_BUILDLINK3_MK:=
+
+BUILDLINK_API_DEPENDS.mozjs78+= mozjs78>=78.3.0
+BUILDLINK_ABI_DEPENDS.mozjs78?= mozjs78>=78.3.0
+BUILDLINK_PKGSRCDIR.mozjs78?= ../../wip/mozjs78
+
+.include "../../devel/zlib/buildlink3.mk"
+.include "../../textproc/icu/buildlink3.mk"
+.endif # MOZJS78_BUILDLINK3_MK
+
+BUILDLINK_TREE+= -mozjs78
diff --git a/lang/mozjs78/distinfo b/lang/mozjs78/distinfo
new file mode 100644
index 00000000000..073ba511f29
--- /dev/null
+++ b/lang/mozjs78/distinfo
@@ -0,0 +1,14 @@
+$NetBSD: distinfo,v 1.1 2020/11/10 11:27:10 nia Exp $
+
+SHA1 (mozjs78_78.4.0.orig.tar.xz) = b2c1c241f70310d545f8a3c05b9c8c11676e56a8
+RMD160 (mozjs78_78.4.0.orig.tar.xz) = cef93b6116eff9f04beeaf3dda0a42cd811d0b18
+SHA512 (mozjs78_78.4.0.orig.tar.xz) = 05a0dd27cd8f330c69bf798f9025dd560e76a1a14628af4caeeae4f7573aef9371e19edb8a8e4cd28e92e189eb3a159b4ffedb1b1bd4b806e065de433cca6ffd
+Size (mozjs78_78.4.0.orig.tar.xz) = 58319040 bytes
+SHA1 (patch-.._.._build_moz.configure_rust.configure) = a40ef515b34781d703e9222e4c88746544556287
+SHA1 (patch-.._.._build_moz.configure_toolchain.configure) = 055312319a6a4e2916263baf318585b943c1ca20
+SHA1 (patch-configure.in) = e8dab4a549e5cdf2e97d65b258970f9f6cc9c72c
+SHA1 (patch-jit_ProcessExecutableMemory.cpp) = d65001c07cc9393db2dce6ff291e94d5dd76b86e
+SHA1 (patch-jsfriendapi.h) = c6eea8b37d44a4b0f9ca0a325e482d01ef2c6e0f
+SHA1 (patch-vm_ArrayBufferObject.cpp) = 931695e3e02ec1d6ed0f722be1059c48878cd117
+SHA1 (patch-vm_JSONPrinter.cpp) = c2483309516249d23d448e48bc91e20a0b150fba
+SHA1 (patch-vm_JSONPrinter.h) = fd720eba1d4593f70d932029f64284e17396d075
diff --git a/lang/mozjs78/patches/patch-.._.._build_moz.configure_rust.configure b/lang/mozjs78/patches/patch-.._.._build_moz.configure_rust.configure
new file mode 100644
index 00000000000..0e45f120e25
--- /dev/null
+++ b/lang/mozjs78/patches/patch-.._.._build_moz.configure_rust.configure
@@ -0,0 +1,17 @@
+$NetBSD: patch-.._.._build_moz.configure_rust.configure,v 1.1 2020/11/10 11:27:10 nia Exp $
+
+* Do not match rumprun toolchain for NetBSD,
+ narrowed should be one not two.
+
+--- ../../build/moz.configure/rust.configure.orig 2020-09-25 09:22:51.000000000 +0000
++++ ../../build/moz.configure/rust.configure
+@@ -337,7 +337,8 @@ def rust_triple_alias(host_or_target, ho
+ narrowed = [
+ c for c in candidates
+ if c.target.raw_os == host_or_target.raw_os and
+- c.target.raw_cpu == host_or_target.raw_cpu
++ c.target.raw_cpu == host_or_target.raw_cpu and
++ not c.rust_target.endswith("-rumprun-netbsd")
+ ]
+ if len(narrowed) == 1:
+ return narrowed[0].rust_target
diff --git a/lang/mozjs78/patches/patch-.._.._build_moz.configure_toolchain.configure b/lang/mozjs78/patches/patch-.._.._build_moz.configure_toolchain.configure
new file mode 100644
index 00000000000..e2b3b374d34
--- /dev/null
+++ b/lang/mozjs78/patches/patch-.._.._build_moz.configure_toolchain.configure
@@ -0,0 +1,15 @@
+$NetBSD: patch-.._.._build_moz.configure_toolchain.configure,v 1.1 2020/11/10 11:27:10 nia Exp $
+
+Builds fine on MacOS with newer toolchain
+
+--- ../../build/moz.configure/toolchain.configure.orig 2020-09-25 09:22:51.000000000 +0000
++++ ../../build/moz.configure/toolchain.configure
+@@ -141,7 +141,7 @@ with only_when(host_is_osx | target_is_o
+ @imports(_from='biplist', _import='readPlist')
+ def macos_sdk(sdk, host):
+ sdk_min_version = Version('10.11')
+- sdk_max_version = Version('10.15.4')
++ sdk_max_version = Version('10.15.6')
+
+ if sdk:
+ sdk = sdk[0]
diff --git a/lang/mozjs78/patches/patch-configure.in b/lang/mozjs78/patches/patch-configure.in
new file mode 100644
index 00000000000..24f8aac25a7
--- /dev/null
+++ b/lang/mozjs78/patches/patch-configure.in
@@ -0,0 +1,12 @@
+$NetBSD: patch-configure.in,v 1.1 2020/11/10 11:27:10 nia Exp $
+
+Fix python3 executable name
+
+--- configure.in.orig 2020-09-25 09:22:52.000000000 +0000
++++ configure.in
+@@ -24,4 +24,4 @@ export OLD_CONFIGURE="$SRCDIR"/old-confi
+
+ set -- "$@" --enable-project=js
+
+-exec python3 "$TOPSRCDIR/configure.py" "$@"
++exec ${PYTHON3} "$TOPSRCDIR/configure.py" "$@"
diff --git a/lang/mozjs78/patches/patch-jit_ProcessExecutableMemory.cpp b/lang/mozjs78/patches/patch-jit_ProcessExecutableMemory.cpp
new file mode 100644
index 00000000000..95d69d32400
--- /dev/null
+++ b/lang/mozjs78/patches/patch-jit_ProcessExecutableMemory.cpp
@@ -0,0 +1,38 @@
+$NetBSD: patch-jit_ProcessExecutableMemory.cpp,v 1.1 2020/11/10 11:27:10 nia Exp $
+
+PaX MPROTECT safety for NetBSD.
+
+--- jit/ProcessExecutableMemory.cpp.orig 2020-09-25 09:22:55.000000000 +0000
++++ jit/ProcessExecutableMemory.cpp
+@@ -362,9 +362,16 @@ static void* ReserveProcessExecutableMem
+ // Note that randomAddr is just a hint: if the address is not available
+ // mmap will pick a different address.
+ void* randomAddr = ComputeRandomAllocationAddress();
++#ifdef MPROTECT
++ void* p = MozTaggedAnonymousMmap(randomAddr, bytes,
++ PROT_MPROTECT(PROT_EXEC | PROT_WRITE | PROT_READ),
++ MAP_NORESERVE | MAP_PRIVATE | MAP_ANON, -1,
++ 0, "js-executable-memory");
++#else
+ void* p = MozTaggedAnonymousMmap(randomAddr, bytes, PROT_NONE,
+ MAP_NORESERVE | MAP_PRIVATE | MAP_ANON, -1,
+ 0, "js-executable-memory");
++#endif
+ if (p == MAP_FAILED) {
+ return nullptr;
+ }
+@@ -409,8 +416,12 @@ static unsigned ProtectionSettingToFlags
+
+ static MOZ_MUST_USE bool CommitPages(void* addr, size_t bytes,
+ ProtectionSetting protection) {
+- void* p = MozTaggedAnonymousMmap(
+- addr, bytes, ProtectionSettingToFlags(protection),
++ void* p = MozTaggedAnonymousMmap(addr, bytes,
++#ifdef PROT_MPROTECT
++ ProtectionSettingToFlags(protection) | PROT_MPROTECT(PROT_EXEC | PROT_WRITE | PROT_READ),
++#else
++ ProtectionSettingToFlags(protection),
++#endif
+ MAP_FIXED | MAP_PRIVATE | MAP_ANON, -1, 0, "js-executable-memory");
+ if (p == MAP_FAILED) {
+ return false;
diff --git a/lang/mozjs78/patches/patch-jsfriendapi.h b/lang/mozjs78/patches/patch-jsfriendapi.h
new file mode 100644
index 00000000000..06327767998
--- /dev/null
+++ b/lang/mozjs78/patches/patch-jsfriendapi.h
@@ -0,0 +1,14 @@
+$NetBSD: patch-jsfriendapi.h,v 1.1 2020/11/10 11:27:10 nia Exp $
+
+Fix va_list error
+
+--- jsfriendapi.h.orig 2020-09-25 09:22:52.000000000 +0000
++++ jsfriendapi.h
+@@ -14,6 +14,7 @@
+ #include "mozilla/PodOperations.h"
+ #include "mozilla/UniquePtr.h"
+
++#include <stdarg.h>
+ #include "jspubtd.h"
+
+ #include "js/CallArgs.h"
diff --git a/lang/mozjs78/patches/patch-vm_ArrayBufferObject.cpp b/lang/mozjs78/patches/patch-vm_ArrayBufferObject.cpp
new file mode 100644
index 00000000000..9c19f95b3b8
--- /dev/null
+++ b/lang/mozjs78/patches/patch-vm_ArrayBufferObject.cpp
@@ -0,0 +1,24 @@
+$NetBSD: patch-vm_ArrayBufferObject.cpp,v 1.1 2020/11/10 11:27:10 nia Exp $
+
+MPROTECT fix
+
+--- vm/ArrayBufferObject.cpp.orig 2020-09-25 09:22:59.000000000 +0000
++++ vm/ArrayBufferObject.cpp
+@@ -164,9 +164,17 @@ void* js::MapBufferMemory(size_t mappedS
+ return nullptr;
+ }
+ #else // XP_WIN
++
++#ifdef PROT_MPROTECT
++ void* data =
++ MozTaggedAnonymousMmap(nullptr, mappedSize,
++ PROT_MPROTECT(PROT_EXEC | PROT_WRITE | PROT_READ),
++ MAP_PRIVATE | MAP_ANON, -1, 0, "wasm-reserved");
++#else
+ void* data =
+ MozTaggedAnonymousMmap(nullptr, mappedSize, PROT_NONE,
+ MAP_PRIVATE | MAP_ANON, -1, 0, "wasm-reserved");
++#endif
+ if (data == MAP_FAILED) {
+ return nullptr;
+ }
diff --git a/lang/mozjs78/patches/patch-vm_JSONPrinter.cpp b/lang/mozjs78/patches/patch-vm_JSONPrinter.cpp
new file mode 100644
index 00000000000..1982f39a5b9
--- /dev/null
+++ b/lang/mozjs78/patches/patch-vm_JSONPrinter.cpp
@@ -0,0 +1,17 @@
+$NetBSD: patch-vm_JSONPrinter.cpp,v 1.1 2020/11/10 11:27:10 nia Exp $
+
+For NetBSD/arm, size_t is unsigned long, which is neither
+uint32_t (= unsigned int) nor uint64_t (= unsigned long long).
+
+--- vm/JSONPrinter.cpp.orig 2020-09-25 09:22:59.000000000 +0000
++++ vm/JSONPrinter.cpp
+@@ -146,7 +146,8 @@ void JSONPrinter::property(const char* n
+ out_.printf("%" PRIu64, value);
+ }
+
+-#if defined(XP_DARWIN) || defined(__OpenBSD__)
++#if defined(XP_DARWIN) || defined(__OpenBSD__) || \
++ (defined(__NetBSD__) && defined(__arm__))
+ void JSONPrinter::property(const char* name, size_t value) {
+ propertyName(name);
+ out_.printf("%zu", value);
diff --git a/lang/mozjs78/patches/patch-vm_JSONPrinter.h b/lang/mozjs78/patches/patch-vm_JSONPrinter.h
new file mode 100644
index 00000000000..fba79fc68a5
--- /dev/null
+++ b/lang/mozjs78/patches/patch-vm_JSONPrinter.h
@@ -0,0 +1,17 @@
+$NetBSD: patch-vm_JSONPrinter.h,v 1.1 2020/11/10 11:27:10 nia Exp $
+
+For NetBSD/arm, size_t is unsigned long, which is neither
+uint32_t (= unsigned int) nor uint64_t (= unsigned long long).
+
+--- vm/JSONPrinter.h.orig 2020-09-25 09:22:59.000000000 +0000
++++ vm/JSONPrinter.h
+@@ -51,7 +51,8 @@ class JSONPrinter {
+ void property(const char* name, uint32_t value);
+ void property(const char* name, int64_t value);
+ void property(const char* name, uint64_t value);
+-#if defined(XP_DARWIN) || defined(__OpenBSD__)
++#if defined(XP_DARWIN) || defined(__OpenBSD__) || \
++ (defined(__NetBSD__) && defined(__arm__))
+ // On OSX and OpenBSD, size_t is long unsigned, uint32_t is unsigned, and
+ // uint64_t is long long unsigned. Everywhere else, size_t matches either
+ // uint32_t or uint64_t.