diff options
author | nia <nia@pkgsrc.org> | 2020-11-10 11:27:10 +0000 |
---|---|---|
committer | nia <nia@pkgsrc.org> | 2020-11-10 11:27:10 +0000 |
commit | 85921585077f21d658dfe5fabbe458ea21631399 (patch) | |
tree | 7117e35ff0b32c5d49933bb99e8919866aaf9b6d | |
parent | 91f8d780d6d3dc8e9c2f07e1b030d17ceb7e2e2a (diff) | |
download | pkgsrc-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/Makefile | 3 | ||||
-rw-r--r-- | lang/mozjs78/DESCR | 2 | ||||
-rw-r--r-- | lang/mozjs78/Makefile | 74 | ||||
-rw-r--r-- | lang/mozjs78/PLIST | 248 | ||||
-rw-r--r-- | lang/mozjs78/buildlink3.mk | 16 | ||||
-rw-r--r-- | lang/mozjs78/distinfo | 14 | ||||
-rw-r--r-- | lang/mozjs78/patches/patch-.._.._build_moz.configure_rust.configure | 17 | ||||
-rw-r--r-- | lang/mozjs78/patches/patch-.._.._build_moz.configure_toolchain.configure | 15 | ||||
-rw-r--r-- | lang/mozjs78/patches/patch-configure.in | 12 | ||||
-rw-r--r-- | lang/mozjs78/patches/patch-jit_ProcessExecutableMemory.cpp | 38 | ||||
-rw-r--r-- | lang/mozjs78/patches/patch-jsfriendapi.h | 14 | ||||
-rw-r--r-- | lang/mozjs78/patches/patch-vm_ArrayBufferObject.cpp | 24 | ||||
-rw-r--r-- | lang/mozjs78/patches/patch-vm_JSONPrinter.cpp | 17 | ||||
-rw-r--r-- | lang/mozjs78/patches/patch-vm_JSONPrinter.h | 17 |
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. |